15% cloud cost reduction for a Germany-based marketplace for outsourcing using Terraform & AWS Lambda
About the client
The client is a leading outsourcing firm in Germany that offers call center matching and management services through its AI-based digital platform. With a diverse portfolio of services, the outsourcing company helps businesses identify and connect with more than 400 call centers for their need of inbound, outbound, back office, and social media support.
- 15% reduction in cloud bills
- 25% faster release frequency
- 35% reduction in CPU utilization
The outsourcing firm had an in-house team for developing and maintaining their call center matching & management platform. The team continuously improves the web application for better performance and connects businesses with a relevant call center provider. However, as the system became complex and scalable, there was a requirement to make the architecture manageable and optimize resources on the cloud. Their team was confronting two major challenges:
Firstly, for testing the platform, the development and QA team simulated the testing environment on the AWS cloud using dedicated EC2 instances. For the varying test scenarios, the team would create and launch multiple EC2 instances but won’t switch them off once the purpose is fulfilled. These idle instances were adding unnecessary cloud costs, creating the need to automate cloud optimization.
Secondly, the call center matching platform was built on monolithic architecture. For the scalable system, the application was required to be migrated to container-based microservices architecture.
To overcome these challenges, the outsourcing firm chose Daffodil Software as its technology partner for later’s proven expertise in managing cloud services and modernizing applications at scale. Team Daffodil, was chosen to facilitate the following requirements:
- Automate availability of EC2 test environments, i.e. an instance should only be available for the time required to test the solution.
- Create a container-based, re-generatable test environment that is capable of handling concurrent requests by multiple testers at once.
Automating Infrastructure Provisioning
For the requirement to automate infrastructure on the cloud, a Terraform file was generated. This file enables creation of the required resources such as EC2, IAM policy, IAM role, Cloudwatch alarms, and lambda functions. When any tester requires an EC2 instance, they would build a Jenkins job which then creates terraform resources and launches all docker containers onto the EC2 instances.
Based on the inactivity which contains factors such as Nginx logs exported to the Cloudwatch log group filtered for status codes, CPU utilization, and memory utilization the lambda would delete the whole instance along with its related resources. This automation ensures that cloud resources are not running idle, and are created or deleted as and when their purpose is fulfilled.
Migrating Monolithic Architecture to Docker
Team Daffodil containerized the existing monolithic application using Docker. It runs in an orchestrated environment through Kubernetes and is managed by Terraform. For containerizing the application, some of the specialized AWS services were utilized, such as:
- AWS Fargate to run EC2 instances in containers
- AWS Elastic Container Repository for flexible hosting
- AWS Elastic Kubernetes Service to run K8 on AWS
The new, microservices architecture of the call center matching platform makes optimization easy for the development team. Architecture modernization made it convenient for the team to manage, update, and roll out new services, without impacting the entire application.
The self-destructing docker testing environment is available for testers to launch at the demand and not worry about forgetting to shut down the resources. This keeps the cost of the docker environment controlled and brought a significant drop of 15% in the overall cloud bills.
Read Related Case Studies
Get in Touch
Sign up for a 30 min no-obligation strategic session with us
Let us understand your business objectives, set up initial milestones, and plan your software project.
At the end of this 30 min session, walk out with:
- Validation of your project idea/ scope of your project
- Actionable insights on which technology would suit your requirements
- Industry specific best practices that can be applied to your project
- Implementation and engagement plan of action
- Ballpark estimate and time-frame for development