Organizing migrations

If you're planning a large migration, it's a good idea to divide the work into large chunks, called "sprints." A sprint should contain all of the VMs running one of your apps.

Migrate for Compute Engine subdivides a migration sprint into one or more waves, which group the VMs that run your apps into batches for migration. This document describes how to create waves and defines their subcomponents, runbooks and jobs.

Migration waves

To make migration more manageable, Migrate for Compute Engine provides a feature called waves that batches VMs for migration. Waves are made up of runbooks and jobs:

  • A runbook is a CSV file that specifies the VMs to be included in a wave and the configuration of target VMs. It describes the source VM, defines properties for the target VM and networks, and also contains other metadata.
  • A job is the migration operation that Migrate for Compute Engine performs on the list of VMs in the runbook. Migration operations include creating test clones, migrating, and detaching. A full list of migration phases is listed in the migration lifecycle.

Some considerations when using waves:

  • All VMs in a wave must each undergo the same job. For example, if a database and application server are within the same wave, you can't have a test clone created for one while the other is being fully migrated.
  • Runbooks contain run groups, which define the order in which VMs are migrated in a wave.

Performing operations on migration waves

Batches of VMs in a wave move between the following stages in the migration lifecycle:

  • Test Clone (for VMs from vSphere only)
  • Delete Test Clone
  • Run-in-Cloud
  • Move Back
  • Full Migration
  • Offline Migration
  • Detach
  • Upgrade OS
  • Cleanup

If a VM fails to complete a job and move to the next stage, you can fix the problem and run the wave again. Migrate for Compute Engine picks up the migration where it left off.

For example, if you run a Run-in-Cloud job on a wave containing VMs A and B, and VM B fails to complete the operation, fix B. After fixing B, you can do the following: either perform a Run-in-Cloud operation to bring B to the same status as A (A will not be changed), or perform a Full Migration operation to bring both VMs to the same state by performing Run-in-Cloud and migrating them together.

Starting your first wave

To start migrating with waves:

  1. Create and edit a runbook.
  2. Create a new wave from that runbook.
  3. Run jobs against the wave.