We have published online and downloadable e-book versions of Scott Guthrie’s presentation titled Building Real-World Cloud Apps with Windows Azure (original video version is available here: part 1, part 2).
Along with the e-book we published the code for the Fix It application that Scott developed to demonstrate many of the recommended cloud development patterns. Before publishing the code, we worked with Microsoft Patterns and Practices to do a thorough code review and testing. In an Appendix to the e-book, we document what we learned from that process, listing issues we fixed and issues we deferred to a later release.
If you’re curious about developing for the cloud, considering a move to the cloud, or are new to cloud development, you’ll find in this e-book a concise overview of the most important concepts and practices you need to know. The concepts are illustrated with concrete examples, and each chapter links to other resources for more in-depth information.
Table of contents
- Introduction.
- Intro to the Fix It sample application
- Intro to Windows Azure Web Sites
- Creating and deploying a simple web app
- Automate everything.
- Use scripts to maximize efficiency and minimize errors in repetitive processes.
- Demo: Windows Azure management scripts.
- Source control.
- Set up branching structure in source control to facilitate DevOps workflow.
- Demo: add scripts to source control.
- Demo: keep sensitive data out of source control.
- Demo: use Git in Visual Studio.
- Continuous integration and delivery.
- Automate build and deployment with each source control check-in.
- Web development best practices.
- Keep web tier stateless.
- Demo: scaling and auto-scaling in Windows Azure Web Sites.
- Avoid session state.
- Use a CDN.
- Use asynchronous programming model.
- Demo: async in ASP.NET MVC and Entity Framework.
- Single sign-on.
- Introduction to Windows Azure Active Directory.
- Demo: create an ASP.NET app that uses Windows Azure Active Directory.
- Data storage options.
- Types of data stores.
- How to choose the right data store.
- Demo: Windows Azure SQL Database.
- Data partitioning strategies.
- Partition data vertically, horizontally, or both to facilitate scaling a relational database.
- Unstructured blob storage.
- Store files in the cloud by using the blob service.
- Demo: using blob storage in the Fix It app.
- Design to survive failures.
- Types of failures.
- Failure Scope.
- Understanding SLAs.
- Monitoring and telemetry.
- Why you should both buy a telemetry app and write your own code to instrument your app.
- Demo: New Relic for Windows Azure
- Demo: logging code in the Fix It app.
- Demo: built-in logging support in Windows Azure.
- Transient fault handling.
- Use smart retry/back-off logic to mitigate the effect of transient failures.
- Demo: retry/back-off in Entity Framework 6.
- Distributed caching.
- Improve scalability and reduce database transaction costs by using distributed caching.
- Queue-centric work pattern.
- Enable high availability and improve scalability by loosely coupling web and worker tiers.
- Demo: Windows Azure storage queues in the Fix It app.
- More cloud app patterns and guidance.
- Appendix: The Fix It Sample Application
- Known Issues
- Best Practices
- How to download, build, run, and deploy.
Acknowledgments
The e-book was written by Tom Dykstra, Rick Anderson, and Mike Wasson. Most of the original content came from Scott Guthrie, and he in turn drew on material from Mark Simms and the Microsoft Customer Advisory Team (CAT).
Many other colleagues at Microsoft reviewed and commented on drafts and code:
- Tim Ammann - Reviewed the automation chapter.
- Christopher Bennage - Reviewed and tested the Fix It code.
- Ryan Berry - Reviewed the CD/CI chapter.
- Vittorio Bertocci - Reviewed the SSO chapter.
- Chris Clayton - Helped resolve technical problems in the PowerShell scripts.
- Conor Cunningham - Reviewed the data storage options chapter.
- Carlos Farre - Reviewed and tested the Fix It code for security issues.
- Larry Franks - Reviewed the telemetry and monitoring chapter.
- Jonathan Gao - Reviewed Hadoop and MapReduce sections of the data storage options chapter.
- Sidney Higa - Reviewed all chapters.
- Gordon Hogenson - Reviewed the source control chapter.
- Tamra Myers - Reviewed data storage options, blob, and queues chapters.
- Pranav Rastogi - Reviewed the SSO chapter.
- June Blender Rogers - Added error handling and help to the PowerShell automation scripts.
- Mani Subramanian - Reviewed all chapters and led the code review and testing process for the Fix It code.
- Shaun Tinline-Jones - Reviewed the data partitioning chapter.
- Selcin Tukarslan - Reviewed chapters that cover SQL Database and SQL Server.
- Edward Wu - Provided sample code for the SSO chapter.
- Guang Yang - Wrote the PowerShell automation scripts.
Members of the Microsoft Developer Guidance Advisory Council (DGAC) also reviewed and commented on drafts:
- Jean-Luc Boucho
- Catalin Gheorghiu
- Wouter de Kort
- Carlos dos Santos
- Neil Mackenzie
- Dennis Persson
- Sunil Sabat
- Aleksey Sinyagin
- Bill Wagner
- Michael Wood
Other members of the DGAC reviewed and commented on the preliminary outline:
- Damir Arh
- Edward Bakker
- Srdjan Bozovic
- Ming Man Chan
- Gianni Rosa Gallina
- Paulo Morgado
- Jason Oliveira
- Alberto Poblacion
- Ryan Riley
- Perez Jones Tsisah
- Roger Whitehead
- Pawel Wilkosz