A financial services company reduced application deployment time by >90%  by implementing a new DevOps pipeline.

SITUATION​​

Our client’s existing DevOps pipeline was slow and had far too many manual steps. It also required a build for each region and version. This made testing complex and time-consuming as each deployment was built from the source code. As a result, it would take three to four weeks for every new deployment environment in AWS. The most cost-effective measure for our client was to migrate to a new DevOps pipeline and implement new processes and infrastructure. To implement the new pipeline, the client set a series of goals. The first goal was to automate the application build and deployment without environment restrictions. The second goal was to automate the environment construction, reducing the time to deploy from three to four weeks to a reasonable timeline. The third goal was to containerize the application which would allow for the application to be deployed into AWS EKS over the EC2 environment. The last goal combined all the elements to gain faster-automated deployment.​

Reduced Application Deployment Time by >90%

SOLUTION​​

Apex took an Agile approach following a traditional two-week Scrum cadence breaking each component down into epics, then each epic was broken into functional user stories. The project began with an assessment of the existing application and DevOps processes and procedures documenting the trouble areas and steps for improvement. The team was tasked with fixing the build issues first and then automating infrastructure in the cloud. DevOps best practices were implemented allowing for an environment-independent build, along with the migration of security credentials to HashiCorp Vault allowed for a single application build that could be deployed to any environment from the DevOps pipeline. Our team built this process and later modified it when the client requested that the application be deployed in a container following their new mandate of utilizing Kubernetes. The team added the steps required to containerize the application with Docker and stored this new artifact in the client's artifact repository. Finally, we used AWS Cloud Development Kit to automate the AWS construction. This step allowed the client to build, construct the cloud objects required, and deploy the application in minutes versus the old three-to-four-week timeline.​

RESULTS

We fulfilled the first goal of our client’s plan by making the build environment agnostic, allowing the application to be built without environmental restrictions. By using automation tools to build cloud environment resources as required, we were able to move the application deployment from three to four weeks to three to four hours even with client-mandated manual steps and fulfill the second objective. To containerize the application for the third goal, we used Docker Compose and externalized the application requirements into Vault. This allowed for the application to be deployed into AWS EKS over the EC2 environment, which allowed for better scaling and resiliency. With these completed, we delivered a faster-automated deployment model to our client.​