Respond Software Case Study.
About The Organization.
Create Continuous Integration / Continuous Deployment (CI/CD) pipelines to perform automated testing and deployment of images
Update / create Terraform scripts for AWS infrastructure automation
Enable security at every layer using SSL certificates, encryption and other measures such as AWS Cloudtrail, Config, IAM roles to limit access on a need to know basis
Setup a common “management network or VPC” to consolidate common management functions
Establish reliable deployment practices
Help with chargeback and pricing optimizations
When the client approached RestonLogic, they were looking for a reliable means of creating software delivery pipelines including automated testing of their application. The number of clients were increasing every month and the software version deployed for each customer’s cloud instances was different. This caused confusion, additional overhead and multiple software branch streams to support a particular version. The customer needed a fool-proof method of updating application on these clusters without incurring any downtime.
The application stack used several AWS services such as ECS, RDS, ELB, EC2, Kinesis and Redshift. Our team got to work immediately and met with software, network, data architects to understand the complex workflow and component interactions. We understood the authentication, data flow, application roles, deployment, monitoring, KPIs and scaling challenges.
We presented our approach, toolsets, deployment and testing strategies, milestones and gap analysis. Our approach and attention to detail was well received and after incorporating feedback from customer, we began Phase 2 of the project.
Our team used existing SCM tools the customer was familiar, GitLab, and enabled the CI/CD component, GitLab CI for automation. We developed several pipelines to automate build and deployment to AWS ECS. We also developed or enhanced Terraform modules to provision the AWS infrastructure.
Next, we enhanced the pipelines to build and deliver a Blue Green Deployment strategy so that new versions of application code could be tested and delivered to a standby cluster (Green) assuming Blue was the production cluster. Once all tests were successfully completed, a small percentage (5 – 10%) of production traffic was diverted to the new cluster, and further tests run. Gradually we increased the percentage until everyone was on the now production cluster labeled “Green”. The original cluster, Blue was either preserved as a backup or eliminated to save costs depending on customer’s preference.
The complete setup is captured in the following diagram:
These efforts enabled the customer to save costs, time and helped meet their aggressive deadlines. The customer now has:
- A well-tested application pipeline that can deploy new versions on demand or on schedule
- Ability to spin up app clusters on demand with a single click
- Ability to go-live earlier than planned
- Avoided duplicate functions and expensive software purchases as our team was able to use existing tools such as GitLab CI
- Blue Green practices that can deploy application with zero downtime
- Accurate charge-back mode as cost of each app cluster is known in advance