Client Overview
The client is a global customer engagement software company headquartered in TX, USA, powering more than 500 million daily digital interactions. Their award-winning platform provides online community management, social media marketing, social media analytics, digital care, and content management software and services to over 2000 global brands including one-third of the Fortune 100 companies.
Executive Summary
The client wanted to migrate their applications running on Amazon Web Services (AWS) Elastic Compute Cloud (EC2) instances to AWS Elastic Kubernetes Service (EKS) to take advantage of the scalability and manageability of Kubernetes.
Context and Challenges
Several issues with the client’s infrastructure were:
- The application consisted of multiple microservices running on multiple Amazon EC2 instances.
- Any requirement to scale the microservices was done manually, following a set of instructions to install and configure on a pre-baked Amazon Machine Images (AMI).
- Deploying the application to a new customer or to a new AWS region would take weeks to months, lack of automation added to the problem.
- Managing multiple environments was a major challenge.
Expectation from InfraCloud
The customer wanted to migrate their application from AWS EC2 to AWS EKS and reached out to InfraCloud for help as InfraCloud’s expertise is around helping companies adopt cloud native technologies.
- Automation of infrastructure required for the Amazon EKS cluster (VPC, EC2, RDS, S3, etc)
- Helm Charts for all the microservices
- CI/CD for the microservices using Jenkins and Flux CD
- Metrics monitoring using Datadog
- Log monitoring using Sumo Logic
- Alert management using PagerDuty and Slack
- Any new deployment to a new AWS region should take less than a day
Infrastructure Diagram
InfraCloud subject experts audited the existing infrastructure, learned the application’s requirements, and designed an infrastructure that will help to solve the above challenges.
Technologies Used
The cloud technologies used to complete the project include:
- AWS (RDS, S3, ALB/NLB, Lambda, SQS, SNS)
- Amazon EKS
- Helm Chart
- Jenkins
- Flux CD
- Datadog
- Sumo Logic
Solutions Deployed
We approached the problem in 4 phases.
Phase 1: Bring up the Amazon EKS cluster
- Create the Amazon EKS cluster and other AWS resources using cloud formation templates
- VPC
- Amazon EC2
- S3
- RDS
- Auto Scaling
- Amazon EKS
- Roles and Policies
- Lambda
- SQS
- SNS
- Install and configure basic services
- Karpenter for auto-scaling of the Amazon EKS worker nodes
- Datadog operator and Metrics server for monitoring
- Sumo Logic operator for log aggregation and analysis
- Flux CD for continuous deployment
- AWS Load Balancer Controller
Phase 2: Deploy the application to the Amazon EKS cluster
- Create the helm chart for each microservices with the following resources:
- Deployments
- Statefulsets
- Services
- Ingress
- PVC
- HPA
- PDB
- Service Accounts
- Used the community charts for RabbitMQ (Bitnami) and Cache service (Hazelcast) instead of creating from scratch.
- Deploy the helm chart to the Amazon EKS cluster.
Note: Data migration was not required, the customer started with a fresh DB.
- Create Jenkins pipeline
- Compile and Build
- Create container image
- Push to ECR
- Modify the FluxCD Helm Release files
- Configure FluxCD
- It checks for changes in the HelmRelease file for eg., docker image, and application values, and deploys to Amazon EKS cluster.
- Deploys the changes in GitHub repo to Amazon EKS.
Phase 4: Monitoring, Log Aggregation, and Notification
- Configure the Datadog to pull metrics from the Amazon EKS cluster.
- Create monitors, and dashboards alerts and notify stakeholders using Pagerduty and Slack.
- Send application logs, Load Balancer logs from S3 are pushed to Sumo Logic.
Benefits
The company was able to successfully migrate the application from Amazon EC2 to Amazon EKS, resulting in the following benefits:
- Easily scale up or down the applications without the need for manual intervention to meet changing demand, saving on the overall cost.
- Simplified deployment process and the ability to manage multiple environments easily.
- Strict security and access control policies ensured a secure environment for the application.
- Reduction in infrastructure costs by leveraging the managed services provided by AWS.
- Seamless integration with Datadog and Sumo Logic provides real-time alerting for any critical issues.
Key Metrics
- Deployment to a new region takes less than a day compared to weeks to months before the migration.
- InfraCloud experts helped the client migrate to Amazon EKS in under 2 months.
- Amazon EKS proved as a highly compatible solution as the customer used a range of other AWS services.
- The application is deployed in 3 regions and serves customers across the globe. Earlier it was only deployed in 1 region, posing risks in terms of backup & disaster recovery.
- The new automated CI/CD pipeline ensures that builds can be deployed to production within minutes compared to 30 minutes before the migration.
- The new deployment architecture in Amazon EKS ensures no downtime during upgrades/downgrades.
Why InfraCloud?
- Our long history in programmable infrastructure space from VMs to containers gives us an edge.
- We are one of cloud native technology thought leaders - speakers at various global CNCF conferences, authors, etc.
- DevOps engineers who have pioneered DevOps at Fortune 500 companies.
- Our teams have worked from data center to deploying apps and across all phases of SDLC, bringing a holistic view of systems.