Author: Christopher M. Moyer
Publisher: Addison Wesley, 2011
Aimed at: Developers
Pros: Useful insights into problems faced when developing for the cloud
Cons: Jumps levels from complex to simple; very Amazon-centric
Reviewed by: Kay Ewbank
The book isn’t a complete guide that teaches you how to write a cloud app; instead, the author describes is as a collection of answers to specific questions raised by the problems you face while creating cloud apps. I’m not sure this is particularly accurate description of the contents, but you could learn quite a lot about developing cloud applications from reading it.
One of the things you notice reading the book is that it goes through changes in the level of complexity. You get a section or two that covers matters at a very simple level, far simpler than someone developing for the cloud would need, then suddenly you hit another section that is written in a much more detailed and technical way, full of cloud technical terms, long sentences and practical asides. I suspect the reason behind this is that the book is based on a collection of blog posts by the author as he was getting to grips with writing for the cloud himself, with the topics aimed at fairly with-it developers who can cope with technicalities. When the blog posts were expanded and glued together as a book, presumably introductions to the topics were added to cover some of the basic stuff, with a lower complexity level so as to be understandable by beginners. This shouldn’t be a problem so long as you are a with-it developer who’s already starting developing for the cloud, but I can imagine it flummoxing less experienced readers.
The book is nearly all written on the basis you’ll be developing for Amazon Web Services; there’s a couple of pages on Google Cloud and RackSpace Cloud, nothing on Microsoft Azure or other cloud service providers. The examples in the book are written on the assumption you’re using Python and the boto Python library (which the author helped develop).
In terms of material, the book kicks off with a short introduction in case you’ve not heard of cloud computing, then the main part of the book starts with a look at the concepts of developing applications for the cloud. You’re introduced to compute, storage and connectivity as the elements of a cloud service, and the conflicting demands of consistency, availability and partition tolerance. You’re guided through what you need to use Amazon Web Services, the Amazon Web Services databases, and how to make use of HTTP and REST.
Part Two of the book is titled Patterns. It starts with the basic patterns you use to build an image for the rest of your application, then goes on to look at interacting with systems from providers other than your cloud provider. There’s a chapter on executing actions on data, and another on clustering to illustrate the concepts of multi-server deployments. Part three of the book looks at applications using the patterns of part two. There’s a simple weblog and a weblog using the Marajo Web framework.
Overall, there is useful stuff here if you’re encountering cloud development for the first time, but I think you’d need other books to give you a complete picture.