Branching Minds

Scaling AWS services with Kubernetes before the school year

Icon of a triangle with an exclimation mark in the middle

Challenge

Scaling services to handle 2x the normal volume

Icon of a treasure map with four dots and an X

Services

DevOps and Maintenance, Managed Kubernetes services

Icon of a location marker with five dashes coming out from the top

Outcome

Scaling with Kubernetes to successfully deliver services to 2x the volume of school districts

About Branching Minds

Simplifying instructional and behavior challenges so all students succeed

Branching Minds is a highly respected K-12 services and technology company that works with hundreds of districts across the country to simplify their biggest instructional and behavioral challenges through established learning practices and processes. Combined with their extensive toolkit of resources, PD, and technology, Branching Minds delivers sustainable results for educators and a path to success for every learner.

Quote from Branching Minds

After working with thoughbot, we have everything as infrastructure as code. Production and staging environments match, and we are building out even more environments to verify code quality and security. Downtime is rare and when it occurs, it is easy to roll back changes and switch workloads. We can easily support exponentially more users with no impact to system performance. When we need to upgrade our system, there is very little downtime.

A headshot of Denis Vilela

Denis Vilela
Lead Engineer at Branching Minds

The Challenge

Automating scaling to accommodate growth

Branching Minds had plans to onboard a large school district and needed to scale their platform to accommodate the increase in new users and content. The team wanted to take advantage of containers to automatically scale the application resources for performance. 

The previous architecture was limited to basic AWS services and custom tooling, and the re-architecture and re-build of the app would be very time consuming. The Branching Minds development and operation teams were constrained in capacity and wanted to accelerate progress. 

Grafana graph example

Example grafana graph illustrating increase in site traffic over time. Does not represent Branching Minds data.

The Solution

thoughtbot and Branching minds got to work developing a continuous integration and deployment pipeline

We built a new platform with Branching Minds and set up the EKS cluster, CI/CD pipeline, load balancers, and managed the gradual traffic shift to the new platform.

We migrated traffic from the existing platform by creating an ALB to replace their classic ELB, with a single target group for the existing EC2 instances. We used weighted Route53 records to gradually move traffic to the ALB. We then added the new platform as a separate target group and gradually shifted traffic to the new platform.

With the new platform, Branching Minds could more easily manage the developer environment, automate the process of getting code to production, and recover in the event of a disaster.

With the new tools in place Branching Minds could focus on developing metrics for the application and system services. thoughtbot worked closely with the team to establish and visualize Service Level Objectives (SLOs) and Error Budgets with Grafana dashboards.
We configured alerts for when SLOs are not being met to notify our on-call support team to address any issues.

Grafana graph example

Example grafana graph showing the variability in worker utilization. Not an actual representation of client data.

The Outcome

Branching Minds is successfully delivering services to 2x the volume of school districts, with plans to expand even more

The new platform allows thoughtbot’s support team to easily monitor and observe when system performance is about to affect user experience before issues have occurred. Through the trust built into the process and quality of ongoing support, thoughtbot is working together with Branching Minds to identify future platform enhancements to enable the company to expand services to many more school districts.

quote Branching Minds

Working with thoughtbot was fast, and easy. Now we have error budgets, SLOs, and metrics to know how well the application is performing. The management of the system is a lot easier.

A headshot of Denis Vilela

Denis Vilela
Lead Engineer at Branching Minds

What does success look like for your project?