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