Lessons Learned from Cloud Migrations: Planning is Everything

By Chris Short

Elevator Pitch

“Migrating to the cloud saves money!” “Lift and shift is a legitimate first step towards moving to the cloud!” These are potential pitfalls if you’re not careful. Proper planning prevents piss poor performance. Using a real cloud migration as a guide, walk through the pitfalls of cloud migrations.

Description

Introduction: What is “the cloud” and is it worth moving to it?

  • Opinionated Definition: Compute, storage, network, etc. optimized to work with high levels of redundancy and availability while being maintained and consumed by its users via APIs.
  • Build vs. Buy: It’s definitely worth moving to a cloud provider but consider doing it yourself too; it might be easier in the long run.
  • Colocating could be considered cloud if infrastructure is API driven (OpenStack, Kubernetes, Pivotal Cloud Foundry, etc.)
  • We shot ourselves in the foot by not planning and choosing a very aggressive deadline

Assumption #1: Migrating to the cloud saves money

  • If done right, yes. But, at my previous employer, it was a costly venture.
  • We did not optimize for cost
  • We planned on discounts but didn’t plan or execute how get discounts
  • Pay attention to asterisks!

Assumption #2: Not running your own infrastructure reduces your bottom line

  • CAPEX and OPEX still apply in the cloud.
  • The expectation is that when you help a cloud provider better predict their CAPEX they will pass some savings onto you.
  • We did not realize that early enough and did not plan accordingly

Assumption #3: Lift and shift is a legitimate first step towards moving to the cloud

  • Lift and shift then optimize is a good strategy
  • Those loops have to be very tight though
  • Take the time to optimize often
  • Increase density like you would in any datacenter

Planning is Vitally Important

  • Planning and observing!
  • Monitor everything; find holes in infrastructure and fill them, analyze bill and act often
  • Adopting cloud native concepts is important (Cron jobs to functions, containers to increase density, etc.).
  • Dedicating a technical person towards cloud utilization, spend, and cost optimizations is a wise decision.
  • Business logic really matters; having data to back up specs is important

Vendor Lock-in Kills

  • Your multi-cloud dreams will be fraught with roadblocks unless you plan effectively.
  • If you don’t think Microsoft, Amazon, and Google aren’t thinking of ways to make changing providers difficult for customers you are fooling yourself.
  • Eat your own dog food applies to infrastructure as well
  • Build your freedom and accessibility on top of compute, storage, and networking
  • Use vendor specific features as a way to augment personnel but always put a ticket in the backlog to replace them with something more flexible