- 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
- Implement optimizations
-
Output
- Updated workloads