Building Applications in the Cloud: Concepts, Patterns, and Projects by Christopher M. Moyer

Price: £23.99

Discount: 17%
RRP: 28.99

More Details

Description

Want to maximize the value of your cloud applications--and avoid unnecessary problems?

Don't just migrate to the cloud: Use cloud architectural patterns that deliver superior performance, scalability, and availability. Building Applications in the Cloud will help you do just that--whether you're building new solutions or adapting existing code.

Following the familiar Design Patterns format, expert cloud developer Chris Moyer introduces proven patterns for cloud platforms. Moyer demonstrates these patterns at work through extensive example code and case study applications for Python and Amazon Web Services (AWS).

Coverage includes

* Mastering the core principles that shape successful cloud solutions

* Properly constructing Software as a Service (SaaS)

* Understanding the services that cloud service providers offer

* Designing an image that gives your cloud application a strong foundation

* Choosing the best patterns for interacting with external systems

* Efficiently executing code segments against your data

* Taking full advantage of clustered multiserver deployments

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
Published

12 May 2011

Publisher

ADDISON-WESLEY

ISBN

9780321720207

Pages

326

Static Book Details Index Page - Click Here to go to Computer Manuals Website