The Windows Azure public cloud platform is one of the three pillars of Microsoft’s Cloud OS vision that will transform the traditional datacenter environment, help businesses unlock insights in data stored anywhere, enable the development of a wide range of modern business applications, and empower IT to support users who work anywhere on any device while being able to manage these devices in a secure and consistent way. The other two pillars of the Cloud OS are, of course, Windows Server 2012 R2 and Microsoft System Center 2012 R2, and Microsoft Press will soon be releasing.
General Availability (GA) of these latest versions of Windows Server and System Center is currently scheduled for October 18, 2013. In sync with these two releases, the Windows Azure platform has also been enhanced in recent months with preview releases of new services like Windows Azure BizTalk Services, Windows Azure Traffic Manager, and Windows Azure HDInsight. And in the same timeframe, services that were previously in preview like Windows Azure Web Sites and Windows Azure Mobile Services have now reached the GA milestone.
At the core of the Windows Azure platform is its ability to execute applications running in the cloud. Windows Azure currently provides four different models for doing this: Web Sites, Virtual Machines, Cloud Services, and Mobile Services. Together these four approaches comprise the compute services portion of the Windows Azure platform, and they can either be used separately or combined together to build more complex solutions that can meet specific business needs.
Windows Azure Web Sites is a scalable, secure, and flexible platform you can use for building web applications that run your business, extend the reach of your brand, and draw in new customers. It has an easy-to-use self-service portal with a gallery of the world’s most popular web solutions including .DotNetNuke, CakePHP, DasBlog, WordPress, and many others. Or you can simply create a new website from scratch and then install a tool like WebMatrix—a free, lightweight web development tool that supports the latest web technologies such as ASP.NET, PHP, HTML5, CSS3, and Node. You can use WebMatrix to create websites and publish applications for Windows Azure. And if you use Microsoft Visual Studio as a development environment, you can download and install a Windows Azure SDK so you can build applications that can take advantage of the scalable cloud computing resources offered by Windows Azure.
When you create a new website you can also have the option to create a database for storing the data for your web application. You can choose to create either a SQL database or a MySQL database for your website. You can also choose to publish your website from source control. This sets up continuous deployment from source control providers like Team Foundation Service, CodePlex, GitHub, or Bitbucket.
The running applications on machines in an Internet-accessible data center can bring plenty of advantages. Yet wherever they run, applications are built on some kind of platform. For on-premises applications, this platform usually includes an operating system, some way to store data, and perhaps more. Applications running in the cloud need a similar foundation. The goal of Microsoft’s Windows Azure is to provide this. Part of the larger Azure Services Platform,Windows Azure is a platform for running Windows applications and storing data in the cloud. The Windows Azure Compute service can run many different kinds of applications.
A primary goal of this platform, however, is to support applications that have a very large number of simultaneous users. (In fact, Microsoft has said that it will build its own SaaS applications on Windows Azure, which sets the bar high.) Reaching this goal by scaling up—running on bigger and bigger machines—isn’t possible. Instead, Windows Azure is designed to support applications that scale out, running multiple copies of the same code across many commodity servers. To allow this, a Windows Azure application can have multiple instances, each executing in its own virtual machine (VM). These VMs run 64-bit Windows Server 2008, and they’re provided by a hypervisor (based on Hyper-V) that’s been modified for use in Microsoft’s cloud. To run an application, a developer accesses the Windows Azure portal through their Web browser, signing in with a Windows Live ID. They then choose
whether to create a hosting account for running applications, a storage account for storing data, or both.
Once the developer has a hosting account, they can upload the application, specifying how many instances the application needs. Windows Azure then creates the necessary VMs and runs the application. It’s important to note that a developer can’t supply their own VM image for Windows Azure to run. Instead, the platform itself provides and maintains its own copy of Windows. Developers focus solely on creating applications that run on Windows Azure.
A developer can use only Web role instances, only Worker role instances, or a combination of the two to create a Windows Azure application. If the application’s load increases, they can use the Windows Azure portal to request more Web role instances, more Worker role instances, or more of both for his application. If the load decreases, he can reduce the number of running instances. To shut down the application completely, the developer can shut down all of the application’s Web role and Worker role instances.
The VMs that run both Web role and Worker role instances also run a Windows Azure agent, as shows. This agent exposes a relatively simple API that lets an instance interact with the Windows Azure fabric. For example, an instance can use the agent to write to a Windows Azure-maintained log, send alerts to its owner via the Windows Azure fabric, and do a few more things.
To create Windows Azure applications, a developer uses the same languages and tools as for any Windows application. They might write a Web role using ASP.NET and Visual Basic, for example, or with WCF and C#. Similarly, they might create a Worker role in one of these .NET languages or directly in C++without the .NET Framework. And while Windows Azure provides add-ins for Visual Studio, using this development environment isn’t required.