Last Thursday, October 1st, Ben Zeinz and I attended the afternoon session of an MSDN event entitled "Real World Azure". It introduced Windows Azure ahead of its upcoming release. The morning session was geared towards IT personnel while the afternoon was for developers like us. The session was led by Dave Bost, developer evangelist at Microsoft, who also hosts The Thirsty Developer.
Dave discussed the advantages and disadvantages of hosting applications on-premises, in a data center, and in the cloud, which refers to the provision of dynamically scalable and virtualised resources as a service over the Internet. Hosting an application in the Microsoft cloud is provided on a pay-as-you-go basis (I do not have exact numbers) and eliminates the need to manage the server hardware and software yourself. The number of resources required by the application can be increased and decreased as necessary to meet varying loads. This allows the application to serve burst capacity without having to purchase enough hardware to host that capacity.
The Windows Azure platform employs Web roles, which provide the web interface, Worker roles, which perform background processes, and a queue to connect the two. Instances of these roles can be created and destroyed as usage dictates.
Applications can be developed in Visual Studio with the .NET Framework (3.5 initially) and run in a simulated cloud with Azure add-in tools. There is no debugging once the application is in the cloud; logging is used instead with Trace.Listeners enabled through the application configuration file. Developers can get a free token here that allows them limited access for creating applications and to storage in the cloud. Applications can be tested within the cloud in a staging environment, in which usage is still charged, before they are deployed to a final, configured environment. Windows Azure will work with Microsoft and non-Microsoft languages and environments, such as Eclipse, Ruby, PHP, and Python.
SQL Azure is a relational database in the cloud. The data is stored in triplicate for fail-over purposes. There are limitations compared to SQL Server, which can be detected with the SQL Azure Migration Wizard. Connecting to this database with SQL Management Studio requires a trick which is discussed here. It is billed at $9.99/month for 1GB and $99.99 for 10GB.
Joseph Paradi, Innovation Lead for Internal IT with Accenture, discussed his use of Windows Azure for his colleagues inside and outside of the corporate network. He reused existing applications written for the .NET framework with very little rewrite and just a few additions. He emphasized the issue of security and discussed his use of "Geneva" server to provide authentication and authorization. Whereas most people rely on physical security for their application, the cloud will require better models. He also mentioned the use of SSIS to synchronize data between SQL Azure and SQL Server.
I am still mulling over how Windows Azure can be used for our customers. DMC's custom solutions do not tend to need extreme amounts of server resources nor are they typically subject to temporary spikes in activity that might require large resource reallocation. However, our customer's could benefit from the hardware and data redundancy of the cloud that will keep their applications running fast and reliably. It would also free our customers and us from having to acquire and configure the server hardware. Being aware of Windows Azure will allow us to develop applications using paradigms that work in or out of the cloud.
As an aside, Chicago, DMC's hometown, is a host to one of the Windows Azure data centers. Oh, I also won a very cool MSDN t-shirt in a raffle at the end of the session!
For more information about Windows Azure, check out the Windows Azure training kit.