Windows Azure Solutions Cookbook
I’ve spent quite a bit of time discussing cloud computing with our customers lately and the common theme among them all has been “lean”. Windows Azure can provide some tremendous benefits to nearly every organization we speak with: operating cost reduction, faster time to market, scale on demand. It literally can’t get any leaner that this.
The challenge I’m running into is that it’s hard for architects and developers to get a big picture of the Azure platform and how all the features can be used together to build solutions. Microsoft is shipping new services on a quarterly basis and each new service is designed to solve a particular need our customers are asking for. We need a way to see these services holistically as a set of building blocks or ingredients to use in our solutions.
In this series going to offer up some architectural recipes to help visualize solutions to the common scenarios we’ve identified since Azure’s launch. These are by no means the only solutions you an solve with Azure or the only way to address these scenarios but hopefully they will provide you with a high level way to visualize your solutions on the Azure platform.
The diagram you see to the right is designed to provide a layered architectural overview of the developer and infrastructure services currently available in Windows Azure*. (Note: You can click on it to see the full size version.) This diagram will be the master template for the entire series.
Nearly every company on the internet has a web presence. Many are merely using theirs for informational purposes. More sophisticated portals allow customers to register their contact information and provide some level of interaction or customer support. But as our understanding of how consumers use the web increases, the more progressive companies are taking advantage of social web and rich media delivery to connect at a deeper level with the consumers of their goods and services.
- Cost reduction
- Global distribution
- Time to market
Here’s a sketch of how a Windows Azure Consumer Portal might be built out:
- Web Role – this will host the core of the solution. Each web role is a virtual machine hosting an application written in ASP.NET (or optionally php, or node.js). The number of web roles can be scaled up or down as needed to handle peak and non-peak traffic loads.
- Database – every modern web application needs to store data. SQL Azure databases look and act exactly like their on-premise but are fault tolerant and have data redundancy built in.
- Access Control (optional) – if identity needs to be tracked within the solution, the access control service combined with the Windows Identity Foundation provides out-of-the-box support for several social media platforms including Windows LiveID, Google, Yahoo!, Facebook. It also has a provider model to allow integration with other platforms as well.
- Caching (optional) – for sites with high traffic with lots of read-only data and lists, the distributed in-memory caching service can be used to cache and serve up static data at higher scale and speed than direct database requests. It can also be used to manage user session state.
- Blob Storage (optional) – for sites that serve up unstructured data such as documents, video, audio, device drivers, and more. The data is highly available and stored redundantly across data centers. Each entry in blob storage is provided with it’s own unique URL for direct access by the browser.
- Content Delivery Network (CDN) (optional) – for sites that service users around the globe, the CDN is an extension to blob storage that, when enabled, will automatically cache frequently accessed blobs and static site content at edge data centers around the world. The data can be delivered statically or streamed in the case of rich media content.
These links point to online Windows Azure training labs where you can learn more about the individual ingredients described above. (Note: The entire Windows Azure Training Kit can also be downloaded for offline use.)
|Windows Azure (16 labs) |
Windows Azure is an internet-scale cloud computing and services platform hosted in Microsoft data centers, which provides an operating system and a set of developer services which can be used individually or together. It gives developers the choice to build web applications; applications running on connected devices, PCs, or servers; or hybrid solutions offering the best of both worlds. New or enhanced applications can be built using existing skills with the Visual Studio development environment and the .NET Framework. With its standards-based and interoperable approach, the services platform supports multiple internet protocols, including HTTP, REST, SOAP, and plain XML
|SQL Azure (7 labs) |
Microsoft SQL Azure delivers on the Microsoft Data Platform vision of extending the SQL Server capabilities to the cloud as web-based services, enabling you to store structured, semi-structured, and unstructured data.
|Windows Azure Services (9 labs) |
As applications collaborate across organizational boundaries, ensuring secure transactions across disparate security domains is crucial but difficult to implement. Windows Azure Services provides hosted authentication and access control using powerful, secure, standards-based infrastructure.
See my Windows Azure Resource Guide for more guidance on how to get started, including links web portals, training kits, samples, and blogs related to Windows Azure.