Fairwinds provided zyBooks with Managed Kubernetes —people-led services to help them scale without the cost increases or having to hire internally.
In the fast-growing field of interactive course materials, zyBooks has expanded rapidly through a focus on the instructor and student experience. The Bay Area company now serves hundreds of higher-ed institutions, such as Texas A&M University and University of Michigan, and doubles its user base every 12 months.
For the company’s lean engineering team, scaling to meet that demand – and preserving uptime – remain top of mind. In any hour, thousands of instructors and students rely on zyBooks for learning, testing and grading.
When the company began experiencing consistent issues with AWS Elastic Beanstalk, the engineering team explored ways to bolster reliability.
“When you have a monolithic approach, every new feature has the potential to break others,” explains Bailey Miller, Sr. Software Engineer at zyBooks. “We knew we needed to make a change, but not how to scale it. And our system needed a review, so we could know our weak points.”
zyBooks explored hiring an engineer to fill the gap. Yet, with seasonal demand spikes based on the academic calendar, they couldn’t justify hiring a full-time DevOps engineer. Plus, finding someone proficient in both Kubernetes and AWS proved challenging.
When zyBooks found [Fairwinds], they saw DevOps-as-a-service as the perfect solution. By partnering with [Fairwinds], the company could add the engineering capacity and expertise it needed without the cost and commitment of an entire team. [Fairwinds] also brought specialized knowledge and experience in building a customized Kubernetes platform to improve scalability and reliability.
“We needed a DevOps team, and we needed them to be up to speed yesterday. [Fairwinds] brought the knowledge and expertise we needed from day one,” Miller says.
The bonus? In moving to Kubernetes, zyBooks would transition its monolithic environment to one with siloed microservices. If one part goes down, it doesn’t affect others.
With an academic season fast approaching, [Fairwinds] had just two months to port and test zyBooks’s applications in the new Kubernetes environment. The [Fairwinds] team employed its Pentagon solution, an open-source framework for building repeatable, cloud-based infrastructure as code. By starting from an existing code base, [Fairwinds] reduced the complexity and time to complete the ramp-up.
They then identified the right machine types and connected it all with the appropriate security, business planning and consolidation (BPC) architecture. The custom Kubernetes cluster scales work nodes up and down automatically as needed.
The [Fairwinds] team also created a continuous integration (CI) process that simplifies building, testing and deploying new services; code automatically goes through CI and is deployed to Kubernetes. Before, zyBooks engineers had to create and manage separate Elastic Beanstalk environments for each phase.
“Now I can build and deploy a specific task or service in an hour or two,” Miller says. “I didn’t expect that.” As a result, zyBooks deployed to the platform nearly 500 times last year. For a larger endeavor, such as completing the latest version of its server application, the zyBooks team had the infrastructure in place in less than a day – rather than two weeks.
zyBooks additionally fortified its infrastructure reliability thanks in part to the self-healing nature of Kubernetes. If an application or pod goes down, Kubernetes replaces it.
The new implementation also means that applications such as the zyLabs Code Runner – computer science labs that instructors set up for students – can handle more throughput. The same goes for zyDE, a development environment that compiles and runs programming code that students submit on the zyBooks site.
“We delivered a new zyLabs Code Runner implemented on top of Kubernetes that can handle orders of magnitude more throughput than our initial Elastic Beanstalk version,” Miller says. “Our uptime is much better, now at 99.99%, and our infrastructure scales remarkably well.”
And now with infrastructure as code, zyBooks can recreate the technology stack rapidly in the event it goes down. If any issues do occur, zyBooks can count on 24/7 monitoring and alerting from [Fairwinds]. “I don’t get middle-of-the-night pages anymore. I sleep better,” says Miller. “And when I have a question or need something during the day, [Fairwinds] is always there to help on Slack."
With DevOps-as-a-service, zyBooks gains the engineering manpower and expertise it needs, while shedding costs during quieter periods. To achieve the same level of around-the-clock support and expertise in house, zyBooks could easily have spent three times as much on an in-house DevOps team.
“We try to keep our prices low, and put a lot of effort into delivering the best student and instructor experience we can,” Miller says. “Working with [Fairwinds] helps us do that. You get an entire team of pro Kubernetes DevOps engineers for the price of one DevOps person. It’s a no-brainer for companies wanting to implement DevOps quickly and effectively.”
“We delivered a new zyLabs Code Runner implemented on top of Kubernetes that can handle orders of magnitude more throughput than our initial Elastic Beanstalk version,” Miller says. “Our uptime is much better, now at 99.99%, and our infrastructure scales remarkably well.”
“I focus more on delivering high-level features to customers because I know that [Fairwinds] is handling updates and making sure all the services are running,” Miller adds.
“Working with [Fairwinds] is a no-brainer for companies wanting to implement DevOps quickly and effectively. You get an entire team of pro Kubernetes DevOps engineers for the price of one DevOps employee.”
Bailey Miller, Sr. Software Engineer at zyBooks