Case Study - CI/CD Pipeline on AWS
About Workwell Technologies:
Workwell technologies uses AWS services to deliver cloud-based time and attendance services to small and mid-sized companies. This growing SaaS leader offers a suite of products for agile, affordable tracking and reporting for hourly employees. Although the company uses AWS for their cloud-based services, they were not taking full advantage of AWS services for Workwell’s internal CI/CD processes.
Workwell 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, Workwell 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.
Workwell 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, Workwell’s existing code repository was synced to a CodeCommit repository. Using CodeCommit allowed Workwell 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 Workwell 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 for Workwell was scripted into a parameterized CloudFormation template which gives Workwell 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
Client: Workwell Technologies
Date: December 2019
Category: DevOps / Windows / Cost Optimization