Windows Azure was just announced, seriously, like fifty one minutes ago at PDC 2008 by Ray Ozzie at Microsoft. It is a new operating system that implements the whole “cloud” environment for hosted services and applications. The first few times I’ve heard or read about the cloud (in general) I had the same reaction I always do when I hear about new development trends or paradigm shifts.
That reaction is, best case, I’m going to have to un-learn then re-learn what I know. Whatever I’ve finally mastered is now obsolete, and I need to start over. That’s best case. Worst case is, holy shit, Microsoft has written me out of a job, tantamount to the jobs we’ve written people out of by automating Excel, or coming up with a new WF workflow.
However, with Azure, that’s not the case. Basically, there are now three tiers of environments:
The reason this is not the case is because we can leverage our existing knowledge against the Microsoft .NET Framework, SQL Server, Exchange, SharePoint, CRM, and Live either against our on-premises servers or in the cloud. We don’t have to re-learn anything new; the only additional step is a wizard to deploy our applications to Azure, and, of course, an XML configuration file.
I was very afraid that everything was going to be different, and technically easier and more abstracted, meaning of course more difficult to deal with when something goes wrong or needs to be extended outside the box. But now we have a “Software + Services” concept from Microsoft, where companies can not only chose between a conventional on-premises server environment or a hosted “cloud” environment, but also elect to mix the two together!
A quick example of this is something being called “Federated Identity” where the Azure manages user authentication for us. On your Windows Server 2008 domain controller running Active Directory, you can configure a connector to Azure, so that when users hit your web application from the Internet, they don’t get a credential challenge: Azure can talk to your AD, circumventing any firewalls or other network security that could cause developers headache, and get them in!
Referring again to those three bullets above, Windows Azure doesn’t sit on top of Windows Server or anything like that. It’s really side-by-side. In an ACT-ish analogy… Azure : cloud :: Server : computer. Where Windows Server is an OS for a single computer, Azure is an OS the abstracts any number of virtualized computers in a data center. At the end of the day, it’s the same experience for our users, and a very similar experience for developers.
They even demoed an Azure SDK that added project template for a Cloud service in Visual Studio 2008. This created a new solution with two projects: a standard ASP.NET web project, and a cloud service project. The ASP.NET development experience was the same. When you’re ready to deploy, you select “Publish” from the cloud project, go through a wizard, and your code is on the Internet, running on Azure!
That’s all for now; more to come as more “surprises” are unveiled to us!