Cloud Design Patterns
Prescriptive Architecture Guidance for Cloud Applications , By Alex Homer, John Sharp, Larry Brader, Masashi Narumoto, Trent Swanson
|Value for money||9/10|
|Did it do what it said on the box?||7/10|
Good book let down by poor high-level structure
This is a very useful introduction to key cloud concepts and how common challenges can be met. It’s also a good overview of how Microsoft technologies may fit into these solutions, but avoids becoming so Microsoft-centric that it becomes useless in other contexts. Unfortunately, however, the overall structure means that this is not a book designed for easy end to end reading. It may work better as a reference work, but that reduces what should have been its primary value.
The book starts with a good introduction and list of the patterns and supporting "guidance" sections, and is then followed first by the patterns, and then the guidance sections (useful technology primers). This is where things break down a bit, as the patterns are presented in alphabetical order, which means a somewhat random mix of topics, followed by the same again for the guidance sections. I attempted to read the book cover to cover over about a week and I found the constant jumping about between topics extremely confusing, and the constant repetition of common content very wearing. In addition by presenting the guidance material at the end it is arguably of less value as most of the concepts have already been covered in related patterns. Ultimately the differentiation between the two is very arbitrary and not helpful. For example is "throttling" really a pattern or a core concept? If "throttling" is a pattern why is "autoscaling" not described as a pattern?
The book would be about 10 times better if it were re-organised into half a dozen "topics" (for example data management, compute resource management, integration, security…), with the relevant guidance and overviews first in each topic, followed by the related patterns which could then be stripped of a lot of repetitive content, and topped off with common cross-reference and further reading material.
This is not just a book about cloud specifics. A lot of the material reflects general good practice building and integrating large systems, even for on-premise deployment, and reinforces my view that "Cloud" is just a special case of this established body of practice. As a result there’s quite a lot of overlap with older pattern books especially Enterprise Integration Patterns, which is also directly referenced. The surprisingly substantial content related to message-based integration, confirms my view that this is still the best model for loosely coupled extended portfolios, but I would have appreciated more on the overlap with service technologies.
The overlap with other standard pattern books might have been managed just by referencing them, but this would play against Microsoft’s objective of making this material readily available to all readers at low cost.
The book is spectacularly good value for money, especially as you can download it free from Microsoft if you are prepared to do a bit of juggling with document formats. That it forms part of a series also available under similar options is even better. This perpetuates Microsoft’s tradition of providing cheap, high-quality guidance to developers and sits in sharp contrast with the high costs of comparable works from not only independent publishers (which may be understandable) but other technology vendors.
The book does assume some familiarity with Windows Server concepts, for example worker roles vs machine or application instances, and doesn’t always explain these terms. A glossary or an clear reference to a suitable external source would have been useful.
At a practical level I’m pleased to see that the Kindle version works well, with internal links hyperlinked and clear diagrams, plus access to each pattern directly from the menu in the Android Kindle app. Offset against this are a few cases of poor proofreading related to problems with document format conversions, in particular with characters like apostrophes turned into garbage character strings.
Overall I found this a useful book, and I’m sure it will become a valuable reference work, but I just wish the authors and editors had paid more attention to the high-level structure for those trying to read it like a traditional book.