Tim Osborne, CTO, Atom Learning
Atom Learning provides high-quality education for primary school students through a fully adaptive online learning platform. The organization adjusts the education experience to individual student needs by using machine learning and artificial intelligence to optimize both content and questions. Their goal is to provide all students, regardless of location and background, with a high-quality, affordable learning resource. Atom Learning needed a way to easily maintain and scale the platform as their user base grew, and found the right solution with DigitalOcean’s Managed Kubernetes.
In 2018, the founding team for Atom Learning came together. Tim Osborne, CTO, joined as the technical lead and wrote the initial proof of concept for the platform, which ran on a monolithic application with multiple Virtual Private Server (VPS) on another cloud provider. Three servers ran the entire application and an additional server was used for databases and storage, all networked together. As with most start-ups, Tim wore many hats in the early days. He wrote the first version of the Atom Learning platform, managed deployments, maintained the code, and offered customer support.
In a typical learning environment, teachers are manually adjusting the content and test questions based on their assessment of students in the class. They often don’t have the time or resources to handpick test questions for each individual student based on their unique learning styles and abilities. Compound those constraints with the difficulties COVID-19 and digital learning presented in 2020, and it’s easy to see why parents and teachers were thrilled to have a platform that could automatically adjust the content and questions based on the individual student. Demand for what Atom Learning offered exploded.
As the user base grew, so did the internal team. What began as a one-man department grew to over 25, and the need for more sustainable code management and documentation increased. Additionally, maintenance and scaling with the monolithic architecture were difficult.
The monolith ran everything, from authorization to question picking, and the team began exploring DigitalOcean as they reached the limits of what they could sensibly maintain.
“We knew we had a good product and that it was something people wanted, and we knew we had a lot of growth coming, so it was important for me to pick something that would enable that growth. Managed Kubernetes was an obvious choice over just building something ourselves. It’s not healthy to have one or two people in the company know how this complex system works. We needed something well documented that could scale and not have the overhead of maintaining ourselves.”
- Tim Osborne, CTO, Atom Learning
The Atom Learning platform needed reliability, scalability, and a higher level of resilience than what the monolith could provide. If the platform experienced an influx of users, the monolith would get overwhelmed and crash. While it always restarted within a few seconds, the team knew that those crashes couldn’t continue if they were to be a serious player in the market. They needed something that could dynamically scale up and down with demand. The team determined that they wanted to use microservices and Kubernetes, and were won over by DigitalOcean’s managed Kubernetes offering coupled with Virtual Private Cloud (VPC) networks.
The team at Atom Learning containerized the monolith into microservices (set of pods) and made it a deployment inside DigitalOcean Kubernetes. That design pattern allowed them to move much faster than maintaining Droplet deployment and Kubernetes because having everything in one cluster made transitions easy to do in small stages. Having the monolith and microservices run side-by-side allowed the team to avoid spending time rewriting everything and they could instead work on product enhancements and features. Over time, they transitioned all high-priority areas like question picking, the testing platform, and authentication to managed Kubernetes.
Atom Learning runs three Kubernetes clusters, with multiple node pools, all of which run on DigitalOcean Kubernetes. Atom uses a microservices architecture on the backend that uses REST to communicate with each other and the frontend React app.
A few keys services are:
Atom Learning has scaled to over 350,000 accounts and continues to grow, experiencing 50% growth month to month through 2019. The team now has over 95 employees. Even with that tremendous growth, the team hasn’t had to make any major architecture changes since launching with DigitalOcean.
“One of the reasons we’ve been able to grow as quickly as we have is because of how scalable everything is and how easy it is to add new features on our DigitalOcean platform. We use every single one of your products now. It’s been great.”
- Tim Osborne, CTO, Atom Learning
Atom Learning has ambitious growth targets for the coming years. They’ve more than doubled revenue and headcount in the last year and are aiming to continue that growth. They plan on continuing to expand to new markets and offer new testing experiences, scaling and growing seamlessly with DigitalOcean at the core of their network.
Contact our Customer Success team to get answers.