Customer Overview
The customer is a pioneering biotechnology company headquartered in San Francisco, California, with additional locations in Vacaville and Oceanside. The customer focuses on the discovery, development, and commercialization of medicines for serious and life-threatening medical conditions. Their research and development efforts have led to significant advancements in oncology, immunology, and neuroscience. Known for its innovative therapies and commitment to patients, the company employs approximately 13,500 people.
Context and Challenges
The customer was using an on-premise data center to run the health data analytics applications. These applications were running on Linux based virtual machines. However, they were facing many challenges such as:
- Upfront hardware and software cost
- Difficulty in capacity building and deployment
- High operational cost for maintaining the data center
- Performance issues associated with on-prem data center
- Very tightly-coupled applications with complex architecture
- Error-prone manual deployment, causing frequent downtime and delayed releases
They recognized the need to migrate to a cloud-based infrastructure that would offer substantial business benefits. AWS Cloud was selected as their preferred platform for this transition. With our consulting and advisory, they decided to adopt Kubernetes as the orchestration tool and chose EKS due to its following benefits:
- Fully managed Kubernetes control plane
- 99.95% uptime of the EKS service
- Zero data loss and robust back-up protocols
- Lower maintenance cost
Pre-Migration and Planning
Before executing the migration, InraCloud undertook a thorough assessment of the existing infrastructure and applications. This preparation phase included:
-
Infrastructure assessment:
- Evaluating the current on-premises infrastructure, including servers, networking, storage and applications.
- Analyzing resource utilization patterns to understand peak and average loads.
- Identifying dependencies and integrations between different applications and services.
-
Application assessment:
- Reviewing the architecture and configurations of the existing applications.
- Identifying containerization opportunities by analyzing application components.
- Assessing the readiness to make applications compatible with Kubernetes.
-
Data assessment:
- Analyzing data storage, databases, and data transfer requirements.
- Determining the strategy for migrating data, including backups and synchronization.
-
Cost analysis:
- Estimating the cost of running workloads on EKS versus on-premises.
-
Migration planning:
- Creating a comprehensive migration plan detailing the steps, timelines, and milestones.
- Establishing a rollback strategy to mitigate risks during the migration process.
- Coordinating with stakeholders to ensure minimal disruption to business operations.
Solutions Deployed
After the initial assessment, InfraCloud migration team identified an immediate need to re-architect several applications to ensure compatibility with a containerized architecture. The containerization process was carried out using Docker, and infrastructure provisioning was managed with Terraform. We automated continuous integration and deployment using Jenkins, while container orchestration was handled by Amazon EKS. Additionally, we developed a centralized monitoring and alerting system using Prometheus and Grafana.
The detailed solution is described below:
(High Level Architecture Diagram)
-
Infrastructure setup using Terraform: We used Terraform to set up the AWS infrastructure, ensuring modularity, reusability, and version control. This included VPCs, subnets, security groups, AWS RDS and EKS clusters.
-
Containerization and image storage: The team containerized the applications by creating Dockerfiles and stored the containerized images in a Nexus private repository. This facilitated easy management and versioning of images.
-
EKS Cluster setup and scalability: We deployed the containerized applications on AWS EKS, utilizing Karpenter to manage cluster scalability. This allowed the nodes to automatically scale based on workload demands.
-
Application deployment: Our team used Helm charts for packaging and deploying Kubernetes manifests, which streamlined the deployment process and allowed for easy updates and rollbacks.
-
Kubernetes native objects: To ensure application availability, migration team implemented Kubernetes native objects such as Pod Disruption Budgets and Horizontal Pod Autoscaler. These objects helped maintain application stability during updates and varying loads.
-
Automated deployments: We leveraged Jenkins pipelines for automated regression testing and deployments. This streamlined the deployment process, reducing manual intervention and minimizing errors.
-
Monitoring and Alerting: Migration team implemeted Prometheus and Grafana for comprehensive monitoring and alerting of EKS workloads. This provided real-time insights into application performance and enabled proactive issue detection.
-
Encryption with KMS: We utilized AWS Key Management Service (KMS) for encryption, including object storage and secret management, to enhance security and compliance.
-
Backup and restore with Velero: Our team implemented Velero for backup and restore operations, ensuring data integrity and facilitating disaster recovery processes.
-
Database Migration: We leveraged AWS RDS/Aurora service to host MySQL database. AWS Data Migration service was used to synchronize data from on-prem data center to AWS.
(Database Migration Solution)
Migration Highlights
- 15 lift and shift applications
- 8 applications re-architected
- 50+ applications migrated in a span of 7 months
- 25+ applications refactored to containerized deployment
- 10 database migrated from on-prem to AWS MySQL RDS
Outcome
The migration provided several key benefits to the client:
- Achieved better scalability support up to 10x and ensured 99.99 % availability and scalability.
- Increased speed and agility after migrating to AWS as resources are better utilized, leading to cutting down expenses, which means better margins for profits.
- 40% reduced infrastructure cost through containerization.
- Reduced business and operational risks by migrating to a more resilient and secured cloud infrastructure.
- Reduced maintenance and operational costs by leveraging AWS managed services.
Trade-Offs
- One-time migration costs due to the simultaneous operation of on-premises and cloud infrastructure until the migration was complete.
- Increased dependency on AWS services and potential vendor lock-in.
Why InfraCloud?
-
Expertise in complexity: At InfraCloud, we excel at solving intricate challenges for our clients using various cutting-edge tools and technologies. Our long history in programmable infrastructure space, from VMs to containers, gives us an edge. Our DevOps engineers have pioneered DevOps at Fortune 500 companies.
-
Open source commitment: Our dedication to open source contributions sharpens our skills and offers us unique insights into maximizing technology potential.
-
Migration specialists: We are experts in smooth migrations, helping clients migrate from on-premise to cloud & multi-cloud setups, proprietary to OSS and vice versa, monolithic to microservices, etc.
-
Supportive team: Our experienced team will support you at every step of your cloud migration journey! We will assess your requirements, help you with planning and execution, and provide post-migration support to ensure everything runs smoothly.