Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Any work done for the migration should have some thought to migrating towards “The moon on a stick”. So any solution should make it easier and not harder

Infrastructure as code

The team as well as the individuals in the Devops team use both Ansible and Terraform to manage infrastructure as code. It has been decided that although it would be good to do the migration via these tools, it would probably take too long and would be wasteful as once we’ve completed this ‘As Is’ migration, we would be on our way to already be moving away from it, chipping it away and improving thing via tech debt tickets

The work

We currently see a number parts of this migration work. This consists of:

...

Our intention is to get the data migrated into AWS “As Is” with MySQL vm’s (just like in Azure) as EC2 instances and have “DMS” (Database Migration Service) streaming updates from Azure into AWS. These DB VM’s will have the same network addresses and credentials so the current deployed applications will not need to be updated in any way (or have any different environment variables) in order for them to serve data.

These new DB VM’s will then have another “DMS” instance streaming data into the AWS managed service databases (RDS/Aurora). These databases will be the final destination of the data, where new systems such as Trainee UI and “Moon on a stick” TIS will be able to access data from.

This data strategy will allow us to have all services running in parallel (both aws and azure), destroy the services in Azure and have AWS serve all traffic and keep data for trainee ui fresh

...

Warning: with this strategy, it's very important that users that have access to the AWS version of TIS while it's still running in Azure should NOT be allowed to modify data. This would cause a disjunct of what the correct data is. So only only Azure has been decommissioned, should users be able to change data in AWS

We also have data stored in on attachable disks in Azure (Jenkins/Mongo/Rabbit). Some thought will need to be had around the type of data these systems hold and whether or not its required to migrate them.

Developers and Services

During the migration, we’re not going to stop developers from doing their jobs. It won’t be feasible to tell the business that all features/bug fixes will need to stop until we’ve completed the migration. With this in mind, we are having to come up with ways to allow the building/deployments of services to continue with zero impact.

...