I always have thought of Microsoft as Open Source in many ways. I know it may sound odd on several fronts, especially for a guy like me who has been using UNIX flavored operating systems since the early 1980s.
But I’ve also been using PC-Windows and Apple Macintoshes since the early 1980s, so I think my views are informed by a pretty wide set of data sources. When I build a desktop PC today, I cherry pick some of my favorite components- including quiet cases, Asus motherboards, Nvdia video cards, Samsung monitors, Logitech mice, etc. I can depend 100% that I can install Windows 7 and everything will not only work, but work in a pretty optimal state. From there, I can do some tuning and get even better performance. For me, relative to the evolution I’ve seen in home computers since the late 1970s, that’s pretty cool. An OS that will work with just about any hardware you throw at it. Sure- the operating system is built of binaries of which I don’t have access to source code. But even though I’m a power user, I don’t need it.
When Microsoft talks about being “all in” in terms of cloud computing, I get curious to see what they mean. Bob Muglia, head of Microsoft’s server group, recently gave a talk about Microsoft’s cloud computing efforts.
Cloud computing means something different to me than just providing a remotely-hosted operating system with the drivers to support just about any hardware. And it is very difficult to talk about cloud computing without talking about UNIX flavored operating systems- in this case Linux. (I will use Linux as a proxy for all open source variants of UNIX flavored operating systems for the purposes of this article.)
I define cloud computing as a shared hosting service that allows for self and automatic provisioning of resources, total virtualization of the operating system environment, and billing based on per unit consumption.
All of these attributes have been mostly inherent in open source UNIX variants since the beginning of their existence. When I logged onto the ucscb.ucsc.edu server while at college in 1988, the BSD 4.3 environment I saw was, more or less, a complete copy of the environment every user saw when they logged in. I could do word processing, chat, play games, send email, and develop software- as could everyone else. At the time, Microsoft didn’t have anything close to this- something that Muglia talks about in his speech:
“One thing I will tell you is that, I’ve been working with providing software to hosters for well over ten years, and we have not done as a company as good a job of providing you software that was designed to run in your environment, and thus you’ve had to do a lot of make work to adapt it to work.”
UNIX variants were built from the beginning to be used for hosting- hosting students, researchers, developers, and multi-user corporate environments. It is natural that Microsoft would need to catch up, and Muglia describes this as well. Muglia went on to say,
“Linux was actually quite a bit better than we were. You know, we recognized this was a deficiency… part of the reason for some of [our] these deficiencies has been that our focus has always been towards enterprise customers, and small business, not so much delivering things as a service, and particularly not so much towards the hosting community.”
So by understanding where Linux has strengths, Microsoft now clearly is in a position to compete.
And it is welcome competition. Microsoft server environments take away the “code maintenance” and “hacking” necessary to run a strong Linux based environment. A good amount of engineers at companies who run massive Linux server farms such as Google and Akamai focus their time on “tuning the Linux kernel”, something not possible with Windows. The kernel is pre-compiled, and you tune the environment to your needs. This, among many other elements of a Microsoft server environment, is a big time saver. And Microsoft put a lot of effort into tuning their server operating systems for performance.
But performance is just the start. To be a true cloud environment, each user must have a complete virtual instance of the server at their disposal. Again this is new technology for Microsoft, but Muglia absolutely addresses its arrival as the “aspect of the evolution of the datacenter towards a compute an overall shared compute environment… this as an opportunity to dramatically accelerate the speed of building solutions and delivering solutions into the marketplace.”
Here is where the excitement begins. It would be great to be able to roll out cloud infrastructure without having to be a kernel tuner, hardware hacker, or server architecture guru. This is where Microsoft can add tremendous value to the industry. I can even envision it for the home- to have a single disk-based device accessed by terminals throughout the house, eliminating the need for heavy machines everywhere… yes that means a return to client-server in many ways, except in this case it’s not a server, but a virtual instance of a fully powered client machine.
And in terms of business scaling out, Muglia says, “they want to allow that software to run on behalf of another organization…there’s a whole different way that we think about running this pooled set of resources”
Finally the concept of what we called for years “sub accounts” comes into play. This is what is missing from so much software out there: the ability to set up sub accounts for business to create sub accounts for their clients to create sub accounts for their users etc… This works great on Linux- and would be great to come to the world of Microsoft.
Overall, I’m excited that Microsoft is throwing its resources behind shared server hosting technology and creating strong competition to the Linux world. Of course I am also well aware that this will create a more complex field of suppliers, offerings, and service levels- and require work to decipher and differentiate between potential contracts.
But what excited me most from his talk was some of that classic Microsoft humor, as Muglia used the term “dog fooding” to mean that Microsoft will offer up its own services based on its own software.