Skip to content

Latest commit

 

History

62 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Enterprise App Migration to Google Cloud (GCP)

This repository provides a production-style reference implementation for migrating a Python/Flask "Enterprise App" from an AWS-based architecture to modernized deployments on Google Cloud Platform (GCP).

The implementation demonstrates:

  • An AWS baseline architecture representative of real-world workloads
  • A re‑platformed design on GCP Compute Engine (Managed Instance Group)
  • A serverless container deployment on Cloud Run with integrated CI/CD

All detailed design, runbooks, and operational procedures are documented under the docs/ folder and in the platform-specific deployment guides.


Quick Overview

The same Flask application is deployed in three ways:

  1. AWS Baseline – EC2 + Application Load Balancer + DynamoDB + S3
  2. GCP Option 1 – Compute Engine Managed Instance Group + HTTPS Load Balancer + Firestore + Cloud Storage
  3. GCP Option 2 – Cloud Run (serverless containers) + Artifact Registry + CI/CD with GitHub Actions

Each option is fully described in architecture and deployment docs under docs/ and in the deployment_*.md files in each platform folder.


High-Level Architecture (At a Glance)

  • Web tier: Flask app served via EC2, Compute Engine, or Cloud Run
  • Data tier: DynamoDB (AWS) or Firestore (GCP)
  • Object storage: S3 (AWS) or Cloud Storage (GCP)
  • Identity: IAM roles (AWS) or service accounts with IAM (GCP)

Detailed diagrams and flows are in docs/architecture.md.


Technology Stack (Summary)

  • Language & Framework: Python, Flask, Jinja2
  • AWS: EC2, Auto Scaling, ALB, DynamoDB, S3, IAM
  • GCP (Compute Engine): Compute Engine, MIG, HTTPS Load Balancer, Firestore (Datastore mode), Cloud Storage, VPC, Cloud NAT, service accounts
  • GCP (Cloud Run): Cloud Run, Artifact Registry, Firestore, Cloud Storage, Secret Manager
  • Automation & Tooling: Terraform, Google Cloud SDK, AWS CLI, Docker, GitHub Actions

How to Use This Repository

  1. Understand the architecture
    Read the full architecture and migration story:

  2. Understand the deployment model
    Review common deployment principles (Terraform, environments, CI/CD):

  3. Pick a deployment path and follow its guide

    • AWS baseline (EC2): AWS/deployment_aws.md
    • GCP Compute Engine (Option 1): GCP/deployment_gce.md
    • GCP Cloud Run (Option 2): GCP-Cloud-Run/deployment_cloud_run.md
  4. Operate and optimize


Repository Layout (Short)

/
├── AWS/                # AWS baseline app + Terraform + deployment_aws.md
├── GCP/                # GCE (Option 1) app + Terraform + deployment_gce.md
├── GCP-Cloud-Run/      # Cloud Run (Option 2) Terraform + deployment_cloud_run.md
├── docs/               # Architecture, deployment model, troubleshooting, cost
└── .github/workflows/  # cloud-run-deploy.yml (Cloud Run CI/CD)

For all implementation details and diagrams, start in:

About

Enterprise cloud migration with Compute Engine, Cloud Run, Terraform, automated CI/CD pipelines, and secure private networking design.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages