Tidepool is a 501(c)3 nonprofit organization on a mission to make diabetes data more accessible, actionable, and meaningful for people with diabetes, their care teams, and researchers. Founded in 2013, Tidepool hosts a suite of free software tools for people with diabetes and the clinics that serve them, including Tidepool Web, Tidepool Mobile, Tidepool Uploader, and, pending submission to FDA and associated review, Tidepool Loop.
Their back-end development team is responsible for building and deploying all backend services and managing compute resources associated with operating their services. In 2019, Tidepool migrated all of their infrastructure to Kubernetes.
Before migrating to Kubernetes, Tidepool’s backend consisted of a distributed system of ~18 microservices written in Node.js and Go that were deployed on Amazon EC2 instances. Through 2018, Tidepool managed their infrastructure using AWS CloudFormation with Lambda and Ansible.
“At Tidepool, we migrated from a non-Kubernetes environment. We had developed these custom deployment tools, but the engineers who wrote those tools are no longer at the company. We were stuck with legacy tools without documentation.” - Derrick Burns, Backend Engineer
Included among those 18 microservices, were several in-house developed services: an API gateway (styx), a service discovery system (hakken), as well as their own custom load balancing system (shio). The original authors of these custom tools moved on, leaving the current engineering team without documentation and support. These legacy applications required new features but the team at Tidepool had little time to invest in custom development of infrastructure tooling.
Prior to migrating to Kubernetes, the engineering team used a custom tool to deploy software. This tool uses a Git branch per microservice to store configuration data. Git provides a nice audit trail, but the use of so many branches made it difficult to understand the state of the cluster. They sought a similar flow with Kubernetes, without the complexities of multiple Git branches.
Tidepool decided to implement an automated GitOps workflow to create a self-service developer platform for their engineering team.
“For Kubernetes, Gitops provides a simple audit trail that is invaluable in figuring out what has broken. Flux (and our Tidebot) give our developers a low-risk self-deployment option. Together, Flux and GitOps accelerate our innovation.” Derrick Burns, Backend Engineer
Read the full case study to learn more about how Tidepool leverages GitOps for streamlined cluster lifecycle management processes and getting into production faster.
Tidepool are always looking for talented people to join their team. Visit www.tidepool.org/jobs to learn more.