Cloud Architecture Patterns book has been released!!
[07-Jan-2013] Update: Added mention of iTunes/iBook version and Amazon UK.
[28-Dec-2012] Update: Added link to free Sample Chapter.
[21-Dec-2012] Update: Added links to the online reviews I was able to find – these are listed under the heading Book Reviews found on the Web.
I am thrilled that my Cloud Architecture Patterns book is available for immediate order from online booksellers such as these:
- Amazon USA (paper) or Amazon (USA) Kindle store (ebook)
- Amazon (UK) (paper) or Amazon (UK) Kindle store (ebook)
- O’Reilly (USA) (paper or ebook)
- Barnes & Noble (USA) (paper) and Nook (USA) (ebook)
- Apple iTunes (Books) (“This book is available for download on your iPhone, iPad, or iPod touch with iBooks and on your computer with iTunes. Books must be read on an iOS device.”)
- You can also access it through Safari Books Online (this is also where you can access Chapter 4: Auto-Scaling Pattern for FREE)
This is a 182-page book written for technologists interested in architecture and/or the cloud. There are 15 content chapters (4 primers and 11 patterns) and an appendix.
Basically, the book describes a series of important architecture patterns for building modern cloud applications, including the problems they solve and how they work. Each of the patterns has its own chapter. For each pattern, there is additional discussion of how one would realize that pattern using Windows Azure cloud platform services. A common sample application used throughout the book – the Page of Photos (or PoP for short) application. I will publish the source code to PoP (gradually – still working on it) since it is a great sample application that is simple to understand but can benefit from all of the book’s patterns. The book covers a total of eleven patterns, plus four primer chapters which clarify background concepts and terminology useful for understanding the patterns that follow. Note that the patterns are architectural – so you will learn when to use and and which cloud platform services will help you (and what you application needs to do) – but few code-level details are provided, as the focus of the book is architectural.
Book Reviews found on the Web
I am extremely grateful to those who have taken the time to review my book! These are reviews I found on the web and have listed them in the order they were published. A link back to the source and a 2-3 sentence excerpt are provided.
- First public review I saw on Internet by Eric on DiscoPosse Blog (@discoposse) – first two sentences:
“This book is a great read for any Systems Developer, Systems Admin and technology lover alike. Bill Wilder has presented a great level of detail which could be regarded as 101 to 301 all in the same guide.” 17-Oct-2012
- Review by DaTopDog (@datopdog) – final three sentences:
“The patterns are explained and real world scenarios presented. Great theoretical presentation of the concepts and ideas. I totally recommend this to anyone involved in Information technology.” 07-Nov-2012
- Review by M Sheik Uduman Ali from Aditi (@udooz)- first two sentences:
“Bill Wilder who is a MVP in Windows Azure has taken nice initiative in the cloud computing space with cloud architecture patterns. Good collections.” 14-Nov-2012
- First review on Amazon.com (5/5 stars) – first two sentences:
“This book is a wonderful explanation of the fundamental principles that should drive architectures for Cloud-Native solutions. I enjoyed its structure and that patterns are presented in a platform agnostic way focused on pure architectural concerns.” 14-Nov-2012
Though not actually a review, I was quite honored to have seen my book linked from the blog of such a luminary as Scott Guthrie (see example of page from his blog wayback machine on archive.org). When I originally saw this from my own visits to the blog I assumed it was targeted advertising, but turns out it wasn’t – the books listed were deliberately selected.
(This short description text is similar to the text appearing on bookstore web sites.)
The patterns are organized into four major topics, such as scalability and handling failure, and primer chapters provide background on each topic. With the information in this book, you’ll be able to make informed decisions for designing effective cloud-native applications, where cloud-native applications maximize the value of cloud services while also paying attention to user experience and operational efficiency.
Learn about architectural patterns for:
- Scalability. Understand the advantages of horizontal scaling. After a primer on Scalability, the Horizontally Scaling Compute, Queue-Centric Workflow, and Auto-Scaling patterns are covered.
- Big data. Learn how to handle large amounts of data across a distributed system. Eventual consistency is explained, along with the MapReduce and Database Sharding patterns. Both patterns deal with horizontally scalable solutions for dealing with large amounts of data.
- Handling failure. Understand how multitenant cloud services and commodity hardware influence your applications. Following a primer on Multitenancy and Commodity Hardware, the Busy Signal and Node Failure patterns are covered.
- Distributed users. Learn how to overcome delays due to network latency when building applications for a geographically distributed user base. Following a primer on Network Latency, the Colocate, Valet Key, CDN, and Multisite Deployment patterns are covered.
(This chapter contents text is excerpted from the Preface in the book, except for the note about Chapter 4 being available for free viewing.)
- Scalability Primer – This primer explains scalability with an emphasis on the key differences between vertical and horizontal scaling.
- Horizontally Scaling Compute Pattern – This fundamental pattern focuses on horizontally scaling compute nodes.
- Queue-Centric Workflow Pattern – This essential pattern for loose coupling focuses on asynchronous delivery of command requests sent from the user interface to a processing service. This pattern is a subset of the CQRS pattern.
- Auto-Scaling Pattern – This essential pattern for automating operations makes horizontal scaling more practical and cost-efficient. This chapter can also be viewed for free.
- Eventual Consistency Primer – This primer introduces eventual consistency and explains some ways to use it.
- MapReduce Pattern – This pattern focuses on applying the MapReduce data processing pattern. Hadoop on Azure is used in the example.
- Database Sharding Pattern – This advanced pattern focuses on horizontally scaling data through sharding, a technique for horizontally scaling data.
- Multitenancy and Commodity Hardware Primer – This primer introduces multitenancy and commodity hardware and explains why they are used by cloud platforms.
- Busy Signal Pattern – This pattern focuses on how an application should respond when a cloud service responds to a programmatic request with a busy signal rather than success.
- Node Failure Pattern – This pattern focuses on how an application should respond when the compute node on which it is running shuts down or fails.
- Network Latency Primer – This basic primer explains network latency and why delays due to network latency matter.
- Colocate Pattern – This basic pattern focuses on avoiding unnecessary network latency.
- Valet Key Pattern – This pattern focuses on efficiently using cloud storage services with untrusted clients.
- CDN Pattern – This pattern focuses on reducing network latency for commonly accessed files through globally distributed edge caching.
- Multisite Deployment Pattern – This advanced pattern focuses on deploying a single application to more than one data center.
- Appendix A – The appendix contains a list of references for readers interested in additional material related to the primers and patterns presented in the book.
A sample chapter is available on Safari Books Online without an account. This is chapter Chapter 4: Auto-Scaling Pattern.
Comments and Feedback from You?
Feel free to share comments directly on this page, find me on twitter (@codingoutloud), or email me (codingoutloud is also my gmail.com handle). Also, since the book was published by O’Reilly and they’ve set up a page for the book with sections for errata.
This page (the one you are reading) can be reached via www.cloudarchitecturepatterns.com (or http://bit.ly/azurecloud for short).
A sample chapter would have been nice.
@porcovolante – good point. Once O’Reilly has that ready, I will include it.
@porcovolante – I have updated the page to include a link to a sample chapter (Chapter 4: Auto-Scale Pattern) which is offered for free (w/o an account) through Safari Books Online. The link is here: http://my.safaribooksonline.com/9781449357979/id599018
I’m gonna read this. I need to figure out what that Azure stuff is all about.
@ericgol – I’m honored. I think you may know a thing or two about Azure. (Eric I was in your advanced Azure architecture class back in 2011 or so. Was awesome.) 🙂
Bill – read the book cover to cover. Very helpful. I’m trying to find the sample code, but the site seems like it’s down. Can I download the code anywhere (just to look through it)?
@dtjensen – sorry – have not been watching this page (it gets so many spam comments, I periodically I work my way through several pages of spam comments then give up until next time). Not intending to ignore you. I have been slowing working on a redo of the sample. I will explain why in a blog post when I release it – hopefully this summer. Again, sorry for slow response, not intending to ignore anyone.
ditto to dtjensen. Bill, love the book. I picked up a copy from the O’Reilly store after seeing you speak at the CT DNUG meeting and am really enjoying it, but would love either sample code, or in lieu of that, the site address as it seems to be down currently (and since at least 2/27/2013)
@therong – Sorry for slow response; not intending to ignore anyone. I will update this page when I have a new drop of sample code later this summer. Hope it is worth the wait.
Pingback: Thoughts on Queue Centric Workflow Design - Jason Short - Site Home - MSDN Blogs
I figured I will add my request as well for the samples. Where can I get ahold of them?
@shane – Sorry for delay in response and delay in re-posting code. Hopefully not too much longer – this summer.
Hi, find the book very informative but the link ‘http://http://www.pageofphotos.com/’ not working. 😦
@GopalChettri – Sorry for delay in response; not intending to ignore you. I intend to update this page when I have a new drop of sample code “soon” – a little later this summer. At that time the pageofphotos.com link will work again.
I bought the book today and I am already at the half way mark. It is well written and keeps the reader engaged. I went to download the sample code in github.com but they aren’t available yet. When do you think they will be ready. It will be really helpful to see some working samples.
Really well written! I am hooked. It is also very pertinent to what I am doing at work. Please make the sample code available. Can’t wait to see what I have learnt in action.
l love the book!
That said, summer is over and the sample code is still nowhere to be found.
The book seems to have been written with the assumption that the reader would be able to dive into the code samples for concrete (albeit understandably didactic) examples of the patterns touched upon in the book. I bought the book with that in mind and, at least for me, the absence of the code is a significant let down.
I am looking forward to your making the sample code available again (it would be great if you could update the ETA).
Bill Ive been reading in your book and in other places about the use of queues between the web and worker to increase scalability. Im interested to know what techniques are available to handle the reporting of the standard optimistic concurrency failure scenario – ie “This record has been updated since you retrieved it. Please re-open it” ? Sending an email would not be an appropriate response in most business application editing actions. Do you know of any discussions/examples of using these cloud patterns that centre around a business application where many data administration tasks need to be considered ?
the book is very interesting. I would love to download the code, is it ready?
Can you please share the code associated with the book? Thanks!