As Senior Developer Advisor, Christian Beauclair describes it, Azure is essentially a platform in the cloud designed for developers that consists of three components: Windows Azure, “an operating system in the cloud where developers can execute code,” SQL Azure, a SQL server database engine in the cloud that allows data hosting, and the AppFabric, a “fabric” that allows users to link their Azure cloud solution with applications that are housed on-site within the organization. For each of these offerings, developers work with familiar tools, ex. Visual Studio 2008, and as a result, are able to test on their own systems before moving to Azure, and ultimately, speed deployment in the cloud.
But how does a developer decide which piece or pieces of the Azure offering will best address the organization’s unique compute challenges? In Beauclair’s experience, it is rarely the case that a “perfect match” exists between a single platform or product and a company’s technology needs. To help clarify the selection process, Beauclair and others at Microsoft have singled out five development patterns that align with the more representative customer scenarios. The first pattern, called ‘transparence’ involves pushing data, code and application from an existing package onto the cloud to avoid investment to replace aging servers or apps. In addition to cost savings, this approach provides outsourced management services, a cost effective way to scale, as well as an opportunity for prototyping that does not involve additional hardware/software investments.
The second pattern - ‘scale in multi tenancy’ - is designed to help organizations manage web applications where it is difficult to calculate in advance what the required server load might be: in the happy event that users experience a “social media storm” that would put too much pressure on an on-premise server, in a cloud set up, new instances of the compute platform could be created very quickly – mitigating the risk associated with building the web application.