Case Study: AWS to GCP Service Migration

Modernizing Development Practices During a Cross-Cloud Migration

Client

Startup providing B2B software to power utility companies

Project Description

The client, a leading provider of power conservation solutions in the utility space, had recently formed out of a merger of multiple software startups. To take advantage of enterprise-level hosting incentives, the client wanted to consolidate all microservices into a unified environment hosted in Google Cloud Platform. An additional goal was to enhance deployment velocity and reduce friction for engineers in shipping data science features to production.

Solution

  • Containerization: Legacy applications were containerized so they could be deployed to a production compute cluster.
  • Kubernetes Clusters: Established Kubernetes clusters for development, staging, and production environments.
  • Go-Based Management System: Developed a CI/CD management system in Go to handle automated rollout tasks based on a developer-led GitOps workflow.
  • Configuration via YAML Files: Configured infrastructure of deployed applications through YAML files stored in each app’s repository, allowing for low-friction access control and version history.
  • Migration to GCP: Migrated applications from AWS to GCP, conducting thorough testing with engineering and QA teams in the staging environment. Traffic cutover was performed on a per-app basis after validation against each corresponding legacy instance. We also provided procedures for rollback in case the team discovered errors that hadn’t been found during testing.

Results

  • Unified GCP Environment: Applications were migrated to a unified GCP environment in Google Kubernetes Engine clusters managed by the Operations team.
  • Visibility and Control: Business leaders gained comprehensive visibility into billing and usage of cloud resources by managing resources within a single GCP account.
  • Developer Empowerment: Developers gained the ability to requisition and configure GCP resources independently by editing YAML app configurations, reducing dependence on Operations.
  • Increased Deployment Velocity: Deployment velocity significantly increased, with the time for code to enter production dropping below 30 minutes.
  • Data Science Empowerment: Data scientists were empowered to expedite the deployment of their features by controlling the pipeline from development to staging and production.

Conclusion

The implementation of a containerized environment, Kubernetes clusters, and a Go-based management system successfully unified the microservices for the Energy Solutions Provider on Google Cloud Platform. The project not only streamlined deployment processes but also empowered developers and data scientists, contributing to increased deployment velocity and efficient resource management within a single GCP account.

Schedule a free consultation

Find out how Monstera can help your business succeed. We'll learn about your project and give you an idea of what we can do for your organization.

Solutions
Case Studies
About Us
© 2024 Monstera Consulting LLC