Application migration from GCP to AWS EKS KaaS
Aug 08, 2023
Introduction:
The purpose of this case study is to describe how the Cloud Infrastructure team implemented application migration from GCP to AWS EKS [KaaS] platform, in addition, it also identifies the challenges faced, and outlines the scoping procedure and approach to process the migrations. The study highlights the solution established, implementation strategy, results, impact and lessons learned
Company Overview
Industry: SaaS company
Location: US
Established: 2007
Challenges
Major challenge was the time constraint for delivery of application on the AWS EKS KaaS platform to be consumed by the developers while maintaining dynamic scalability and high availability
Technology Solutions
- AWS Organizations - An account management service that helps to consolidate multiple AWS accounts into an organization and centrally manage them.
- AWS EKS for K8s clusters to run the workloads
- AWS CloudTrail – A service that assists in enabling operational and risk auditing, governance, and compliance of the AWS account
- AWS Config - A service that helps assess, audit, and evaluate the configurations and relationships of the AWS resources.
- AWS SSO - It is one of the most efficient, secure, and effective single sign-on services now known as an AWS IAM Identity Center.
- Centralized Terraform Tooling to provision AWS resources in any account using Terraform Templates
- A multi-account environment using AWS Organizations
- AWS DMS - is a managed migration and replication service that helps move your database and analytics workloads to AWS quickly, securely, and with minimal downtime and zero data loss
- Helm Charts - Helm charts are a collection of files that describe a set of Kubernetes resources, including deployments, services, and ingressAWS EKS for K8s clusters to run the workloads
- ArgoCD - ArgoCD is a GitOps tool that simplifies the deployment of applications on KubernetesAWS
- JFrog Artifactory - JFrog Artifactory is the single solution for housing and managing all the artifacts, binaries, packages, files, containers, and components for use throughout your software supply chain
List of application which were targeted for migration
Implementation Strategy
- Established VPC tunnel between AWS and GCP AWS EKS for K8s clusters to run the workloads
- Utilized AWS DMS to migrate the MySQL data into Aurora
- Created Git repository that will contain the Helm charts for the applications, this repository will serve as the source of truth for ArgoCD
- ArgoCD installed and configured into KaaS cluster
- Pipeline creation for Continuous integration into Jenkins
- pipeline creation for continuous deployment integrated into ArgoCD
- ArgoCD will monitor the Git repository for changes to the Helm charts and automatically deploy the new version of the application
- Jfrog artifactory used to store the images
- Sonarcube for vulnerability scanning
- All code commits done Git repo
Below diagram represents the namespace segregation of the repo & established on ArgoCD
Implementation of services
Results and Impact
- Customer realized a successful way to implement further migration and use existing methodology as a blueprint
- Existing migration to AWS leverages the benefits of cost optimization of certain services Ability to utilize the offerings of AWS on the KaaS platform
Conclusion
To apply engineering principles at each stage in the process required a deep understanding of their business environment, organizational landscape, keeping in mind reducing and eliminating business risk. Migrations at this scale happen only a few times in the lifecycle of an organization.