Cloud Application Architectures: Building Applications and Infrastructure in the Cloud
George Reese
O’Reilly Media, Inc., 204 pp.
ISBN 978-0596156367
Reviewed by Brandon Ching
Cloud computing has thrust itself into the technological spotlight as a powerful yet somewhat enigmatic solution for a scalable and cost effective alternative IT infrastructure. The opportunities offered by cloud computing hint at the potential for seemingly limitless extensibility in both storage and processing power. Yet despite the promises of cloud computing, application and infrastructure development in the cloud has its own challenges and inherent limitations.
George Reese in Cloud Application Architectures: Building Applications and Infrastructures in the Cloud, has put together a well written and authoritative text that seeks to guide application developers in shifting from traditional development infrastructure platforms to developing applications in the cloud. Through seven chapters, Reese guides you through all the major considerations when making the switch. The book can be divided into two major sections: before moving into the cloud and after moving into the cloud. Chapters one through three focus on what you need to know about cloud computing; what it is, the providers and services, and the various considerations to be made before making the leap. Chapters four through seven focus on actual implementation and development within the cloud including; system and application design, security, and risk management.
Beginning with an introduction to cloud concepts, Reese lays out exactly what cloud computing is and outlines the differences, advantages, and potential downfalls of traditional IT infrastructure vs. cloud operations. A brief overview of some mainstream cloud service providers is also presented with introductions to different features of cloud offerings (virtual machine instances, data storage, database services, etc).
Reese’s experience in cloud computing has been centered on the services offered by Amazon and thus he devotes the entire second chapter to Amazon’s Simple Storage Service (S3) and Elastic Cloud Compute (EC2). I found this chapter to be a superb introduction to Amazon’s most popular cloud offerings. Not only are the fundamental concepts of each service covered but Reese also walks you through a basic setup of an EC2 machine instance and an S3 transaction; code and all. As a developer new to the cloud, this was incredibly helpful in giving myself a more complete understanding of the “guts” of cloud computing.
In chapter four, Reese addresses some of the business considerations central to IT managers contemplating an architecture in the cloud. While chapter coverage includes an availability analysis, reliability, performance, and a few brief introductions to topics covered in more detail later in the book, the jewel of this chapter is Reese’s cost analysis. Here, he introduces the cloud cost model of pay-per-use and runs through a detailed sample ROI comparing an internal vs. cloud infrastructure model; a great starting point for IT managers investigating the cloud option.
Once you have decided to make the leap into the cloud is where the real fun begins. In chapter four, Reese begins coverage of system and application specific topics including system state, privacy concerns, database and machine image design. There are a number of technical considerations when designing an architecture for use in the cloud and Reese addresses a number of these from a high level. He pays particular attention to database management dealing with the questions of replication vs. clustering, backup methodology, and primary key management; all very important for multi-system applications.
Next, we delve into security in the cloud. According to Reese, “If the cloud forces you to completely reexamine your thinking about any particular part of your infrastructure, it’s most likely to be security” (p. 99). This is certainly true if your organization must adhere to any legal requirements like HIPAA or SOX, or if you store credit card information locally. However, Reese again does a great job of covering the concepts particular to cloud computing including data control and network and host security. While many of the suggestions are similar to what one might normally encounter in a traditional infrastructure, due coverage is given to cloud specific concerns like remote information storage and, in his view, the most important practice of host intrusion detection.
Disaster recovery should be apart of all IT infrastructures and cloud architectures are no different. Here, Reese seems to rely more on the existing literature of disaster recovery principles like recovery point/time objectives. Given that the creation and failure/destruction of machine instances in the cloud are a fairly common occurrence, disaster planning and recovery are by nature a little easier to deal with. Thus, Reese focuses this chapter primarily on the integration of persistent cloud storage services as a means of enabling disaster recovery.
Finally, Reese pays tribute to the most obvious benefit of cloud computing; scalability. This concluding chapter has a nice balance of core scalability principles having to do with expected demand and load issues, and closes with a cloud centric methodology to scaling.
George Reese has put together an exceptional overview of developing applications and infrastructures in the cloud. His professional experience and understanding of the topic is obvious in the way he writes. While the book is certainly centered on Amazon’s cloud services, I feel that the central concepts are still quite applicable to cloud computing in general. Cloud Application Architectures is a must for IT managers and developers alike, as the topics covered span both the business and technical facets of moving into the cloud. As usual, O’Reilly has done it again by publishing a well written and informative title that no doubt will prove invaluable to its readers.
Tags: Amazon, Book Review, cloud computing, EC2, infrastructure, Reese, S3

[...] –Brandon Ching, at Restrained Freedom. Read Brandon’s full review. [...]