Building Applications in the Cloud: Concepts, Patterns, and Projects

Paperback (Print)
Buy New
Buy New from
Used and New from Other Sellers
Used and New from Other Sellers
from $1.99
Usually ships in 1-2 business days
(Save 95%)
Other sellers (Paperback)
  • All (9) from $1.99   
  • New (2) from $48.65   
  • Used (7) from $1.99   


Following the familiar “Design Patterns” format, expert cloud developer Chris Moyer introduces proven patterns for cloud platforms from Amazon, Google, and other providers. Moyer demonstrates these patterns at work through extensive example code and case study applications for Amazon Web Services (AWS). As you increasingly move to the cloud, you’ll constantly encounter the challenges this book solves. You’ll rely on it for years–whenever you need a cloud solution you can trust.

Read More Show Less

Product Details

  • ISBN-13: 9780321720207
  • Publisher: Addison-Wesley
  • Publication date: 5/2/2011
  • Pages: 352
  • Sales rank: 1,054,680
  • Product dimensions: 6.90 (w) x 8.90 (h) x 0.80 (d)

Meet the Author

Chris Moyer is a recent graduate of RIT, the Rochester Institute of Technology, with a bachelor’s degree in Software Engineering. Chris has more than five years experience in programming with a main emphasis on cloud computing. Much of his time has been spent working on the popular boto client library, used for communicating with Amazon Web Services. Having studied under the creator of boto, Mitch Garnaat, Chris then went on to create two web frameworks based on this client library, known as Marajo and botoweb. He has also created large scaled applications based on those frameworks.

Chris is currently Vice President of Technology for Newstex, LLC, where he manages the technological development of migrating applications to the cloud, and he also manages his own department, which is actively maintaining and developing several applications. Chris lives with his wife, Lynn, in the New York area.

Read More Show Less

Table of Contents

Preface xv

About the Author xx

Introduction 1

What Is Cloud Computing? 1

The Evolution of Cloud Computing 2

The Main Frame 3

The PC Revolution 4

The Fast Internet 5

The Cloud 6

HTML5 and Local Storage 7

The Dawn of Mobile Devices 9

Threading, Parallel Processing, and Parallel Computing 10

How Does Cloud-Based Development Differ from Other Application Development? 11

What to Avoid 13

Getting Started in the Cloud 14

Selecting a Cloud Pattern 16

Implementing a Cloud Pattern 17


Chapter 1 Fundamentals of Cloud Services 21

Origins of Cloud Computing 21

What Is a Cloud Service? 23

Compute 24

Storage 24

Connectivity 24

The Legacy Pattern 25

Just Because It’s in the Cloud Doesn’t Mean It Scales 26

Failure as a Feature 27

Consistency, Availability, and Partition Tolerance 28

Consistency 29

Availability 30

Partition Tolerance 30

Eventual Consistency 31

Summary 32

Chapter 2 Making Software a Service 33

Tools Used in This Book 34

Signing Up for Amazon Web Services 34

Installing boto 35

Setting Up the Environment 36

Testing It All 38

What Does Your Application Need? 39

Data Layer 40

Introducing the AWS Databases 41

Application Layer 47

Using Elastic Load Balancing 47

Adding Servers to the Load Balancer 49

Automatically Registering an Instance with a Load Balancer 51

HTTP and REST 53

The Header 53

The Body 57

Methods 58

Authorization Layer 62

Client Layer 64

Browser-Based Clients 65

Native Applications 66

Summary 67

Chapter 3 Cloud Service Providers 69

Amazon Web Services 69

Simple Storage Service (S3) 71

CloudFront 77

Simple Queue Service (SQS) 80

Elastic Compute Cloud (EC2) 83

Elastic Block Storage (EBS) 88

Elastic Load Balancing (ELB) 91

SimpleDB 93

Relational Database Service (RDS) 95

Simple Notification Service (SNS) 102

Virtual Private Cloud (VPC) 106

Google Cloud 108

AppEngine 108

Google Storage 111

Rackspace Cloud 112

CloudFiles 112

CloudServers 113

CloudSites 113

Summary 114


Chapter 4 Designing an Image 117

Prepackaged Images 119

Overview 119

Reasons for Usage 119

Description 120

Implementation 120

Example 122

Summary 125

Singleton Instances 127

Overview 127

Reasons for Usage 127

Description 128

Implementation 128

Example 128

Summary 130

Prototype Images 131

Overview 131

Reasons for Usage 131

Description 132

Implementation 132

Example 133

Summary 135

Chapter 5 Designing an Architecture 137

Adapters 139

Overview 139

Reasons for Usage 140

Description 140

Implementation 140

Example 141

Summary 146

Facades 147

Overview 147

Reasons for Usage 148

Description 148

Implementation 148

Example 149

Summary 152

Proxies and Balancers 153

Overview 153

Reasons for Usage 153

Description 154

Implementation 154

Example 155

Summary 158

Chapter 6 Executing Actions on Data 159

Queuing 161

Overview 161

Reasons for Usage 162

Description 162

Implementation 163

Example 163

Summary 170

Command 173

Overview 173

Reasons for Usage 173

Description 174

Implementation 174

Example 175

Summary 179

Iterator 181

Overview 181

Reasons for Usage 181

Description 182

Implementation 182

Example 183

Summary 185

Observer 187

Overview 187

Reasons for Usage 188

Description 188

Implementation 188

Example 189

Summary 191

Chapter 7 Clustering 193

The n-Tier Web Pattern 195

Overview 195

Reasons for Usage 196

Description 196

Implementation 197

Example 198

Summary 210

Semaphores and Locking 211

Overview 211

Reasons for Usage 211

Description 212

Implementation 212

Example 213

Summary 218

Map/Reduce 219

Overview 219

Reasons for Usage 220

Description 220

Implementation 220

Example 222

Summary 226


Chapter 8 A Simple Weblog 229

Storage 229

Creating a Domain 231

The User Object 232

The Post Object 234

The Comment Object 237

Application 240

A Brief Introduction to WSGI 241

The DB Handler 243

The User, Post, and Comment Handlers 248

Spam Classification 249

Presentation 253

Setting Up the HTTP Proxy 254

Posts 255

Comments 266

Deploying 272

Starting the Base Instance 272

Installing the Software 273

Installing the Application 275

Installing Apache 276

Bundling the Image 277

Creating the Proxy 279

Summary 279

Chapter 9 A Weblog Using Marajo 281

Initializing the Environment 282

handlers 283

resources 283

static 283

templates 283

Creating the Resources 284

Creating the Handlers 286

Configuring the Application 287

Creating the Templates 288

Running the Application 289

Creating Custom Templates 289

The List Template 289

The Edit Template 292

Summary 296

Glossary 297

Index 307

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star


4 Star


3 Star


2 Star


1 Star


Your Rating:

Your Name: Create a Pen Name or

Barnes & Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation


  • - By submitting a review, you grant to Barnes & and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Terms of Use.
  • - Barnes & reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)