Moving To The Cloud


Moving To The Cloud: Developing Apps in the New World of Cloud Computing (2011) .. Sitaram etc


Table of Contents:

About the Authors … xiii

About the Technical Editor … xv

Contributors … xvii

Foreword … xxi

Preface … xxiii

Chapter 1 Introduction … 1

Introduction … 1

Where Are We Today? … 2

Evolution of the Web … 3

The Future Evolution … 6

What Is Cloud Computing? … 8

Cloud Deployment Models … 9

Private vs. Public Clouds … 10

Business Drivers for Cloud Computing … 12

Introduction to Cloud Technologies … 13

Infrastructure as a Service … 15

Platform as a Service … 16

Software as a Service … 17

Technology Challenges … 18

Summary … 19

References … 20

Chapter 2 Infrastructure as a Service … 23

Introduction … 23

Storage as a Service: Amazon Storage … 24

Services

Amazon Simple Storage Service (S3) … 24

Amazon Simple DB … 30

Amazon Relational Database Service … 31

Compute as a Service: Amazon Elastic … 32

Compute Cloud (EC2)

Overview of Amazon EC2 … 32

Simple EC2 Example: Setting up a Web … 42

Server

Using EC2 for Pustak Portal … 47

HP CloudSystem Matrix … 53

Basic Platform Features … 54

Implementing the Pustak Portal … 55

Infrastructure

Cells-as-a-Service … 59

Introduction to Cells-as-a-Service … 60

Multi-tenancy: Supporting Multiple … 64

Authors to Host Books

Load Balancing the Author Web Site … 67

Summary … 68

References … 70

Chapter 3 Platform as a Service … 73

Introduction … 73

Windows Azure … 74

A “Hello World” Example … 75

Example: Passing a Message … 77

Azure Test and Deployment … 82

Technical Details of the Azure Platform 90

Azure Programming Model … 97

Using Azure Cloud Storage Services … 98

Handling the Cloud Challenges … 101

Designing Pustak Portal in Azure … 105

Google App Engine … 108

Getting Started … 108

Developing a Google App Engine … 108

Application

Using Persistent Storage … 111

Platform as a Service: Storage Aspects … 114

Amazon Web Services: Storage … 115

IBM SmartCloud: pureXML … 116

Apache Hadoop … 126

MapReduce … 128

Hadoop Distributed File System … 134

Mashups … 136

Yahoo! Pipes … 137

Yahoo! Query Language … 141

Summary … 148

References … 150

Chapter 4 Software as a Service … 153

Introduction … 153

CRM as a Service, Salesforce.com … 154

A Feature Walk Through … 154

Customizing Salesforce.com … 157

Force.com: A Platform for CRM as a … 158

Service

Programming on Salesforce.com and … 161

Force.com

Social Computing Services … 171

What Constitutes “Social” Computing? … 171

Case Study: Facebook … 173

Extending Open Graph … 180

Social Media Web Site: Picasa … 181

Micro-Blogging: Twitter … 185

Open Social Platform from Google … 188

Privacy Issues: OAuth … 188

Document Services: Google Docs … 193

Using Google Docs Portal … 193

Using Google Docs APIs … 195

Summary … 200

References … 202

Chapter 5 Paradigms for Developing Cloud … 205

Applications

Introduction … 205

Scalable Data Storage Techniques … 205

Example: Pustak Portal Data … 207

Scaling Storage: Partitioning … 208

NoSQL Systems: Key-Value Stores … 217

NoSQL Systems: Object Databases … 222

MapReduce Revisited … 224

A Deeper Look at the Working of … 225

MapReduce Programs

Fundamental Concepts Underlying … 229

MapReduce Paradigm

Some Algorithms Using MapReduce … 232

Rich Internet Applications … 237

Getting Started … 237

A Simple (Hello World) Example … 239

Client-Server Example; RSS Feed Reader … 242

Advanced Platform Functionality … 244

Advanced Example: Implementing Pustak … 245

Portal

Summary … 249

References … 251

Chapter 6 Addressing the Cloud Challenges … 255

Introduction … 255

Scaling Computation … 256

Scale Out versus Scale Up … 256

Amdahl’s Law … 257

Scaling Cloud Applications with a … 258

Reverse Proxy

Hybrid Cloud and Cloud Bursting: … 260

OpenNebula

Design of a Scalable Cloud Platform: … 263

Eucalyptus

ZooKeeper: A Scalable Distributed … 266

Coordination System.

Scaling Storage … 272

CAP Theorem … 272

Implementing Weak Consistency … 275

Consistency in NoSQL Systems … 280

Multi-Tenancy … 284

Multi-Tenancy Levels … 285

Tenants and Users … 286

Authentication … 287

Implementing Multi-Tenancy: Resource … 287

Sharing

Case Study: Multi-Tenancy in … 291

Salesforce.com

Multi-Tenancy and Security in Hadoop … 294

Availability … 298

Failure Detection … 298

Application Recovery … 299

Librato Availability Services … 299

Use of Web Services Model … 300

Summary … 301

References … 303

Chapter 7 Designing Cloud Security … 307

Introduction … 307

Cloud Security Requirements and Best … 308

Practices

Physical Security … 309

Virtual Security … 309

Risk Management … 311

Risk Management Concepts … 311

Risk Management Process … 312

Security Design Patterns … 313

Defense in Depth … 313

Honeypots … 313

Sandboxes … 313

Network Patterns … 314

Common Management Database … 314

Example: Security Design for a PaaS … 314

System

Security Architecture Standards … 316

SSE-CMM … 316

ISO/IEC 27001-27006 … 316

European Network and Information … 317

Security Agency (ENISA)

ITIL Security Management … 317

Legal and Regulatory Issues … 318

Third-party Issues … 319

Data Handling … 320

Litigation Related Issues … 322

Selecting a Cloud Service Provider … 323

Listing the Risks … 323

Security Criteria for Selecting a Cloud 324

Service Provider

Cloud Security Evaluation Frameworks … 325

Cloud Security Alliance … 325

Trusted Computing Group … 326

Summary … 326

References … 327

Chapter 8 Managing the Cloud … 329

Introduction … 329

Managing IaaS … 330

Management of CloudSystem Matrix … 330

EC2 Management: Amazon CloudWatch … 336

Managing PaaS … 339

Management of Windows Azure … 339

Managing SaaS … 342

Monitoring Force.com: Netcharts … 342

Monitoring Force.com: Nimsoft … 342

Other Cloud-Scale Management Systems … 344

HP Cloud Assure … 344

RightScale … 345

Compuware … 346

Summary … 347

References … 348

Chapter 9 Related Technologies … 351

Introduction … 351

Server Virtualization … 351

Hypervisor-based Virtualization … 353

Techniques for Hypervisors … 354

Hardware Support for Virtualization … 356

Two Popular Hypervisors … 361

VMware Virtualization Software … 361

XenServer Virtual Machine Monitor … 362

Storage Virtualization … 363

File Virtualization … 363

Block Virtualization … 369

Grid Computing … 374

Overview of Grid Computing … 374

A Closer Look at Grid Technologies … 375

Comparing Grid and Cloud … 378

Other Cloud-Related Technologies … 381

Distributed Computing … 381

Utility Computing … 383

Autonomic Computing … 383

Application Service Providers … 384

Summary … 384

References … 385

Chapter 10 Future Trends and Research … 389

Directions

Introduction … 389

Emerging Standards … 389

Storage Networking Industry Association 390

(SNIA)

DMTF Reference Architecture … 394

NIST … 396

IEEE … 397

Open Grid Forum (OGF) … 397

Cloud Benchmarks … 398

Cloudstone … 399

Yahoo! Cloud Serving Benchmark … 402

CloudCMP … 405

End-User Programming … 408

Visual Programming … 409

Programming by Example … 409

Open Cirrus … 415

Process of Getting onto Open Cirrus … 415

Management of Large Scale Cloud … 416

Research Tests

Node Reservation System … 418

Scalable Monitoring System … 419

Cloud Sustainability Dashboard … 419

Open Research Problems in Cloud Computing … 419

Summary … 423

References … 424

Index … 427