The National Center for Families Learning (NCFL) is a nonprofit supporting family success and well-being through education. Their work supports multigenerational learning for families from early childhood through adult education. NCFL had a website application called Wonderopolis that was critical to their mission as an organization.
Their existing deployment was not set up to handle the needs and demands of their customers, which was negatively impacting their organization. CleanSlate Technology Group (CSTG) was brought in to provide a new infrastructure configuration, DevOps platform, and bring the application and infrastructure to a standard that would allow Wonderopolis to meet their demands with their customers.
THE BURNING PLATFORM
NCFL had a poorly designed AWS infrastructure that needed to be more consistent across environments. They faced problems with latency, security, and stability which often led to inopportune downtime and outages.
NCFL was unable to meet their clients’ demands as they needed to deploy features in a timely and reliable manner; due to poor CI/CD and lack of non-production environments, they only deployed them to production. They did not have acceptable environments for releases, so the quality and security of their production environment was at risk with every feature and code release.
NCFL realized they were not set up for success and knew they needed assistance to build a more sustainable and reliable platform that could easily be supported.
& SERVICES USED
- AWS CloudFormation
- AWS Backup
- AWS Certificate Manager
- AWS Cloud Trail
- AWS Control Tower
- AWS EC2
- AWS EC2 Image Builder
- AWS IAM
- AWS RDS (MySQL)
- AWS Single Sign On
- Application Load Balancer
- Auto-Scaling Group
- Cloud Watch
- Event Bridge
- Route 53
- SSM Session Manager
- Systems Manager
- Web Application Firewall (WAF)
- Apache Lucene
- Elastic Search
- Linux Ubuntu
- Node JS
- PHP Laravel Framework
MAJOR CHALLENGES & PROBLEMS TO SOLVE
- Lack of a consistent way to deploy updates to production
- Poor stability and latency in the existing configuration
- Inability to test new features or functions before deploying them to production
- Lack of automation; Requiring manual configuration and undependable deployment runbooks
CleanSlate needed to re-architect and migrate the entire environment. To do this, CSTG also incorporated a DevOps solution to help manage and maintain the environment in the future.
Using various DevOps tools and practices, mainly CloudFormation, we could automate their infrastructure to create consistent and reliable environments.
This also allowed for non-production environments to be established to allow for feature release testing outside of production. The infrastructure is managed in the CI/CD pipeline that was established.
This automation allowed them to scale up consistent non-production environments, ensure scalability in production, and quality testing environments.
As part of the cloud refactoring of NCFL, two CI/CD pipelines were created to help deploy the NCFL application and its infrastructure. The pipelines were created using an AWS service called CodePipeline. CodePipeline was integrated with another tool, AWS CodeDeploy, that connected the instances and deployed the application.
CodeDeploy is a tool that integrates with ALB and ASG to remove instances from service and pushes new code updates using an agent that is running on the instance. The code for the Wonderopolis application, Infrastructure as Code (IaC) scripts, bash scripts, and others are all stored in GitHub.
CodePipeline is a continuous integration and continuous deployment (CI/CD) automation tool that will automatically pull new code changes based on a trigger then push those latest changes to either the application or the infrastructure.
NCFL was able to obtain significant improvement by leveraging AWS services and deploying robust DevOps platform to manage the automation and consistency of the infrastructure and by developing a CI/CD process to manage deployments in a simple, repeatable, and secure way to allow for higher levels of stability and quality to their application.
- Reduced downtime of the application by 90%
- A more stable, scalable, and properly configured infrastructure improved application performance by over 40%.
- Feature Releases improved from every 6 months to On Demand releases
- Overall, Application quality and reliability improved by focusing on quality processes throughout the development and DevOps processes.
- Features and POC were now possible due to the automated scale of a development/POC environment.
- Cost Optimization on Non-Production environments saved around 70% on non-production costs.
- Improved Security with consistent automated deployments