Windows Azure defined
Summary: Windows Azure is a Microsoft hosting framework that makes it easy to scale from 10 users to 10 million users with no additional effort. Though it's a good idea, I do think they should consider allowing third party hosting providers to compete with Microsoft's Azure data farm.
Yesterday was the opening day of Microsoft's Professional Developers Conference (PDC), a four-day extravaganza that is the place Microsoft typically announces major new product initiatives. .NET was rolled out at a PDC, as was "Longhorn," the code name for the version of Windows eventually released as Vista.
This PDC is going to include a lot of information about Windows 7 - unless someone went a little crazy and put a bunch of Windows 7 posters around the Los Angeles Convention Center by accident. That information, however, is slated for today (and I'll have more to say about it tonight). Monday was devoted to Windows Azure, a project that is of special interest to Ray Ozzie, the driving force behind Lotus Notes and co-founder of "Groove," a maker of peer-to-peer business software whose purchase by Microsoft brought Ray Ozzie into the Microsoft fold.
To be honest, Windows Azure was a hard product to roll out at 8:30 in the morning on the first day of a conference. I have a decent grasp of the concepts now, though I must admit that I gained the most insight into what it involved through the sessions which followed (though it wouldn't be the first time that has happened).
Ignoring the pithy sentences Microsoft sprung on everyone at the keynote (e.g. "an operating system for the cloud," which makes sense from hindsight, but didn't give me much of a conceptual understanding), I would define Azure as follows: A framework that allows you to scale from 10 users to 10 million users without additional coding. There are a pile of services that Azure adds to the mix that makes it easier to write complex distributed applications, but bottom line, Microsoft wants to make highly scalable applications a "no brainer" for developers through Windows Azure.
One thing Microsoft claimed during the keynote was that the framework could enable ZERO downtime for applications (assuming developers don't upload broken code). This would normally be impossible, as operating systems must be updated, as must application-specific production code. To achieve this, Microsoft developed a system that dynamically manages control flow so as to allow operating systems to be patched without shutting down a running application (move code and flow to a different server while it is being patched), as well as enable production code to be brought seamlessly online after updates. In this respect, Azure can also be considered a framework for location-agnostic distributed applications.
How Microsoft does some of these things I can't say as of yet, and I'm not likely to have an answer while locked inside a conference hall in downtown Los Angeles. The abstractions used within Azure applications, however - which are critical if dynamically-changing distributed applications are not to affect runtime performance - fall into five categories: Live Services, .NET Services, SQL Services, Sharepoint Services and CRM Services. Though its important to know those categories given that Microsoft is likely to repeat them in documentation, I got a much better sense of what Azure was all about by finding out what is actually inside some of those buckets.
.NET Services contains a new Identity management system, code named "Geneva," that is to distributed Identity what Windows Communication Foundation (WCF) is to wire protocols. Apparently, it allows any kind of authentication and authorization system to be automatically "plugged in" to an Azure application. Obviously, this includes Windows authentication technologies such as Live ID and Active Directory, but it also includes non-Microsoft authentication protocols, such as Tivoli.
The principle of protocol and technology agnosticism seems to extend widely throughout Azure. It is Microsoft's intention to support PHP and Java in Azure applications (each of which will have bindings to Azure services). Eclipse will also get the Azure treatment, as plugins will be developed that make it easy to use the open source development tool to make Azure-compliant applications.
A number of storage abstractions exist (or will exist), such as "blobs" for storing large amounts of data (later to include file streams), table abstractions as part of SQL Services (later to include some distributed caching system), and communications concepts such as queues and distributed locks. All these abstractions are designed to make it easy to scale transparently without extra effort on the part of developers (well, beyond the need to write to Azure abstractions, which encapsulate the design principles necessary to achieve those scales).
Though .NET clearly will get special emphasis, Azure is not confined solely to .NET code. As noted, bindings will exist for Java, PHP, and other non-Microsoft technologies. They also intend to support native code (which will likely run within virtual servers to keep them isolated from other applications), though support for this feature is not included with the current demonstration release.
The Azure concept is, in my opinion, rather interesting, and continues a trend at Microsoft to simplify use of complex functionality through easy-to-configure abstractions. This serves a real need, and seems to bring massively scalable applications within reach of ordinary developers.
There are, however, a number of business issues which need to be worked out. First, I have no idea what Microsoft plans to charge for these services (and if I might hazard a guess, Microsoft isn't all that sure, either...at least, not yet).
Second, I'm not so sure how willing people will be to write an application that can ONLY be hosted in the globally-distributed server farm Microsoft is building to host Azure applications. Though I'm sure there will be disagreement in the Talkbacks, I believe some legal contract can be worked out that will provide the confidence that businesses will have absolute ownership of their business-critical information even though their infrastructure is hosted entirely by Microsoft (Microsoft hates lawsuits as much as the next company). Committing oneself permanently to use Microsoft as your hosting provider may be a harder pill to swallow.
To be fair, Microsoft probably hasn't decided whether Azure will be a Microsoft-exclusive hosting environment. A Brazilian engineer asked during one of the post-keynote sessions whether there would be any other Azure hosting providers besides Microsoft. The answer from the panel was that, for now, it will be Microsoft only service (which isn't saying much, as this is clearly still a work in progress), though many of the features will find their way into Microsoft operating systems. Azure, in other words, will be a hothouse for new scalability features that will appear later in other Microsoft platform products.
To my mind, that leave the door open to the possibility that others will be able to host their own Azure applications. I hope so. Allowing competing hosting providers is essential to trust of such a wide-ranging service, and is more fully in the spirit of the open protocols that serve as the foundation of this new infrastructure. Strictly speaking, Microsoft doesn't NEED to make this a Microsoft-exclusive. The company will still have the resource advantage, not to mention a track record of managing extremely large server farms as well as a status derived from their role as developer of the framework.
The idea, I think, is a good one. Even so, the Microsoft exclusivity angle could be a sticking point. Perhaps a Microsoft-controlled certification process for Azure-compliant hosting providers could be an acceptable middle ground.
Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.
Talkback
It seems very strange...
my definition: hot air
Yes, you are full of hot air.
RE: Windows Azure defined
in a web environment. they have built a zero downtime
multi-billion dollar business, and they live and die
on the web in a cloud environment.
Also, I can see Amazon and Google being natural allies
here. Google Chrome is amazingly fast for web-based
activities, and Google is hell-bent on getting their
web-based applications out there, and helping the
other browser players (Firefox etc) come up to speed
for Internet processing within the browser.
Microsoft simply has too many performance holes to
plug simultaneously. They have to improve the
performance of the sluggish IE7, their entire web
environment, and their operating systems.
Finally, they have to do something about their
security. They are a very big target already, and
malware writers have hundreds of thousands of hours
invested in understanding the Microsoft environment
for the purposes of subversion.
Any operating system in a Cloud environment that is a
corporate tool will be very profitable to subvert.
So I would trust Amazon to deliver a Cloud, and I
would trust it even more in a Linux environment.
No hot air here
How much more biased can you be? Please go out and
compare the number of security vulnerabilties SQL
Server 2005+, Server 2008, .Net Framework, IE7 and
Silverlight since their respective releases. In case
you've been living under a Penguin the last three
years, M$ has made monumental strides in security.
Your speed points about IE are certainly valid. I now
use Chrome as my main browser. It's great, and I would
love to see M$ move towards a more lightweight IE
that's on par speed wise with Chrome.
Multiple purpose investment
At the time, the servers were associated with search. Now the resources will be available for this range of products, an actual synergy.
The only company with comparable resources is Google, I expect. And despite those resources, I doubt that Google has an interest in a project this extensive.
So, for all that Mr. Carroll is (rightly) interested in assuring that competition does exist for this hosting, the smaller competitors are likely only to help Microsoft with anti-trust issues. An effect like that of open source software.
If Microsoft can tie cloud computing to massive server farms, that will more than justify Mr. Ballmer's investment.
Relevant quote:
Second, I?m not so sure how willing people will be to write an application that can ONLY be hosted in the globally-distributed server farm Microsoft is building to host Azure applications. Though I?m sure there will be disagreement in the Talkbacks, I believe some legal contract can be worked out that will provide the confidence that businesses will have absolute ownership of their business-critical information even though their infrastructure is hosted entirely by Microsoft (Microsoft hates lawsuits as much as the next company). Committing oneself permanently to use Microsoft as your hosting provider may be a harder pill to swallow.
RE: Windows Azure defined
mean of all the companies in the world to take it this
seriously. There OS just isn't ready to take on such big of
task yet.
I mean if Windows 7 is gonna be based on NT 6.1, then I
hate find out what Azure will use.
All dependant on poor connectivity?
I can understand how building great servers/services works, I understand how building greate client apps work, what I do not understand is how either matter if the medium between the two is so unstable and unreliable.
Is this a case of betting the farm in the belief that *someday* the internet is more stable?
There are cash cows on the farm
Microsoft can add to its product lines until the cows come home.
"... betting the farm ..." indeed.
But will *I* bet the farm...
Agreed..
While I would like to see the fineprint on Azure regarding "We are not responsible for your data, your business, or it's likely bankruptcy from losing all your data in a global bluescreen", the fact is the same type of "We're not responsible for anything" attitude and indemnity goes for most internet connections, not matter how fast, new or expensive they are.
Inside a hosting center you even have very limited liability from SLA's, but the giant bulk of even commercial business internet connections in any city or town will basically only guarantee that the connection you get "is a priority to them" at best, and the liability generally limited to the cost of the lease on the line. Nothing is expected or implied about the loss of your productivity, revenue or business by an outage, and, most businesses only have one physical connection to the net, even if they are so conscious as to buy redundant lines, or even use redundant providers.
Cloud computing is a great idea, really. And I am not going to douse Microsoft's fire for their implementation of it when it hasn't even cut it's babyteeth. But, if anyone developing for this or using it relies on it for all operations, their internet line will be the weakest link. And if it does not -fundamentally- include ways for a business to store their data on premise, and, run in some capacity during an outage, it will not be worth much.
Enterprises will likely buy direct redundant leased channels
Typically, for a large cloud usage scenario, they will have redundant, high-bandwidth, leased channels from top tier ISPs, probably into the Internet backbone.
Notwithstanding this, such an enterprise is also likely to want to host its own cloud for comfort (security and control) reasons.
It is then the myriad small to medium businesses that may benefit from the cloud, but are also less likely to have the ability to afford the type of connections above. Catch 22!
In the end, I think cloud computing will be relegated to those areas that are less critical and more tolerant of outages. After all, desktop computing and storage is still around because there is still NO guarantee that anything remote will always be available on a LAN, let alone WAN.
Sounds like they are trying to compete with salesforce.com
SalesForce has no chance
Just buy Citrix
Citrix on Amazon's Scalable Compute Cloud is compelling counter-product, if they can sort out the licencing problems.
Citrix have 'been there and bought the T-Shirt' on remote problem/issues like USB peripherals, remote printing (drivers and bandwith), display acceleration etc
Microsoft have a huge learning curve here.
RE: Windows Azure defined
If I am right... am I the only one extremely and incredibly uncomfortable with this idea?
Cloud computing is all about...