Vmware on aws you're doing it wrong

Ned Bellavance
6 min read


This is going to be a controversial post I am almost certain.  Basically, I am going to argue that the whole premise behind running VMware on AWS is fundamentally flawed and not a viable strategy for those who are currently running VMware or for VMware itself as a company.  Get your angry comments ready, here we go!

The genesis behind this was an innocent LinkedIn post I made.  Before we dive into the topic, I want to level set a little.  First of all, I really like VMware’s virtualization product.  I have been using ESX since the 3.5 days, and it has been nothing short of revolutionary in the datacenter.  The first time I launched the vSphere client and realized what I could do with virtualization, I felt a wave of excitement wash over me.  This was the future!  And I was hitching my wagon to go along for the ride.  That was in 2007.  Checking my calendar, I see that it has been a decade, and sure enough virtualization has swept across the datacenter leaving a trail of positive destruction in its wake.

The point is that I really like VMware.  This is coming from a place of love.

People have called VMware and virtualization disruptive, and it was to a certain degree; but in terms of application and operating system design, it wasn’t.  It was simple, trivial even, to take an existing physical system and virtualize it.  You didn’t need to rewrite the application or reinvent the operating system.  Existing workloads chugged along, blissfully unaware that they were no longer sitting on bare metal.  It was transformational for IT Ops, but not so much for application development.

Cloud native computing is not that.

It is entirely possible to lift and shift your existing workloads and the VMs they run on up to the cloud.   However, that is certainly not the best way to take advantage of the public cloud.  In my experience, you are going to end up paying  more to run your VMs in Azure or AWS than you would in a local datacenter or a co-location facility.  And you aren’t getting the true benefits of cloud native computing.  I don’t want to wander into a discussion of the 12-factor application, suffice to say that a true cloud native application is very different than a traditional application you might have in your datacenter today.  Platform as a Service enables those cloud native apps to run in the cloud effectively and efficiently.

So what is the point of the VMware on AWS offering?

Let’s look at the sales material:

  1. Simple and Consistent Operations
  2. Flexibility to Suit Your Business Needs
  3. Enterprise-Grade Capabilities
  4. Delivered as a Service from VMware

Simple and Consistent Operations Sounds to me like your sys admins don’t want to learn about this new-fangled cloud thing.  Wrap them up in a comfy VMblanket and let them take a nap in the hot aisle of the datacenter.  Seriously though, a simple consistent interface for your infrastructure is the holy grail, and no one has come even close to making it a reality.  Why?  Well you already have a single pane of glass, it’s called your monitor.  Beyond that there are simply too many disparate systems to expect all of them to integrate nicely into a single management console and platform.  Not having your admins learn how to use cloud services is simply kicking the can down the lane for another year of two.  At which point your admins and possibly your company will be obsolete.

Flexibility to Suit Your Business Needs All long as VMware on AWS suits your business needs, then sure.  Of course if you are going to branch out into AWS, then you’ve violated selling point one, since you now have to manage those resources through AWS.  They also talk about flexible consumption models, which is a bit laughable when you actually look at the economics of the offering.  You need a minimum 4-node deployment in AWS for VMware.  That deployment will run you about $32 an hour at the list price.  And it’s not like you can just spin these up and down on a whim, there’s a decent ramp up time to get it all running and you have to coordinate with VMware and set up the integration with your existing vSphere environment.  Can you get some price breaks?  Sure, but then you have to make an up-front commitment of 1-3 years.  That doesn’t sound super flexible.  You know what’s really flexible?  EC2.  I can spin up instances on demand in a VPC and only pay for them while they are running.  If I need connectivity back to my environment, then I can use S2S VPN and use the new NSX-T to provide seamless connectivity.  Although layer 2 across multiple datacenters is a terrible idea and is only used to help legacy applications limp along rather than modernizing them.

Enterprise Grade Capabilities Um, OK?  The marketing here starts to get really fuzzy.  Something about using NSX, vSAN, and vSphere on AWS bare-metal to achieve elastic, next generation… ugh I couldn’t even get through the last few terms.  What are they really trying to say here?  You should use vSAN in AWS instead of using their EBS or S3 storage?  That’s patently ludicrous.  If you want to talk about elastic, then it doesn’t get much more elastic than EBS and S3 (it’s literally in the name).  Plus, vSAN is limited by the number of nodes in a cluster and some upper limits on the architecture itself.  At release, the vSAN cluster will be limited to 16 hosts, so maybe you’ll be able to provision a VM with a 10TB disk?  What’s the maximum volume size in EBS?  16TB and you can create multiple 16TB volumes and RAID them if you really needed to.  S3 is essentially limitless in terms of storage.  As I mentioned you could use NSX-T to get NSX in your VPC.  For management, well like I just said you’re going to be using multiple management tools anyhow.

Delivered as a Service from VMware At least you don’t have to manage the underlying hypervisors or physical hardware, which is exactly what you would already get with any major public cloud vendor.  Or in the case of a vCloud Air partner, this is what you can already get today.  So again, what is the tremendous differentiator?

When you boil it all down, you basically have a managed colo offering sitting in AWS’ datacenters.

You’re Doing it Wrong. If what you want is to run workloads in AWS, why wouldn’t you just use AWS’ services?

If you need DRaaS, there are many much cheaper options to replicate your VMs to a public cloud without an entire vSphere cluster that is always running and costing you money.

If you need IaaS, then just use the public cloud IaaS services.  They are easy to understand!  And that’s the direction you’re likely heading anyhow.

You’re not going to VMotion workloads dynamically to VMware on AWS.  Stop it.  I know it’s cool.  That doesn’t make it a good idea.  You’re enabling bad application practices to perpetuate.

Cloud native computing is the future platform for modern applications.  I think VMware knows this, and for the interim VMware on AWS was the closest they could introduce to keep their investors happy.  But it’s the wrong approach and I think in five years time they will end up abandoning it in favor of something more modern.