MaiaLearning is a cloud-based platform that streamlines the university application and admissions process for students all over the world. The company provides intuitive dashboards, progress tracking, task management tools, and more to aid in student career planning. Users can manage their essays, build financial plans, and even store their applications, all in one place. Today, MaiaLearning is used by more than one million learners, teachers, and counselors in over 70 countries.
Recently, MaiaLearning reached out to ClearScale for support incorporating DevOps tasks into two different AWS accounts owned by MaiaLearning. ClearScale had helped MaiaLearning with a previous architecture design and automation project, so the cloud consultancy was the perfect partner to take on the DevOps initiative.
"We have engaged with ClearScale on the roll out and update of our infrastructure for many years and rely on their breadth of knowledge to implement our IaC deployments. We have had nothing but success."
MaiaLearning’s core application was written a few years ago. Several instances of an older version of Ubuntu had reached the end-of-life stage, and it was time for MaiaLearning to find a solution. While its main platform worked well, MaiaLearning wanted to update and optimize its IT infrastructure based on new and emerging industry best practices. However, doing so would require basic framework updates and a new environment.
In addition, the MaiaLearning team wanted to move to Drupal 9, which meant the company had to update its MySQL database to 5.7 and implement a new database schema for Amazon Aurora, the enterprise’s cloud relational database service.
MaiaLearning decided to take on the application refactoring work internally using a parallel set of environments. However, the company wanted support in implementing Infrastructure as Code (IaC) and deploying the new environments. MaiaLearning also hoped to add certain features, such as WAF 2.0, and make specific DevOps enhancements, like adding DockerBase builds to the open source automation server, Jenkins.
For all of this to work, MaiaLearning would have to add PHP 7.3 to the new container builds to support Drupal 9. The new refactoring application builds would also need to be added to Jenkins.
Based on the success of a previous engagement, MaiaLearning decided to hire ClearScale again to pursue its goals. MaiaLearning asked ClearScale for assistance in two particular areas:
With these goals in mind, ClearScale got to work.
ClearScale tackled MaiaLearning’s objectives using a myriad of best practices and cloud technologies.
First, ClearScale created the duplicate environment by updating MaiaLearning’s IaC. The team made critical changes to allow the new duplicate environment to run seamlessly with the existing environment. After the automation code was updated, ClearScale deployed the duplicate environment and immediately began testing the service to ensure it was working properly.
Next, ClearScale synchronized MaiaLearning’s existing data with the duplicate environment to allow the client’s engineers to start the refactoring effort. More specifically, the team used Logstash to test and fix user data scripts and applied the server-side processing pipeline to the Staging, Production, and Atlas-prod environments via AWS Cloud Formation.
After the refactoring and testing was completed, ClearScale and MaiaLearning engineers migrated and cut over the application to the duplicate environment, opening up the door for optimization and framework updates. After the refactoring and testing was completed, ClearScale and MaiaLearning engineers migrated and cut over the application to the duplicate environment, opening up the door for optimization and framework updates.
To enable MaiaLearning to use Jenkins, ClearScale updated the company’s operating system, addressed implementation issues, tested functionality after the upgrade, migrated to the new Jenkins environment, and created a custom AMI.
ClearScale was also charged with creating a new IaC for a separate application recently received from a development partner. The environment had been developed and deployed manually in the past. MaiaLearning wanted to leverage infrastructure automation for the new environment in the same way they already did for the existing applications.
ClearScale created the IaC using the existing environment as a reference and re-deployed the application in the new environment. Taking this approach ensured that the new application was following best practices related to architecture design and security. ClearScale also updated EIPs assignments and both the staging and production VPNs.
Along the way, ClearScale enabled MaiaLearning with the DevOps tools and capabilities it needed to take full advantage of automation in the cloud.
After refactoring its core application, deploying duplicate environments, and remediating the new application platform, MaiaLearning has the cloud infrastructure it needs to move forward with confidence. ClearScale helped MaiaLearning optimize its AWS environments and upgrade to the latest versions of Drupal, PHP, and MySQL.
The company also now has the ability to manage its infrastructure more efficiently for students, teachers, and university administrators worldwide. MaiaLearning has the IT architecture it needs to support its rapid growth, automate DevOps, and fulfill its mission of enabling students everywhere to achieve their educational goals.