Prescriptive Architecture Guidance for Cloud Applications
1234567

Cloud applications have a unique set of characteristics. They run on commodity hardware, provide services to untrusted users, and deal with unpredictable workloads. These factors impose a range of problems that you, as a designer or developer, need to resolve. Your applications must be resilient so that they can recover from failures, secure to protect services from malicious attacks, and elastic in order to respond to an ever changing workload.

This guide demonstrates design patterns that can help you to solve the problems you might encounter in many different areas of cloud application development. Each pattern discusses design considerations, and explains how you can implement it using the features of Windows Azure. The patterns are grouped into categories: availability, data management, design and implementation, messaging, performance and scalability, resilience, management and monitoring, and security.

You will also see more general guidance related to these areas of concern. It explains key concepts such as data consistency and asynchronous messaging. In addition, there is useful guidance and explanation of the key considerations for designing features such as data partitioning, telemetry, and hosting in multiple datacenters.

These patterns and guidance can help you to improve the quality of applications and services you create, and make the development process more efficient. Enjoy!

Larry Brader

Larry Brader has been a Senior Tester in the patterns & practices group at Microsoft for several years. He currently works as a test lead on the various p&p projects, focusing on client and server side. In addition he is interested in producing and shipping books of test guidance based on ALM. Before working at Microsoft, Larry worked on developing highly fault tolerant military & medical systems.

John Sharp

John Sharp is a principal technologist at Content Master, part of CM Group Ltd (www.contentmaster.com) , a technical authoring and consulting company. An expert on developing applications with the Microsoft .NET Framework and Windows Azure, John has written several books, including Microsoft Visual C# Step By Step and Microsoft WCF Step By Step. Over the past 25 years, John has produced numerous training courses, white papers, and other technical material covering a range of diverse topics, including C and C++ programming, SQL Server database administration, Java enterprise application development, service-oriented architecture, and Unix programming. He has a degree in Computer Science from Imperial College, University of London.

Alex Homer

Alex Homer is a technical writer for Microsoft patterns & practices. Following a career within and outside of the IT world, he spent many years as a software and training specialist before joining Microsoft. Now he spends his days knee-deep in design patterns and architectural literature; writing guidance and sample code. His weekly ramblings on the IT industry, and life in general, can be found at http://blogs.msdn.com/alexhomer/.

Masashi Narumoto

Masashi Narumoto is passionate about the idea of the Internet as a knowledgebase. The Internet has significantly changed our lives and there's no doubt that there are still huge changes to come. His goal is to harness the ideas of many individuals into more meaningful collections so people can learn and achieve through the lens of collective intelligence. During his time on the patterns & practices team, he has worked on a series of Windows Azure Guides as a program manager, and is currently focused on Big Data. Previously, he spent 20+ years developing and consulting on a variety of solutions especially in the retail and manufacturing industry. You can find Masashi at http://blogs.msdn.com/masashi_narumoto or on Twitter @dragon119.

Trent Swanson

Trent Swanson is a software architect and one of the founders working with cloud technologies at Full Scale 180. He has worked with Windows Azure since the very beginning, helping clients around the world build, deploy, and manage cloud solutions on Windows Azure. Whether it’s moving an existing application to the cloud or building new ones, he enjoys the entire lifecycle of delivering scalable, reliable, and manageable cloud solutions.