Cloud Migration is the journey, the end-to-end lifecycle whereby thing move from other locations (on-prem, other clouds) and into the GCP
GCP is the destination where these things migrate to, and which re often modernized/optimized in-cloud afterwards
Types of Migration
Rehost -> Lift and Shift
Moving applications as they exist to the cloud
When to use it
Applications that can run unmodified in the cloud
Speed is necessary
Little appetite or need for change
Minimal risk
Use
Google Cloud Bare Metal Solution (specialized workloads)
Google Cloud VMware Engine (managed infrastructure)
Migrate for Compute Engine
Migrate for Anthos
Pros
Easiest migration
Use existing tools
Use existing skills
No tools change
Supports off the shelf software
Fast way to migrate to the Cloud
Cons
Not inherently cloud-ready
Scales vertically (generally)
In not highly managed
Does not work for all apps
Does not leverage cloud pricing (generally)
Replatform -> Lift and Optimize
Lift the existing workloads and then optimize them for the new cloud environment
When to use it
To take advantage of all the core competencies of the cloud (elastic computing, redundancy, improved performance, security)
Use
Google Kubernetes Engine
Google Compute Engine
Cloud SQL
Refactor -> Move and Improve
Modify the workloads while migrating them to the cloud, or even before migrating them, e.g.; to take advantage of cloud-native capabilities (elasticity, scale, managed services)
When to use it
Improving the application's structure and code without modifying the architecture
A major update to the workload is necessary
Use
Google Kubernetes Engine (managed Kubernetes / containers)
App Engine (managed app platform - refactor)
Google Cloud Dataproc
Pros
Portable
Scalable
Highly available
Environmental consistency
Cons
Often requires refactoring
May not work for off the shelf apps
Requires new tools
Requires updated skill sets
Need to re-evaluate existing plans
Takes longer than lift & shift
Re-architect -> Continue to Modernize
Instead of restructuring how the workload code works (Refactor), re-architect migrations change how that code functions.
When to use
Modify the application's architecture to adapt it to the cloud
Use
Cloud Functions
Rebuild -> Remove and Replace
Decommission an existing app and completely redesign and rewrite it as a cloud-native app
When to use it
The current app isn“t meeting your goals
Take full advantage of Google Cloud features
Use
Cloud Functions
Cloud Run
Cloud Build
Cloud Deploy
Pros
Takes full advantage of the cloud
Removes technical debt
Easily scalable
Highly available
Highly managed
Cons
Doesn't work for off the shelf apps
Requires significant code rewrite
Takes longer / more effort than lift & shift
May not support niche scenarios
Requires new tools
Requires updated skill sets
Need to re-evaluate existing plans
Repurchase
Moves from a purchase on-premises workload to cloud-hosted SaaS equivalent
Use
Google Cloud Transfer Appliance
Cloud Storage Transfer Service
Migration Path
Assess / Discover
Collects details of on-prem or source cloud environment (How many VMs, types of VMs, how VMs are configured, what interactions machines have)
Assess and analyze the data collected and use it to make decisions about migration type, target architecture, licensing, resource allocation, and prioritization
Input
Business objectives
Key stakeholders
Technical assumptions
Security approval for tooling
Activities
Stage1: Automated discovery to see what's really there
Stage 2: Surveys and interviews to add context and scope
Stage 3: Analyze, pick a first mover, and start Wave planning
Stage 4: Generate inputs to foundation
Output
Workload grouping
First mover workloads identified
Refined TCO/ROI analysis
High-level effort estimations
Plan / Foundation
Putting together the team, agreeing on project management protocols and defining and building GCP environment into which will migrate the VMs (Landing Zone preparation--billing account taxonomy, IAM rules, Resource Groups, Network and firewall rules, etc.)
Input
Application/VM grouping
First mover workloads identified
Initial sorting of groups to move
Activities
Establish IAM and organization structure
Create/configure the network resources
Cloud operations suite setup
Billing export/labels
Plan the pilot
Rough out migration waves
Create the migration factory
Output
Delivery of foundations/landing zones scripts
Organization structure
Agile migration factory
Tools
Configuration Management
Ansible, Puppet, Chef
Infrastructure as Code (IaC)
Deployment Manager
Terraform
Cloud Foundation
Create a well-designed GCP environment to run migrating workloads (Landing Zone)
Identity & Access
Define IAM policies
Determine structure of the resource hierarchy
Create projects and folders until organization is mature
Authentication
On-prem Active Directory as IdP
Azure AD as IdP
Networking
Create networks, subnets, network devices (Cloud Routers, VPNs, and LB)
Create firewall rules, unless maintained by the security admin
Instrumentation
Define baseline monitoring
Build Cloud Monitoring dashboards
Initial alerting groups and processes
Cost Control
Set up a billing account
Define billing export and resource labelling
Migrate
Migrate workloads (VMs, DB, Containers or Data) from the source environment into GCP
Input
GCP migration landing zone
Migration backlog
Business prioritisation
Activities
Install and configure Migrate for Compute Engine
Create waves and runbooks
Define configurations for special apps
Migrate waves of applications
Output
Successfully migrated workloads
Lessons learned
Updated operating model
Tools
Migrate to Virtual Machine (formerly Migrate for Compute Engine)
Optimize
Optimizing your environment and workloads
Input
Migrated VMs
Business objectives
Relationships with app owners
Activities
Update and prioritize backlog of optimizations
Design and test strategy for specific optimizations