A digital customer journey experience company wanted to reduce the rising infrastructure costs of their AWS data processing platform deployed on Amazon Elastic Compute Cloud (EC2) instances. In addition, they wanted to reduce bootstrapping time, as this was impacting scalability and slowing down application releases.
The client wanted to rearchitect their AWS-based data processing platform and switch to a container-based deployment that could rapidly scale up or down, as needed, during peak and off-time hours. In addition, they wanted to automate environment provisioning and application deployment processes to drive faster and better-quality releases. They were also looking for 24×7 customer support for their AWS-based infrastructure, data processing platform, and applications.
~50% cost savings on AWS via container-based deployment using Kubernetes
The Impetus team leveraged Amazon Elastic Kubernetes Service (EKS), a fully-managed Kubernetes service, to implement a scalable container-based microservices architecture. Kubernetes was chosen for its automated scaling capabilities and powerful ability to run multiple containers on shared infrastructure. Containerization was adopted to enable a multi-cloud solution and accelerate release delivery, as containers support the deployment of specific services rather than the entire application. We set up pod scaling to quickly scale up/down the number of API containers based on the user load and configured node-level scaling to manage additional worker nodes at runtime. In addition, we used Kubernetes’ Namespaces to run Dev and QA environments in the same cluster, which helped reduce the number of compute instances. The entire transition was completed with near-zero disruption to production.
- Automated infrastructure set up for Kubernetes cluster via Jenkins pipelines to create an on-demand integration testing environment
- Docker images for critical application services hosted on Amazon Elastic Container Registry (ECR)
- Continuous delivery pipelines for containerized services on Flux CD to reduce deployment and release time
- Horizontal pod scaling, auto-scaling groups at the node level, and Elastic Load Balancing for quick scalability and high availability
- Airtight security leveraging Virtual Private Cloud (VPC), security groups, and Identity and Access Management (IAM) policies. Introduced Ranger for granular control on table and column level access
- Unified dashboard for service-level monitoring of AWS infrastructure (as compared to multiple custom dashboards), using Datadog
- Robust incident management system with 18×7 customer support
Enabled API deployment in under 2 minutes to drive faster releases
Transitioning to a container-based Kubernetes deployment with automated processes for environment provisioning and application deployment helped the client achieve:
- Rapid scalability with 2x faster start-up time for containers
- Consistent application delivery quality via automated DevOps
- 360-degree visibility of infrastructure, platform, and application metrics
- Greater flexibility through an end-to-end multi-cloud enabled solution