Case Study – Ntirety Provides LGFCU with a Flexible DevOps Environment
August 5, 2020 by Cali Thompson
Ntirety Provides LGFCU with a Flexible DevOps Environment
North Carolina’s Local Government Federal Credit Union (LGFCU) had a highly skilled internal IT team, but an IT process that was open to risks in operations. Through a meticulous manual process that required contacting their website administrator, LGFCU’s developers would roll code directly to production via a script. This approach left LGFCU vulnerable to downtime if any issues occurred.
Overall, this process was time consuming and relied heavily on human oversight. Sometimes forced to manually push code multiple times a day or late into the night, LGFCU’s internal teams needed to find a more efficient and reliable way.
Through Ntirety’s guidance and experience with Amazon Web Services (AWS) solutions, LGFCU’s new DevOps process would scale with the credit union’s growth and free their internal teams to focus on more valuable business goals. Ntirety recommended the AWS CodePipeline service to reduce risk and alleviate manual tasks for LGFCU.
To ensure that LGFCU could execute fast, tested application and infrastructure updates with less risk of downtime, Ntirety implemented automation utilizing an AWS CodePipeline solution. This fully managed continuous integration and continuous delivery (CI/CD) pipeline automates the building and deployment of code changes.
The code and infrastructure updates flow through the various stages within their new DevOps pipeline, custom designed by Ntirety for LGFCU’s needs. The CodePipeline stages are broken down into a source, build, QA, and Production stage.
Stage actions listed by utilized AWS service include:
CodeCommit: Without adding any major new steps or tasks for developers, AWS CodeCommit takes data from the release repository, where LGFCU’s developers push code changes. This kicks off the pipeline’s automation and sources the updated repository, to the CodeBuild service.
CodeBuild: CodeBuild automates the building of the sourced code for it to be tested before being deployed directly on to infrastructure. CodeBuild allows for easier customization of website dependencies and automated installation, saving time from doing it manually.
Lambda: A Lambda function creates a snapshot of the existing database and uses the snapshot to create a new database to be used throughout the whole pipeline process. For LGFCU, this new database is initially used for quality assurance (QA) testing— an important step for quality control that was not included previously when LGFCU pushed code to production. When this pipeline run moves into production, this same database is seamlessly utilized as the new production database.
QA Testing with CloudFormation: A CloudFormation template is used to create the QA environment. CloudFormation, utilizing Infrastructure-as-Code (IaC), creates and ultimately destroy the QA environment for testing purposes only. By building out the infrastructure through a CloudFormation template, LGFCU is able to mount an AWS EFS share automatically, rather than the manual process required before the pipeline process was implemented.
CodeDeploy During QA Testing: After CloudFormation builds out the QA infrastructure, CodeDeploy does an in-place deployment of the code from CodeBuild to the new autoscaling group for the QA testing phase. From there, it hits a manual approval process—a new safeguard for LGFCU to give a final review before rolling out. If it is rejected, the process stops completely and the QA infrastructure is terminated.
CodeDeploy After Approval: If approved, CodeDeploy does a blue/green deployment. This process copies the existing production autoscaling group that launches new EC2 instances it deploys the updated code to. The blue/green deployment reduces the risk of downtime for LGFCU by ensuring that the changes are complete on the new instances and then shifts website traffic to those new instances via an application load balancer, then blocking traffic to the old instances afterward.
Working directly with LGFCU’s administrator, Ntirety customized and adjusted the order and functionality of the pipeline as their requirements evolved. Ntirety can continue to make needed customizations thus the process scales with the credit union’s needs.
Ntirety’s recommendation of this cohesive set of services created a streamlined process for faster and more efficient updates from developers’ hands into production all while reducing risk.
AWS CodePipeline’s automation allowed LGFCU to rapidly and reliably deliver features and updates without leaning so heavily on their admin’s bandwidth to move the process along. Instead of having to manually push their code changes into production with the associated outage risks, the development team can push updates directly to their repository’s release branch and let automation safely do the rest.
Ntirety’s solution helped the credit union’s IT savings go even further by eliminating the need to have an additional staging server running constantly, a change that made LGFCU even more cost-effective without sacrificing the caliber of their work. Utilizing the CodePipeline service combined with AWS’s autoscaling, LGFCU experienced improved quality of production deployments and the dynamic ability to scale with increased traffic.
Overall, the changes brought relief to not only the team members but also reduced risk with safeguards for deployment and saved costs on manual resources.