Author: Christopher M. Moyer
Aimed at: Potential users of Amazon Web Services
Pros: Some interesting sections on web applications
Cons: At times too general, at others too specific
Reviewed by: Alex Armstrong
This book's subtitle "Concepts, Patterns and Projects" should be extended to make specific mention of Python and Amazon Web Services.
This is a strange mixture of a book. If anything it seems to be three books trying to fit together in a way that will satisfy the publisher.
The book starts off with a look at the generalities of cloud computing - the sort of thing that management like to know. If you don't already know the stuff in the introduction then you probably shouldn't be reading this book. The same probably holds for Chapter 1 which provides more detail to the management view and some acronym definitions. So far if you are expecting technicalities what you have is waffle.
Chapter 2 makes the case for software as a service and initially it is just as waffly as the first part of the book. But then the author reveals a new angle - the boto Python library which is his own creation. So instead of a simple introduction to Amazon Web Services, we have an introduction to AWS and how to use boto. Next we move on to very general topics - load balancing and a very strange and very detailed discussion of Rest and HTTP protocols.
Chapter 3 is about service providers and again we have an introduction to AWS but in much more detail and going over each of the services it provides. The chapter closes with very brief looks at the Google AppEngine and the Rackspace Cloud. As you can guess the balance is very biased toward AWS.
Part II of the book is called "Patterns" which roughly means that it is going to tackle how to design a cloud system. Chapter 4 is about designing an image and, yes, it is about AWS. Then there follows a categorisation of how you might use these images - singleton instance and prototype image, This is quite a good idea, but it stops too soon. There are lots of use cases that could be covered and this would be really helpful. Unfortunately the list stops with just two.
Chapter 5 moves on to designing an architecture and again we have a categorisation of how you an set things up following the traditional GoF patterns with some extras like proxies and balancers. Chapter 6 is about data and again we have more patterns, queuing, command, iterator and later map/reduce.
At the end of this section you have a lot of interesting things to think about, but it is all very abstract. What it doesn't do is tackle any standard systems such as a simple website. Part III provides two examples of a weblog, i.e. a blog, using first boto and then marajo, another fairly specialist Python framework created by the author.
So the three strands of the book are an overview for the non-programmer; some deep general ideas about patterns; and some very specific examples of how to use the frameworks created by the author. There are lots of sections of the book that I enjoyed reading and it made me think about the overall structure of a web application. What it didn't do was equip me to actually do anything. There isn't enough information in this book to make use of AWS for anything real and there isn't enough to even introduce the boto and marajo Python frameworks. As such the book is unlikely to please any particular reader. It also isn't a general introduction to the cloud as, while it focuses on AWS, it doesn't it take on the task of explaining AWS in depth.
For these reasons I can't recommend this title unless you have a very strange set of requirements for a book on the idea of building cloud systems. It needs either to be more focused or more general.