AWS Outposts and Azure Stack
This week was AWS re:Invent, and I watched the keynote live-on Wednesday.
The three. hour. keynote.
During which Andy Jassy announced new features at a pace that is frankly astounding. Three hours should be too long for a keynote, and if I wasn’t watching from the comfort of my office, it would have been. Not only did the announcements keep unfolding for the full 270 minutes, but some didn’t even make it into the keynote. Running a three hour keynote is tough, creating enough new services and features to overflow a three hour keynote is amazing. My hat goes off to the engineering teams at AWS. It is truly staggering what you manage to accomplish each year.
There was one announcement that struck close to home. AWS announced Outposts towards the end of the keynote. In case you don’t want to read the whole marketing blurb on their website, let me give you the TL;DR. Outposts is an on-premises, hardware solution that you will be able to purchase via the AWS console and install in your datacenter. Andy Jassy said that the hardware in question is the same hardware they use in their AWS datacenters. The software running on this hardware? It will come in two flavors:
- Running the same VMware on AWS software that they use to deliver VMware on AWS in the cloud.
- Running the same AWS software with a subset of the AWS services.
The first one is like an olive branch to VMware. Andy Jassy is saying, “Yes Pat, we used to be mortal enemies. And now we’re best friends and we’re definitely not out to destroy you.”
No, definitely not. They are besties for life…
Except for that second option. That’s the takeover bid. The soldiers in the Trojan Horse. When VMware ruled the datacenter and AWS ruled the cloud, they could be friends. We are living in the Hybrid Cloud world after all. They needed to unite. Microsoft had a story that spanned the Hybrid Cloud, and AWS and VMware created one that did the same. The second option disrupts that uneasy alliance. You wouldn’t know it by all the smiles and back slapping we saw on stage, but if you checked the next day, there would be bruises from those slaps.
On your Outposts deployment you will be able to run a slice of AWS in your datacenter with EC2 and EBS to start. Naturally, that comes with the VPC construct to wrap around it. You can also start with as little as one node and scale out. The networking can use NSX to integrate with your Layer 2 network. The management of the solution will be done through the existing AWS console, or the standard APIs that are available in AWS today. AWS is fully managing the hardware and software updates and support of the box.
This is strikingly familiar to a product I’ve been working on for the last few years, Microsoft’s Azure Stack. Microsoft and analysts have predictably crowed about how Outposts is a validation of Azure Stack, and since Microsoft was there first, they’re going to win. The former is true, the latter is… less true. Just because you have the idea first, doesn’t mean that you win. Go ahead and talk to pets.com about that. Oh wait, you can’t. Right idea, wrong time and bad execution. (Pets.com I mean.)
There are three things that immediately jump out to me about the Outposts product:
- You can start at one node. Azure Stack requires a minimum of four nodes (with the exception of the ASDK, which doesn’t count.) Of course, how much can you actually run on a single node? You know there won’t be any redundancy if the node fails. But I will point out that you can pack 96 cores, 2TB of RAM, and 1PB of storage into a single server these days. I have no idea what the specs are going to be on the nodes, but what is possible is quite staggering.
- AWS is owning the entire hardware and software stack. Azure Stack works with multiple OEMs. AWS is taking the Apple approach. There is definitely an advantage in owning the entire stack when it comes to consistency, predictability, and simplified testing. When a new Azure Stack update is released from Microsoft, the OEMs then need to verify the update on all of their system variants. This is trivial when the change is purely internal, like an updated API. This is incredibly complex when you want to introduce new networking capabilities that rely on hardware acceleration. AWS may be able to move faster since they don’t have the built-in lag of third party OEMs and validation.
- You can order this thing in the console. This might be the killer app. You want an Azure Stack? Well you’re going to need to work with one of the OEMs, and deal with a VAR, and go through procurement, and… I’m already exhausted. Outposts? Click, click BOOM. Outposts is the Saliva of on-prem, hybrid cloud. If there’s one thing that Amazon perfected, it’s low friction customer interaction. That’s great for when I need more cheezy-poofs. Maybe not so much for a rack of gear in my datacenter.
There are also three issues that immediately jump out at me:
- Integrating any solution into a datacenter is hard. There’s a reason Systems Integrators exist. I’ve added hardware to a lot of datacenters. In the best scenario, the customer has properly filled out the pre-flight checklist, and they have actually followed through on the to-do items. The more common scenario is that they don’t have the proper cables, rack space, power connectors, etc. And that’s just for the physical installation. Once you get to the software configuration, now you are dealing with their network, Active Directory, DNS, and time servers. Some or all of which may be incorrect on the checklist and not functioning properly. This is not unpacking an Amazon Echo and plugging it in.
- AWS is used to doing things at scale, where the logistics are totally different. Now they are directly shipping and supporting hardware for customers, and customers are sort of awful. That’s probably not fair. Some customers are great! They listen, they provide prompt responses, and they know their environment. It’s really the 80/20 rule. But that 20%? They are going to be the thing that makes you want to burn down the whole datacenter and walk away. My point though, is that AWS deals with servers in the thousands, not the ones. And like Andre the Giant said, “You have to use different moves when you are fighting half a dozen people, than when you have to worry about fighting only one.” That’s a long quote, but it was worth it.
- As Microsoft has discovered, the caveats of this type of solution are numerous and difficult. There’s a reason Azure Stack took so long to ship, and even now is still evolving. AWS does have the benefit of seeing what issues the Azure Stack team had to deal with, but they’ll still have to clear those same hurdles with their own solution. Azure Stack was in gestation for about three years with multiple technical previews. Scaling down Azure for a small number of nodes is hard. And when it first came out, it really only had IaaS solutions available. It wasn’t until this past year that the App Service and DB as a Service started being truly viable. AWS said that EC2 and EBS will be available at launch. Don’t expect anything else for a while, and don’t expect it to work well. Also dealing with code updates for remote boxes is difficult, and the API on your Outposts is going to be a different version than the public AWS regions. How are you going to deal with that?
Will Outposts be successful? Yes. I have no doubt that this is the wave of the future. Microsoft has a head start on that wave, and they need to keep riding it. What about other competitors? I have a sneaking suspicion that Google Cloud will have something similar soon, and I’m not just talking about GKE on Nutanix. In fact, if I were Google Cloud, I would just buy Nutanix and have done with it.
Lastly, yes you can run VMware on this thing. No, don’t do that. I suspect 95% of Outposts that ship will be running the AWS variant. AWS has basically just eaten VMware’s breakfast, lunch, and dinner, and now it’s eyeing up the Baked Alaska that Pat ordered for dessert.