What standards do you follow if you're interested in getting started in cloud computing? The short answer is, there are few clearly defined standards in what remains a loosely defined area. Nevertheless, the main outline is clear. Follow the leaders and follow the Web.In an InformationWeek Webcast on The Cloud and Virtualization June 16, I tried to lay out a few of the standards that will dominate cloud computing. One assumption is that cloud computing will adopt the most efficient paradigms found on the Internet, say the massive and uniformly managed server farms of Google and Amazon.
That management layer is likely to be primarily a virtualized management interface, since it's most efficient to manage large sets of resources as logical rather than physical units. If you can virtualize the resource, you can manage it through software and manage larger computing units--with fewer people.
Why would I say x86 hardware was going to be standard in the cloud? one questioner wanted to know. There's no definition of a cloud that says it has to be based on x86 servers. Excellent clouds can be built on IBM Power servers and Sun UltraSparc. But the x86 architecture is rapidly growing up.
Each core of a multi-core x86 Intel Nehalem chip can handle two threads or two discrete processes at a time. The now dominant dual core chips will soon be replaced by quad core CPUs as a commonplace, each capable of handling eight processes at a time. The ability to execute eight processes translates into an ability to satisfy the needs of many virtual machines. At a recent dinner I attended, an AMD spokesman said six cores "and more" will be available before the end of the year.
Andy Bechtolsheim, when he was at Sun Microsystems two years ago, designed x86 servers based on AMD's dual and quad-core Opteron chip. He loaded them up with extra memory and added network interface cards, some of which are now available at 10 Gigabit per second speeds. Accenture's outsourcing arm uses these Sun Fire 4600 servers to run 60 virtual machines per physical server. Its testing indicates they're capable of hosting 100 VMs per server without exhausting CPU, memory or I/O channels, provided an investment is made in offloading the vSwitch of the VMware ESX Server hypervisor.
Intel's Nehalem chip has learned the lessons of Opteron and expanded upon them. The x86 architecture has rapidly evolved in the direction of server performance, not end user needs, and one of the few ways to put all that horsepower to work is on heavily virtualized servers. The x86 chips with their consumer base can be produced in such volume that it becomes extremely difficult for other architectures to compete with them on a price basis. So it seems evident to me that the cloud will be an x86 organism.
In some ways, a uniform chip architecture is a requirement of the cloud. It allows one system management system to see one server and assume all the others are clones.
In addition, virtual machines can't be moved around, a la VMware's VMotion, unless it's from like server to like server. It's not enough that both are AMD or both Intel servers. They must be in the same chip family of their manufacturer and the same version of the chip. The x86 instruction set has evolved with each new chip, and virtual machine predictability and reliability would be at risk if an operations manager VMotioned a virtual machine from one type of chip to another, even if he stayed, say, within the Xeon chip family.
That will change eventually as both manufacturers realize the benefit of making virtual machine more mobile across their products. For now, a strict like-to-like rule prevails.
The cloud will run on virtual machines, workloads shipped across the Internet as virtual appliances--application and operating system optimized to run it as one set of files. No simple standard has emerged building these workloads. Some clouds run VMware's VMHD files; some run Microsoft VHD files; Amazon runs Amazon Machine Image or AMI files, its slightly tweaked version of the Xen open source virtual file format.
Meanwhile, the Distributed Management Task Force has come up with OVF, a neutral format for moving files around but not a neutral runtime format. If your workload is in VMHD and you need to run it under Citrix Systems' XenServer, you will convert those files to OVF and XenServer will convert them further into VHD, which it can run.
A neutral runtime format would enable ease of migration from enterprise to cloud or better yet, cloud to cloud. But I am not sure I will live long enough to see such a simple, logical development. The vendors, like ardent men in the pulpit, are invested in conversion, not universal understanding and ecumenicalism.
So follow the leaders in x86 architecture implementations, Amazon, Google, Microsoft. Understand that any rapidly accepted Web standard is a good standard. Understand the contention between vendors over virtualization formats, and pick your way carefully from there. Standards will emerge, but they are as likely to be defacto as de jure, and if you're not watchful in where you place your feet, you may find yourself in some vendor-engineered tarpit, unable to get free.