This content is part of the Essential Guide: An enterprise guide to Microsoft Azure cloud

Essential Guide

Browse Sections
Manage Learn to apply best practices and optimize your operations.

Five things every cloud developer needs to know about Windows Azure

Cloud developers who use Windows Azure must keep in mind these best practices throughout development and deployment, and the entire lifecycle.

ld Forewarned is forearmed: Whether you're a self-employed consultant or a cloud developer of in-house systems, clients and employers expect Windows Azure Backup professionals to implement best practices throughout the entire development and deployment stages as well as the scale-up application lifecycle.

Though Windows Azure began life as a Windows Platform as a Cloud Service (WPaaCS), scaling up conventional .NET apps by deploying them to Microsoft's cloud environment isn't simply uploading and running their executable files. Developers must anticipate the architecture and code changes required for migrating from the traditional client/server model on the corporate LAN to mobile devices and PCs connected by the Internet to Web apps and cloud data stores.

Here are five best practices, along with links to Microsoft's own resources, for developing reliable, secure and efficient applications running on Windows Azure in cloud-only and hybrid IT configurations:

1. Provide system resilience. Decompose applications into cooperative collections of redundant micro-services, each of which delivers the simplest feature or function possible, to minimize the effects of inevitable service outages. Automate workarounds for failed features that aren't critical to business processes.

2. Guarantee app availability and data durability in the event of disaster. Prepare the IT environment for disasters, whether natural or man-made, by geo-replicating micro-services and their data sources across data centers in geographically distant locations. Windows Azure replicates blob and table data between two data center locations within the same region at no additional cost. Examples are North Central and South Central United States, North and West Europe, or East and Southeast Asia.

3. Adopt optimal coding practices for cloud-based apps. To ensure optimal practices, use the latest Windows Azure Training Kit (WATK). Microsoft's WATK helps developers improve user experience (UX) and follow the company's best practices for coding cloud-based apps. Open the hands-on labs' source code in Visual Studio and deploy the samples to your Windows Azure development instances. Then, run the cloud applications to evaluate the UX -- especially with mobile devices. The August 2013 WATK includes new labs for autoscaling applications on Windows Azure Web Sites, creating Windows Azure Mobile Services and using Active Directory for authentication.

4. Secure your Windows Azure apps and data. Management will require verification of Windows Azure's conformance to industry standards -- such as ISO/IEC 27001:2005 Audit and Certification, SOC 1 and SOC 2 SSAE 16/ISAE 3402 Attestations, and the Cloud Security Alliance Cloud Controls Matrix -- as described in the Windows Azure Trust Center's compliance document. The Trust Center's Windows Azure HIPAA Implementation Guidance also describes how to conform to HIPAA and the HITECH act requirements for securing personal health information (PHI) against data breaches. A HIPAA Business Associates Agreement (BAA) for storing and/or processing PHI in Windows Azure requires customers to have a Volume Licensing/Enterprise Agreement or (EA) or Windows Azure -only EA enrollment with Microsoft in place. Windows Azure EA pricing and terms will become considerably less onerous when enterprise discounts and payment in arrears for unplanned resource usage growth go into effect on November 1.

Windows Azure Storage Explorer
Figure 1. The Windows Azure Storage Explorer v5, preview 1 of June 2012, which provides a new GUI and supports logging and monitoring, is a free download from the CodePlex site.

5. Take advantage of free storage and service management tools. These tools reduce or eliminate the need to write custom .NET code to add, move and delete content in Windows Azure blob storage and let you inspect the state of messages in Service Bus queues without creating a dedicated app. These tools are available from CodePlex, such as the Windows Azure Blob Transfer Utility, Windows Azure SQL Database and Storage Backup Role, Windows Azure Storage Explorer (see Figure 1) and the recently updated Service Bus Explorer (see Figure 2) for Windows Azure and Windows Server.

Service Bus Explorer 2.1
Figure 2. Paolo Salvatori's Service Bus Explorer 2.1 of September 2013 supports Service Bus 1.1 for Windows Server and Notification Hubs and displays the MessageCountDetails properties (highlighted above) of QueueDescription, TopicDescription and SubscriptionDescription objects.

While developers should follow the best practices listed here, it's also helpful to keep copies on hand of the following book-length resources from Microsoft's patterns and practices group for reference when developing in a Windows Azure cloud:

About the author:
Roger Jennings is a data-oriented .NET developer and writer, a Windows Azure MVP, principal consultant at OakLeaf Systems and curator of the OakLeaf SystemsInc. and Android MiniPCs and TVBoxes blogs. He's also the author of more than 30 books on the Windows Azure platform, Microsoft operating systems (Windows NT and 2000 Server), databases (SQL Azure, SQL Server and Access), .NET data access, Web services and InfoPath 2003. More than 1.25 million English-language copies of his books are in print, and they have been translated into more than 20 languages.

Next Steps

Stopping malware through the Microsoft Office Trust Center settings

Dig Deeper on Cloud application development