Hi I’m Stephen O’Grady. You may remember me from such pieces as “Do Operating Systems Matter?” or “Do Operating Systems Matter Part 2: The Appliance Question?” Troy McClure jokes aside, the question persists, and in fact has never been more relevant than today.
As we discuss with vendors and users alike, cloud computing offerings – regardless of the style – tend to conflate what have in the past been separate purchasing decisions. The most obvious casualty is hardware, which is why I’ve argued that the traditional systems vendors have no real choice but to embrace the cloud. When you choose the cloud for deployment, one of the things that you are not choosing is hardware type, be that which x86 vendor or which basic chip architecture altogether.
Not that customers, or developers for that matter, have been that upset by that development. The low margin economics driven by the market pioneer – Amazon – have kept the economic barriers to entry low, while the nature of the cloud itself keeps the logistical barriers even lower. Contrast the have-a-credit-card-will-travel with traditional procurement, and you’ve got the idea.
More subtle, however, have been the implications vis a vis the operating system’s role. The IaaS-style of cloud that dominates current adoption, after all, does little to sublimate the operating system in the offering itself. Amazon customers count that, in fact, as one of the choices they can make, be that Linux, Solaris, or Windows. This is not the case, however, with Platform-as-a-Service offerings. What’s the operating system behind Force.com or Google App Engine? It doesn’t matter, according to the providers, because they’re abstracting that from you.
It all comes back to the question of what, in this day and age, developers are choosing to write to in volume. Is it the operating system (e.g. Linux)? A customized operating system instance (e.g. rPath)? A managed runtime (e.g. Java)? A language framework (e.g. Rails)? Or a cloud fabric that encompasses most of the above (GAE)? The answer, of course, is all of the above. Each of the above adoptions is seeing volume deployment, even as the bulk of the enterprise workloads have been slow to transition from the tried and true Java option.
Still, how these trends are affected going forward are open to question. As Jeremy Allison said a few days ago, “Cloud computing is going to change the industry in as profound a way as client server did in the late 1980s and 1990s.” Couldn’t agree more, personally. And if you accept that that’s true, or that it’s at least possible, it becomes necessary to seriously consider the longer term implications. For better or for worse, cloud offerings act to collapse a variety of choices into a single layer. Hardware, operating system, database, programming language: all may be dictated to you, in return for the various benefits that the cloud models offers, from elastic capacity to heightened control of your cap-ex.
In the kind of world that many of us project, one with the cloud a first class platform option, it’s worth asking the question: would operating systems (still) matter? Microsoft, for its part, appears to be hedging its bets. Even as we’ve seen the folks from Redmond trumpeting their resurgent success in the netbook consumer platform – claims which the Ubuntu folks, among others, dispute – their own cloud play abstracts the operating system in favor of the runtime. To be sure, the runtime – with the exception of Novell/SuSE’s Mono offering – is itself a tie back to the operating system, but the operating system layer introduced with Azure is explicitly not for redistribution. The cloud platform instead, replicable locally using the development tools, becomes the new target. Google, meanwhile, is hiding the (assumed) Linux under the covers, just as Force.com does with its underlying offering. Even Amazon, which exposes different operating systems to customers as discussed, does not talk about its own host operating system.
Levels of abstraction or no, however, what the cloud is not is a cleanroom reimplementation of everything that came before it. J2EE, LAMP and .NET remain available development paradigms, and will for the forseeable future. What they might not be, however, is quite as dominant as they have been to date.