Beyond the Hype… More Hype (Part 1 of 2)
There’s an infrastructure storm brewing that, when it finally unleashes its fury, will catch off guard every enterprise CIO steadily making progress towards their Private Cloud. The argument: It’s time to get over our love of Hype(rvisors) and question the value of virtualization in the cloud. What kind of cloud? Oh, All kinds. And lest you want a nutshell summary: Here is my thesis: The hypervisor as you know it is useful for hosting legacy IT workloads in private clouds. But beyond today’s Hypervisors, a profoundly important new building block for the cloud will emerge – an even more powerful kind of Hypervisor.
I: The Schism: IT_Ops vs Dev_Ops
I am always surprised by how few IT organizations developing a cloud strategy understand the difference between the typical Enterprise IT infrastructure versus (say) Amazon Web Services. In the enterprise, every legacy technology ever built remains in service, coddled by an army of dedicated IT professionals whose challenges grow with each new technology acquisition, merger or strategic initiative. For these poor folk, x86 server virtualization and its evolution into virtual infrastructure has been a godsend. Legacy workloads, bundled up as VMs, can be efficiently and dynamically spun up on any server, on demand. IT gets to be greener, more highly available, and more responsive to business needs. But most importantly, since most workloads are seriously long in the tooth, it allows IT to take advantage of Moore’s Law – replacing old gear with more efficient, faster, smaller devices without changing software. Legacy workloads can live forever, happily ensconced and managed in VM bubbles, and sophisticated management frameworks provide insight, control and automation of traditionally manual tasks.
But this so-called IT_Ops flavor of cloud lacks important attributes found in public clouds: You have to buy equipment up front, instead of paying as you go, and it is inelastic because your capacity is fixed. By contrast, the “Cloud in your pocket” (the clouds that run the apps on your smartphone or tablet) runs on big public IaaS clouds such as AWS. There are no IT folk involved here, and the focus is on providing a set of service interfaces to support app developers who will never encounter an IT person. These Dev_Ops clouds offer rich toolsets for developing, testing, provisioning and automatically scaling a web-services based app and its storage and networking infrastructure, atop a “pay as you go” business model. Examples include Heroku, Engine Yard (which runs Groupon), PiCloud, Node.js, VMware’s CloudFoundry or even Red Hat’s OpenShift. By focusing solely on making the developer’s life simpler, and the use of powerful automation frameworks such as Chef, Puppet or tools such as RightScale, the abstraction (service interfaces) of the cloud can quickly move beyond the concept of a VM instance. VMs may well be used under the covers (they are by the frameworks listed above) as units of workload that can be elastically provisioned using the basic VM-centric primitives of the cloud, but to the user of the cloud they are hidden. Welcome to the world of next-gen apps, where VMs are best described in PaaSt tense.
The bottom line: The public cloud is PaaS centric. Though you can certainly spin up VMs if you need to, richer app-centric service interfaces let you forget all about them. As better instrumentation of the PaaS layer becomes available, your need to be involved with VMs will steadily decline (good blog here) Finally, if you are an enterprise user of VMs in an IaaS cloud, you probably use an OS instance provided by the cloud provider (another value-added service) – once again freeing you from any concern about the hypervisor.
II: Big SaaS Couldn’t Give a Hoot about VMs
The Big SaaS properties – consumer and enterprise focused – have historically been built according to highly app-specific needs. A few notable exceptions come to mind, such as Netflix, whose journey to using the AWS cloud to host their apps is superbly chronicled in Adrian Cockroft’s blog and on the Netflix tech blog. But many, including Salesforce and Facebook believe they don’t need a hypervisor in their infrastructures. The argument is simple (and a bit naive): they operate at a scale where the “server virt” consolidation arguments in favor of running multiple VM instances per server simply don’t make sense. Saving 50% of a server when you have 100,000 of them is kind-of-meaningless. But there are a couple of reasons why a hypervisor does make sense in large web shops: First, if the infrastructure hosts multiple apps, multi-tenancy of the hardware infrastructure makes sense. A good example is Yahoo, which has over 250 web properties sharing about 500,000 servers in 26 data centers world wide, and because they grew so rapidly and applied the naive approach, used to run at a shocking 8% average utilization before opting to build a large virtualized private cloud. The other reason to use a hypervisor (MySpace springs to mind) is provisioning cleanliness: each server runs a single VM (which contains an instance of the app) and the operators can insulate their software from different kinds of hardware by using the hypervisor and its virtual hardware as a clean abstraction layer. Historically this caused overhead since the hypervisor introduces at the very least an I/O overhead, but with the emergence of SRIOV, or with simple PCI pass-through of devices to a VM or VMs, the performance overhead of the hypervisor is tiny.
As more and more next gen apps (both SaaS and PaaS-hosted) are developed, we will quickly move beyond the era of relevance of the hypervisor. A powerful abstraction, for sure. Used liberally – everywhere where the lowest levels of infrastructure require multi-tenancy, dynamic provisioning, optimal packing, manageability and high availability – but unimportant to the users of the cloud. A mere capability in the IaaS stack. Only in the enterprise, where IT is slowly automating its traditional practices and where the traditional single-server-OS based units of work as VMs remain, will the “big brand” hypervisors command a following. Why? manual procedures for VM Management, that are vendor specific. The Enterprise Private Cloud market is growing at about 30% per year, but IaaS and PaaS clouds, already well beyond the hypervisor-as-service-interface, are growing at break-neck pace of about 70% per year, driven by the staggering growth of mobile apps and our insatiable consumer appetite for services.
III: But Wait! That’s all Wrong!
Yes, it is. There’s something critically important that I’ve left out, that completely changes the relevance of the hypervisor. It’s so important that I believe the hypervisor will become ubiquitous. You wouldn’t dare to have a server or a client without one. More on that in Part II.