Dr. Dobb's is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

Channels ▼

Mike Riley

Dr. Dobb's Bloggers

Building Applications in the Cloud Book Review

May 20, 2011

As cloud computing embeds itself into the computing landscape, developers unfamiliar with the challenges and complexities of writing cloud-based applications will be ill-suited to tackle many of the scalable utility computing problems ahead. Fortunately, author Chris Moyer offers assistance in the form of Building Applications in the Cloud. Read on to find out if his book hits the mark.

Segmented into three parts, the book covers cloud concept, patterns, and projects. The first part defines and reviews the history of the cloud computer, the components that comprise it, and reviews three cloud providers (Amazon, Google, and Rackspace), spending a majority of the book with Amazon's solution. The second part consists of four chapters on designing an image, architecture, data execution on actions, and clustering strategies. Part three demonstrates two projects, a simple weblog written in raw Python (right down to managing the network protocols and HTTP headers) and a rewrite of the weblog application using a custom cloud-centric framework created by the author called Marajo.

The book is optimally written for Python programmers who need to build cloud solutions using the various Amazon Web Services (AWS). Because the author contributed to the boto Python library, the large portion of the book discusses the use of the library and the variety of hooks it providers into Amazon's S3, SQS, EC2, ELB, VPC, EMR, RDS, and SNS services, among a variety of other functions. While a few brief examples are applied using Google AppEngine and Google Storage, this is predominantly a book on using AWS with Python.

The final part of the book spent too much time on the simple weblog by focusing on the minutia of handling page requests at a hand-coded level when a number of Python web frameworks and ORMs already perform this heavy lifting. I was also dismayed to see the other opt to create and promote yet another Python web framework of his own design (Marajo) rather than contribute extensions to existing frameworks like Django or pylons. To his credit, the author did state that these were options he seriously considered, but decided to forge ahead with Marajo to take advantage of AWS without the legacy overhead of pre-existing web frameworks. However, beyond the academic analysis of how Marajo is interfacing with AWS, I don't see the framework being widely adopted since beyond the tight AWS integration, it doesn't offer the rich ecosystem and large community that other Python-based web frameworks currently have to offer.

Regardless of the promotional space given the author's contributions to the Python and AWS communities, the author succeeds in sharing his expertise on building cloud applications, and sold me enough on the concepts to download the boto library to have ready in my toolbox should a Python-based AWS project come along.

[Editor Andrew Binstock adds:

By coincidence, Mike and I were both reading this book at the same time. He's kindly let me tack on my opinion of this book. I am not nearly as enthused as Mike is.

The use of Python would normally be no problem, as Python's syntax is easy enough to map to other languages. However, the use of the author's own Python library makes it nearly impossible to do this.

I also found the text rife with annoying errors and peculiar statements. In the former category I find (for example on p. 80), the comment that a given cloud service "... generally flows first-in-last-out (FIFO)." It's now up to me to clean up after the author and find out which of these is correct: the wording or the abbreviation. Numerous (and I do mean numerous) other errors of grammar and syntax are sprinkled throughout, suggesting careless writing and uncharacteristically poor editing by Addison-Wesley.

Here's an example of peculiar statements: "Developing your Software as a Service (Saas) takes you away from the dark ages of programming and into the new age in which copyright protection, DMA, and pirating don't exist." Huh?

The following sentence combines peculiarity and confused English. He's speaking of cloud providers: "Some provide query-able databases and some that provide you a filesystem, such as a resource."

After reading such content page after page, I was convinced that the author lacked substantial understanding of his topic, save for describing his own project. Not recommended.]

Title: Building Applications in the Cloud: Concepts, Patterns and Projects
Author: Christopher M. Moyer
Publisher: Addison-Wesley Professional
ISBN: 978-0-321-71409-1
Pages: 400
Price: $28.79 (Ebook), $35.99 (Print)

Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.