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).
The History of Virtualization… IBM
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.
Along came VMware
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”.
The Rise of Complex Applications
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.
The Rise of the Public Cloud
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 Need for Virtualization 2.0
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:
- Virtualization 2.0 has an application focus. It encapsulates all elements that are required for delivering an application, including multiple virtual machines, their network configurations, storage, and cloud infrastructure services.
- Virtualization 2.0 is mobile, and can leverage the public cloud. A 2.0 virtualized application can freely move between a local data center and a public cloud, or between different public cloud providers. This mobility is reversible without any changes that need to be made to the application or operating systems, and without loss of enterprise functionality such as High Availability, live migration, and cost saving by consolidation.
The Ravello Solution
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:
- Nested virtualization performance. Here we will investigate the performance overhead introduced by the extra level of virtualization.
- Live migration between different clouds. We will show how we can do a live migration of a virtual machine between two different public clouds.
- VM consolidation. How to run multiple VMs inside a single cloud VM.
- HVX implementation details. Here we’ll take a deep dive and look at the implementation of HVX and how it allows us to abstract away the differences between the different clouds we support.
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.
About Ravello Systems
Ravello is the industry’s leading nested virtualization and software-defined networking SaaS. It enables enterprises to create cloud-based development, test, UAT, integration and staging environments by automatically cloning their VMware-based applications in AWS. Ravello is built by the same team that developed the KVM hypervisor in Linux.