As OpenStack adoption increases, companies are looking at ways to migrate workloads from traditional virtualization solutions like VMware or System Center to cloud infrastructures based on OpenStack.
There are multiple angles to this problem to consider:
Pets vs Cattle: when is OpenStack the right choice and when not
Lift and shift: when is worth to use automated migration tools like Coriolis to move virtual machines
App migration: when to migrate individual applications and their data to a new platform (e.g. a PaaS)
Re-develop: when to adopt modern paradigms like microservices, containers etc and redevelop applications
There's no one-size-fits-all answer, but knowing what your options are, you can do the right choice for each use case. Costs also have a big impact, for example it can be worth to lift-and-shift and use the saved money to re-architect the next app generation.
We will also do a fully automated lift-and-shift and DRaaS live demo using the Coriolis project.
3. The context
+ Companies move to the next dev / ops generation
+ Physical Servers -> VMs -> IaaS -> Containers -> Serverless
+ Rewrite LoB next gen applications while retaining investments on existing
generation
+ Improve TCO
4. Why migrating workloads?
+ In general: improved TCO
+ New on-prem cloud infrastructure
+ New on-prem hardware
+ On-prem to public cloud
+ Public cloud to on-prem
+ On-prem redeployment
5. What are the options?
Picture: Stephen Orban: buff.ly/2jZF5yv
6. Rearchitect
Pros
Apps become scalable
Apps become high available
Decoupling
Improved development and testing methodology (legacy spaghetti code -> CI/DC)
Cons
Expensive
Time consuming (most corporate legacy apps spawn across many years of development)
Users learning curve
7. Repurchase
Pros
No need to write it or mantaining yourself!
Typical example: move to a SaaS
Pay as you go
Cons
Customizations to fit the requirements
Data migration from can be expensive / time consuming
Users leaning curve
10. Replatform
Examples:
Move apps to a PaaS, e.g. an ASP.Net site from a local IIS server to Azure Web Sites
Move a SQL Server database to OpenStack Trove
Wrap legacy apps in containers and deploy them via Kubernetes / Magnum
Wrap legacy apps in a PaaS (e.g. Azure Service Fabric on OpenStack)
Pros
Apps become at least partially scalable / high available without a full rewrite
Reduced footprint (no dedicated servers needed)
Cons
Lots of hacking involved and not all applications can fit this model
11. Rehost (lift and shift)
Move VMs or bare metal hosts to the new cloud
Examples:
VMware to OpenStack, AWS to Azure, AWS to OpenStack, etc
Pros:
Servers are “black boxes”, no need for changes
Fastest option
Cons:
Won’t take full advantage of cloud model (e.g. scalability)
Target cloud solution might not have host level HA, so HA might be lost from source environment
13. More on rehosting
+ Easy when moving between homogeneous architectures / platforms
• e.g. OpenStack + KVM to OpenStack + KVM
+ Tricky when moving between architectures / platforms:
• e.g. VMware vSphere to OpenStack + KVM,
14. Introducing Coriolis – Migration as a Service
+ Fully automated lift-and-shift migrations from and to any cloud /
virtualization solutions
+ Scalable: do 1 migration or 1000 at a time
+ Rest API for full automation
+ Keystone identity management
18. Task based execution
+ Tasks are actions executed sequentially or in parallel based on
dependencies.
+ Tasks are resilient for transient failures and atomic
+ Examples:
• http://paste.openstack.org/show/602940
• http://paste.openstack.org/show/jvUV17eFqQVf2fGCuwIT
• http://paste.openstack.org/show/OtO8QT4k71jkIMIAgf7g
19. OS morphing
+ Needed when a guest instance moves between different platforms and
architectures
+ A worker VM detects the OS type / distro
+ Actions specific to that OS and target platform are executed (e.g. add VirtIO
driver, add cloud-init, etc)
20. Supported operating systems
+ Debian 7+
+ Ubuntu 12.04+
+ SUSE SLE 11+
+ RHEL / CentOS / Oracle Linux 6+
+ Fedora
+ OpenSuse
+ Windows 7, 8, 8.1, 10
+ Windows Server 2008, 2008 R2, 2012, 2012 R2, 2016 (including Nano Server)
22. Coriolis CLI
CLI is based on cliff, like the OpenStack client
migration cancel Cancel a migration
migration create Start a new migration
migration delete Delete a migration
migration list List migrations
migration show Show a migration
23. Coriolis CLI
replica create Create a new replica
replica delete Delete a replica
replica disks delete Delete replica target disks
replica execute Start a replica execution
replica execution cancel Cancel a replica execution
replica execution delete Delete a replica execution
replica execution list List replica executions
replica execution show Show a replica execution
replica list List replicas
replica show Show a replica
migration deploy replica Start a new migration from an existing replica
25. What about downtime?
+ Coriolis introduces a DRaaS feature (disaster recovery as a service) called
replica
+ If the source cloud allows it, data is backed up incrementally to the target
while the source VM is running
+ Migration is performed as the last step directly on the target cloud
+ No need for the source VM to be available (useful in case of disaster)
26. How does it work?
+ Examples of backup technologies used:
• Cinder Backup
• VMware Change Block Tracking (CBT)
• Windows VSS (Hyper-V)
+ Some options like CBT and VSS allow app consistency
29. Validation and testing
+ Replica volumes can be snapshotted and duplicated to perform a test
migration
+ This allows fully automated Integration Testing to ensure the VMs work as
expected
+ Replica volumes are not changed: replicas can be executed in the meantime
+ Examples: test websites and databases
30. Get in touch
Twitter: @cloudbaseit
http://www.cloudbase.it/coriolis
http://ask.cloudbase.it