Product Cover Image

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

By Christopher M. Moyer

Published by Addison-Wesley Professional

Published Date: Apr 18, 2011

Description

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.

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

 

PART I:  CONCEPTS

 

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

 

PART II:  PATTERNS

 

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

 

PART III: PROJECTS

 

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

 

Purchase Info

ISBN-10: 0-13-285240-3

ISBN-13: 978-0-13-285240-1

Format: eBook (Watermarked)?

This eBook includes the following formats, accessible from your Account page after purchase:

ePubEPUBThe open industry format known for its reflowable content and usability on supported mobile devices.

MOBIMOBIThe eBook format compatible with the Amazon Kindle and Amazon Kindle applications.

Adobe ReaderPDFThe popular standard, used most often with the free Adobe® Reader® software.

This eBook requires no passwords or activation to read. We customize your eBook by discretely watermarking it with your name, making it uniquely yours.

Includes EPUB, MOBI, and PDF

$31.99

Add to Cart