{"id":814,"date":"2014-01-13T16:54:00","date_gmt":"2014-01-13T16:54:00","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/webdev\/2014\/01\/13\/announcing-e-book-version-of-scott-guthries-building-real-world-cloud-apps-with-windows-azure\/"},"modified":"2014-01-13T16:54:00","modified_gmt":"2014-01-13T16:54:00","slug":"announcing-e-book-version-of-scott-guthries-building-real-world-cloud-apps-with-windows-azure","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/dotnet\/announcing-e-book-version-of-scott-guthries-building-real-world-cloud-apps-with-windows-azure\/","title":{"rendered":"Announcing E-book version of Scott Guthrie\u2019s \u201cBuilding Real-World Cloud Apps with Windows Azure\u201d"},"content":{"rendered":"<p>We have published <a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/introduction\">online<\/a> and <a href=\"http:\/\/download.microsoft.com\/download\/0\/F\/B\/0FBFAA46-2BFD-478F-8E56-7BF3C672DF9D\/Building%20Real%20World%20Cloud%20Apps%20With%20Windows%20Azure.pdf\">downloadable<\/a> e-book versions of Scott Guthrie&rsquo;s presentation titled <em>Building Real-World Cloud Apps with Windows Azure<\/em> (original video version is available here: <a href=\"https:\/\/channel9.msdn.com\/Events\/TechEd\/Australia\/2013\/AZR324\">part 1<\/a>, <a href=\"https:\/\/channel9.msdn.com\/Events\/TechEd\/Australia\/2013\/AZR325\">part 2<\/a>).<\/p>\n<p>Along with the e-book we published the code for the <a href=\"http:\/\/code.msdn.microsoft.com\/Fix-It-app-for-Building-cdd80df4\">Fix It application<\/a> that Scott developed to demonstrate many of the recommended cloud development patterns. Before publishing the code, we worked with <a href=\"http:\/\/pnp.azurewebsites.net\/en-us\/\">Microsoft Patterns and Practices<\/a> to do a thorough code review and testing. In an <a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/the-fix-it-sample-application\">Appendix to the e-book<\/a>, we document what we learned from that process, listing issues we fixed and issues we deferred to a later release.<\/p>\n<p>If you&rsquo;re curious about developing for the cloud, considering a move to the cloud, or are new to cloud development, you&rsquo;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.&nbsp;&nbsp;&nbsp;&nbsp;<\/p>\n<h2>Table of contents<\/h2>\n<ul>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/introduction\">Introduction<\/a>.<\/li>\n<ul>\n<li>Intro to the Fix It sample application<\/li>\n<li>Intro to Windows Azure Web Sites<\/li>\n<li>Creating and deploying a simple web app<\/li>\n<\/ul>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/automate-everything\">Automate everything<\/a>.\n<ul>\n<li>Use scripts to maximize efficiency and minimize errors in repetitive processes.<\/li>\n<li>Demo: Windows Azure management scripts.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/source-control\">Source control<\/a>.\n<ul>\n<li>Set up branching structure in source control to facilitate DevOps workflow.<\/li>\n<li>Demo: add scripts to source control.<\/li>\n<li>Demo: keep sensitive data out of source control.<\/li>\n<li>Demo: use Git in Visual Studio.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/continuous-integration-and-continuous-delivery\">Continuous integration and delivery<\/a>.\n<ul>\n<li>Automate build and deployment with each source control check-in.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/web-development-best-practices\">Web development best practices<\/a>.\n<ul>\n<li>Keep web tier stateless.<\/li>\n<li>Demo: scaling and auto-scaling in Windows Azure Web Sites.<\/li>\n<li>Avoid session state.<\/li>\n<li>Use a CDN.<\/li>\n<li>Use asynchronous programming model.<\/li>\n<li>Demo: async in ASP.NET MVC and Entity Framework.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/single-sign-on\">Single sign-on<\/a>.\n<ul>\n<li>Introduction to Windows Azure Active Directory.<\/li>\n<li>Demo: create an ASP.NET app that uses Windows Azure Active Directory.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/data-storage-options\">Data storage options<\/a>.\n<ul>\n<li>Types of data stores.<\/li>\n<li>How to choose the right data store.<\/li>\n<li>Demo: Windows Azure SQL Database.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/data-partitioning-strategies\">Data partitioning strategies<\/a>.\n<ul>\n<li>Partition data vertically, horizontally, or both to facilitate scaling a relational database.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/unstructured-blob-storage\">Unstructured blob storage<\/a>.\n<ul>\n<li>Store files in the cloud by using the blob service.<\/li>\n<li>Demo: using blob storage in the Fix It app.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/design-to-survive-failures\">Design to survive failures<\/a>.\n<ul>\n<li>Types of failures.<\/li>\n<li>Failure Scope.<\/li>\n<li>Understanding SLAs.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/monitoring-and-telemetry\">Monitoring and telemetry<\/a>.\n<ul>\n<li>Why you should both buy a telemetry app and write your own code to instrument your app.<\/li>\n<li>Demo: New Relic for Windows Azure<\/li>\n<li>Demo: logging code in the Fix It app.<\/li>\n<li>Demo: built-in logging support in Windows Azure.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/transient-fault-handling\">Transient fault handling<\/a>.\n<ul>\n<li>Use smart retry\/back-off logic to mitigate the effect of transient failures.<\/li>\n<li>Demo: retry\/back-off in Entity Framework 6.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/distributed-caching\">Distributed caching<\/a>.\n<ul>\n<li>Improve scalability and reduce database transaction costs by using distributed caching.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/queue-centric-work-pattern\">Queue-centric work pattern<\/a>.\n<ul>\n<li>Enable high availability and improve scalability by loosely coupling web and worker tiers.<\/li>\n<li>Demo: Windows Azure storage queues in the Fix It app.<\/li>\n<\/ul>\n<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/more-patterns-and-guidance\">More cloud app patterns and guidance<\/a>.<\/li>\n<li><a href=\"http:\/\/asp.net\/aspnet\/overview\/developing-apps-with-windows-azure\/building-real-world-cloud-apps-with-windows-azure\/the-fix-it-sample-application\">Appendix: The Fix It Sample Application<\/a><\/li>\n<ul>\n<li>Known Issues<\/li>\n<li>Best Practices<\/li>\n<li>How to download, build, run, and deploy.<\/li>\n<\/ul>\n<\/ul>\n<h2>Acknowledgments<\/h2>\n<p>The e-book was written by Tom Dykstra, Rick Anderson, and Mike Wasson. Most of the original content came from <a href=\"http:\/\/weblogs.asp.net\/scottgu\/\">Scott Guthrie<\/a>, and he in turn drew on material from Mark Simms and the Microsoft Customer Advisory Team (CAT).<\/p>\n<p>Many other colleagues at Microsoft reviewed and commented on drafts and code:<\/p>\n<ul>\n<li>Tim Ammann &#8211; Reviewed the automation chapter.<\/li>\n<li>Christopher Bennage &#8211; Reviewed and tested the Fix It code.<\/li>\n<li>Ryan Berry &#8211; Reviewed the CD\/CI chapter.<\/li>\n<li>Vittorio Bertocci &#8211; Reviewed the SSO chapter.<\/li>\n<li>Chris Clayton &#8211; Helped resolve technical problems in the PowerShell scripts.<\/li>\n<li>Conor Cunningham &#8211; Reviewed the data storage options chapter.<\/li>\n<li>Carlos Farre &#8211; Reviewed and tested the Fix It code for security issues.<\/li>\n<li>Larry Franks &#8211; Reviewed the telemetry and monitoring chapter.<\/li>\n<li>Jonathan Gao &#8211; Reviewed Hadoop and MapReduce sections of the data storage options chapter.<\/li>\n<li>Sidney Higa &#8211; Reviewed all chapters.<\/li>\n<li>Gordon Hogenson &#8211; Reviewed the source control chapter.<\/li>\n<li>Tamra Myers &#8211; Reviewed data storage options, blob, and queues chapters.<\/li>\n<li>Pranav Rastogi &#8211; Reviewed the SSO chapter.<\/li>\n<li>June Blender Rogers &#8211; Added error handling and help to the PowerShell automation scripts.<\/li>\n<li>Mani Subramanian &#8211; Reviewed all chapters and led the code review and testing process for the Fix It code.<\/li>\n<li>Shaun Tinline-Jones &#8211; Reviewed the data partitioning chapter.<\/li>\n<li>Selcin Tukarslan &#8211; Reviewed chapters that cover SQL Database and SQL Server.<\/li>\n<li>Edward Wu &#8211; Provided sample code for the SSO chapter.<\/li>\n<li>Guang Yang &#8211; Wrote the PowerShell automation scripts.<\/li>\n<\/ul>\n<p>Members of the <a href=\"https:\/\/aka.ms\/DGAC\">Microsoft Developer Guidance Advisory Council<\/a> (DGAC) also reviewed and commented on drafts:<\/p>\n<ul>\n<li>Jean-Luc Boucho<\/li>\n<li>Catalin Gheorghiu<\/li>\n<li>Wouter de Kort<\/li>\n<li>Carlos dos Santos<\/li>\n<li>Neil Mackenzie<\/li>\n<li>Dennis Persson<\/li>\n<li>Sunil Sabat<\/li>\n<li><a href=\"http:\/\/www.linkedin.com\/in\/sinyagin\">Aleksey Sinyagin<\/a><\/li>\n<li>Bill Wagner<\/li>\n<li>Michael Wood<\/li>\n<\/ul>\n<p>Other members of the DGAC reviewed and commented on the preliminary outline:<\/p>\n<ul>\n<li>Damir Arh<\/li>\n<li>Edward Bakker<\/li>\n<li>Srdjan Bozovic<\/li>\n<li>Ming Man Chan<\/li>\n<li>Gianni Rosa Gallina<\/li>\n<li>Paulo Morgado<\/li>\n<li>Jason Oliveira<\/li>\n<li>Alberto Poblacion<\/li>\n<li>Ryan Riley<\/li>\n<li>Perez Jones Tsisah<\/li>\n<li>Roger Whitehead<\/li>\n<li>Pawel Wilkosz<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>We have published online and downloadable e-book versions of Scott Guthrie&rsquo;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. [&hellip;]<\/p>\n","protected":false},"author":424,"featured_media":58792,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[197],"tags":[],"class_list":["post-814","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-aspnet"],"acf":[],"blog_post_summary":"<p>We have published online and downloadable e-book versions of Scott Guthrie&rsquo;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. [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/814","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/users\/424"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/comments?post=814"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/posts\/814\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media\/58792"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/media?parent=814"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/categories?post=814"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/dotnet\/wp-json\/wp\/v2\/tags?post=814"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}