This week, Microsoft announced it’s cloud platform Windows Azure and one thing is for sure, it looks nothing like VMware’s Virtual Data Center OS initiative (VDC-OS) announced at last month’s VMworld conference (for reference, see Chris Wolf’s Keynote Blog). The two approaches represent fundamentally different views of how the cloud should be built and what form applications will take.
VMware’s approach is really an evolution of virtual server environment we know today. A cloud data center running VDC-OS will consist of several components:
- Servers - lots of ‘em. Companies are already building giant cloud data centers which hold hundreds of thousands of server and consume megawatts of energy.
- Storage – by the terabyte: Storage will come in a variety of forms and will likely include NAS, SAN and direct attached disk.
- Networks - thousands of ports: Networks tie everything together and connect the cloud the outside world.
- Software layer - virtualize the hardware: Provides a hypervisor, virtual storage plus storage services like thin-provisioning, virtual networks to manage connectivity, provisioning and deployment for virtual machine images.
- Workloads – where the work gets done: At its simplest a workload is simply a virtual machine containing an operating system (i.e. Windows or LINUX) and the application. To handle more complex multi-tier applications (say a web server, database server and a application load balancer) administrators will create workload containers that consist of multiple virtual machines with connectivity, service levels, and other critical information defined for the container.
The beauty of this approach is that it will run anything that you run today, a virtual machine workload could host Exchange, Apache, DB2, etc, so it provides a relatively simple migration path to the cloud. VMware isn’t the only vendor going down this road, Amazon’s EC2 and 3Tera’s AppLogic platform are other examples of virtual machine-based approach to cloud computing. This VM-based approach is what Drue referred to as “system infrastructure as a service” in his recent blog on defining cloud computing.
Microsoft’s Azure is a bird of a different color and fits Drue’s definition of “platform as a service”. The hardware in the data center of an Azure cloud will look much the same as what you would see in a cloud data center running VDC-OS, the difference is in the software layer, and how applications are built. The software layer for Azure (hopefully they’ll be more details of this later) consists of two pieces:
- Microsoft Azure operating system: This part is responsible for managing all the hardware (servers, storage, networks etc) and creating highly flexible and efficient compute infrastructure. For the record, Microsoft seems to be in two minds about what to call this layer, in their keynote (which Drue covered here) they were very keen not to call this layer an operating system for fear of confusing people about the nature of the platform. Unfortunately, in a presentation they gave to analysts, they described Azure as "An Internet scale cloud services platform hosted in Microsoft data centers, which provides an operating system (my emphasis) and set of developer services that can be used individually or together"
- Microsoft Azure Platform Services: These are relatively high levels services including database, identity management, .NET execution environment, SharePoint document management etc.
Workloads in this cloud will be built using .NET, and will leverage the various platform services to build an application. As such those applications if written correctly will run on standalone Windows servers or in the Azure cloud, so there is no virtual machine in the server virtualization sense. Instead each .NET application running in the cloud will be running in a virtual environment that prevents unplanned interactions between different applications.
Perhaps the best way to understand the difference is to look at an example. Let’s say we want to offer word processing as a cloud application on both platforms. For VDC-OS we could leverage an existing application such OpenOffice and use a virtual desktop approach where each user gets a copy of the word processor along with a minimal operating system (perhaps a stripped down LINUX) running inside a virtual machine. For Azure, the word processor would have to be written as a .NET application from scratch, making use of the Azure Platform Services to handle such things as storing data, ensuring access control and privacy etc. The user interface would be a web browser, and each new user would have a separate instance of the .NET application running in the cloud.
If you’ve been following the “cloud”, then the Microsoft model should sound familiar, it is very similar to Google’s cloud which also offers an application programming interface and key services such as databases. The unanswered question at this point is whether Microsoft’s Azure (which is aimed exclusively at Google) is the only weapon in their armory or will they also announce a platform built around a future version of HyperV to compete with VMware’s VDC-OS? My bet is that they will “drop the other shoe” in 2009 and announce VDC-OS type platform. Stay tuned to see if I’m right!
Posted by: Nik Simpson