Case Study - Automated DevOps on AWS
About the Client:
The client uses AWS services to deliver cloud-based solutions to small and mid-sized companies. This growing SaaS leader offers a suite of products for agile, affordable time tracking and reporting for employees. Although the company uses AWS for their cloud-based services, they were not taking full advantage of AWS services for their internal CI/CD processes.
The client was using external services for CI/CD pipeline while also utilizing AWS hosting services- which created a stream of challenges. The existing CI/CD solution came with a licensing cost and unnecessary expenses, as well as implementation issues. When they reached out to AWS for help, they found the same processes offered by the external partner were available with AWS. By switching to AWS services, they would reduce costs as well as centralize the management of the process to streamline DevOps.
The client had worked with another AWS Partner on CI/CD pipeline, which did not deliver the result they expected. They reached out to AWS, and were introduced to Stratus10 for recommendations. Despite being reluctant to engage with another partner due to their first failed endeavor, Stratus10’s extensive experience in migrating DevOps pipelines to AWS convinced them to try again.
The CodePipeline service is tailormade to handle their solution. Stratus10 designed and implemented a reusable solution using AWS technologies to move the legacy deployment process into a modernized CI/CD pipeline. The solution used the full stack of CI/CD tools: CodePipeline, CodeCommit, CodeBuild, CodeDeploy, and even CloudFormation.
To go all-in with AWS, the client's existing code repository was synced to a CodeCommit repository. Using CodeCommit allowed them to levy their existing Git knowledge and processes, and also seamlessly integrating with the suite of AWS CI/CD services.
The CodePipeline service was used to create a series of decoupled pipelines to allow their microservices to each deploy independent of each other. The pipelines were configured to start based on changes to the CodeCommit repository, removing any need for an additional human touch.
Using CodeBuild allowed them to use Docker containers instead of stand-alone build services, minimizing their overhead cost. CodeBuild also allowed for test automation and rollbacks to ensure server availability.
The builds are then deployed via the CodeDeploy service. CodeDeploy gives the client the ability to customize the deployment process in their code repositories. When changes to the deployment process are needed, this happens in code, not with a human touch to a server or a change to any of the pipeline.
The entire CI/CD process was scripted into a parameterized CloudFormation templates which gives the client the ability to recreate the entire process for all tiers of their project, as well as similar projects with minimal effort.
Results and Benefits:
The AWS CodePipeline service is a user-friendly, cost-effective means to setting up a CI/CD pipeline. It allows for simple setup and configuration. The CloudFormation template allows for easy recreation of the entire stack.
Use case: DevOps Automation
Date: December 2019
Category: DevOps / Windows / Cost Optimization