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

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

by Christopher M. Moyer
ISBN-10:
0321720202
ISBN-13:
9780321720207
Pub. Date:
05/02/2011
Publisher:
Addison-Wesley
ISBN-10:
0321720202
ISBN-13:
9780321720207
Pub. Date:
05/02/2011
Publisher:
Addison-Wesley
Building Applications in the Cloud: Concepts, Patterns, and Projects

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

by Christopher M. Moyer
$39.99 Current price is , Original price is $39.99. You
$39.99 
  • SHIP THIS ITEM
    Temporarily Out of Stock Online
  • PICK UP IN STORE
    Check Availability at Nearby Stores
  • SHIP THIS ITEM

    Temporarily Out of Stock Online

    Please check back later for updated availability.

Temporarily Out of Stock Online


Overview

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.


Product Details

ISBN-13: 9780321720207
Publisher: Addison-Wesley
Publication date: 05/02/2011
Pages: 352
Product dimensions: 6.90(w) x 8.90(h) x 0.80(d)

About 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.

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

From the B&N Reads Blog

Customer Reviews