At Ravello Systems, we spend most of our time working on the future of virtualization. This post is the preamble to a series of blogs where we will show you some of the results we've achieved over the last 3 years. These results include some exciting new possibilities like live migration between clouds, and running “foreign” VMs unmodified in the cloud (e.g. running a VMware VM unmodified on Amazon AWS).
Before showing you the future, let's take a whirl-wind look at the past. Virtualization was invented by IBM in the 1960s. The first operating system that was shipped by Big Blue that included a hypervisor was CP-67 in 1966. This OS (or "control program") was developed for the System/360-67, a mainframe of the time. For a long time after this, virtualization was confined to the realm of mainframes. The first small excursion from the mainframe world to the PC world happened in 1985, when Locus Computing announced Simultask, a hypervisor for the Intel x86 architecture. The Locus solution wasn't a great success, and we had to wait until 1999 when a little known (at the time) startup called VMware released a product named VMware workstation. The product worked on regular PCs running Linux or Windows, and was targeted at developers and testers.
While VMware workstation remained a relatively niche product, everything changed when in 2001 VMware released VMware ESX server. This product was not focused on workstations, but at the datacenter instead. Timing was spot on. After the dot-com bubble burst in March 2000, the Microsoft Server operating systems gained enormous popularity. However a big difference between these new Windows servers and the UNIX systems that preceded them was that the Windows servers are not very suitable to run multiple application instances on them. The result was the infamous “one app per OS” policy, that caused an average utilization ratio for most servers in enterprises of about 5%. Using VMware's ESX Server product, people could consolidate these mostly idle Windows servers on a lot less servers, often 10x less, which resulted in a huge cost saving. The rest is history. VMware grew into the $37bn company that it is today, and is without a doubt the leader in Enterprise datacenter virtualization. We will call this type of virtualization, where the focus is on virtualizing servers in the datacenter, "Virtualization 1.0".
Now fast forward to 2013. Two key trends have happened since VMware introduced ESX Server, which set the stage for "Virtualization 2.0". The first trend is that the web has become an essential channel for businesses to interact with their customers ("Web 2.0"). The volume and diversity of these interactions are such that the web applications powering this have become very complex. It used to be that an application would consist of a single virtual machine for the front-end (maybe two for redundancy), and a shared database server. Not anymore. Nowadays, a modern web application typically includes many app servers (to handle the load), geographically spread load balancing (for availability), messaging, work queues, a caching layer, mobile device integration, and more.
In parallel, a second trend happened which is the rise of the public cloud. The public cloud started in earnest in 2006 when Amazon released the first version of their Elastic Compute Cloud. It is safe to say that the cloud has taken the IT industry by storm. It has forever changed the time to market for new products, services, and how new companies are started. A large upfront investment in infrastructure is no longer required, and companies can "pay as they go".
The trend towards more complex applications, and the desire to use the public cloud, place new requirements on our virtualization technology. These requirements are not fulfilled by solutions of today. What is needed is an evolution of virtualization, a “Virtualization 2.0” if you will, that is defined as follows:
The Ravello solution is an implementation of Virtualization 2.0 as defined above. The foundation of the solution is HVX: a nested hypervisor designed for the cloud. On top of this, we have implemented a software defined network, storage virtualization, and various application services. Based on these components, we are in complete control of the environment, and can run unmodified VMware, KVM and Hyper-V virtual machines on any cloud we support, using arbitrary complex network configurations, while at the same time abstracting the underlying cloud's storage. The illustration below shows the components of our solution, and contrasts it with Virtualization 1.0.
In this series of blogs, we will take a more in-depth look at the Ravello technology. We have planned the following topics:
We'll be writing one blog in this series every week. Please subscribe to our RSS feed to get notified when a new blog appears.