MaiaLearning Implements IaC and DevOps to Optimize Two AWS Environments


MaiaLearning wanted to upgrade and optimize its IT infrastructure based on industry best practices, a project that required framework updates and an entirely new environment.


ClearScale implemented IaC principles, DevOps tools, Jenkins, and other AWS solutions to refactor MaiaLearning's core application and remediate the platform.


MaiaLearning was able to upgrade to the latest versions of Drupal, PHP, and MySQL and now has the ability to manage its educational infrastructure more efficiently, as well as scale with increasing demand.

AWS Services

Amazon Aurora, AWS CloudFormation

Executive Summary

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."
Barry Coleman
CTO, MaiaLearning

The Challenge

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:

  1. Deploying the duplicate Development, Staging, and Production environments to run in parallel and support the refactoring work.
  2. Performing a security and architecture assessment, as well as remediation of a new AWS environment, built by a development partner.

With these goals in mind, ClearScale got to work.

The ClearScale Solution

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.

Architecture diagram

MaiaLearning Diagram

The Benefits

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.