Chapter
A Running Example: Pustak Portal
Web 2.0 and Social Networking
Private vs. Public Clouds
Business Drivers for Cloud Computing
Introduction to Cloud Technologies
Infrastructure as a Service
2 Infrastructure as a Service
Storage as a Service: Amazon Storage Services
Amazon Simple Storage Service (S3)
Organizing Data In S3: Buckets, Objects and Keys
Large Objects and Multi-part Uploads
Data Organization and Access
SDB Availability and Administration
Amazon Relational Database Service
Compute as a Service: Amazon Elastic Compute Cloud (EC2)
Accessing EC2 Using AWS Console
Accessing EC2 Using Command Line Tools
EC2 Computational Resources
Simple EC2 Example: Setting up a Web Server
Creating the Example EC2 Instance
Allowing External Access to the Web Server
Using EC2 for Pustak Portal
Document Store for the Article Portal
Storing the Article Metadata
EC2 Example: Auto-Scaling the Pustak Portal
Auto-Scaling using AWS Beanstalk
Application-controlled Auto-Scaling
Implementing the Pustak Portal Infrastructure
Template Design for Pustak Portal
Pustak Portal Instantiation and Management
Introduction to Cells-as-a-Service
Example: Setting Up a Web Portal
Cell Specification for the Example
Multi-tenancy: Supporting Multiple Authors to Host Books
Isolation of Multiple Tenants
Load Balancing the Author Web Site
Example: Passing a Message
Azure Test and Deployment
Technical Details of the Azure Platform
Windows Azure Runtime Environment
Using Azure Cloud Storage Services
Handling the Cloud Challenges
Security and Access Control
Reliability and Availability
Designing Pustak Portal in Azure
Storage for Pustak Portal
Developing a Google App Engine Application
Platform as a Service: Storage Aspects
Amazon Web Services: Storage
Amazon Simple Storage Service (S3)
Amazon Relational Database Services
Advanced Features of pureXML
Using IBM Data Studio to Enable DaaS
Service-oriented Architectures
A Simple Example of MapReduce
Running non-Java MapReduce applications
Hadoop MapReduce Architecture
Hadoop Distributed File System
HDFS Example: Finding the Location of Data Blocks
A Simple Yahoo! Pipe to Generate City News
Pipes Data Sources and Operations
YQL Example: Tweeting about New York Times Bestselling Books
YQL Update and Delete Statements
CRM as a Service, Salesforce.com
Customizing Salesforce.com
Force.com: A Platform for CRM as a Service
Programming on Salesforce.com and Force.com
A Force.com Example: Bulk Load of Data
Force.com – A More Complex Example
Social Computing Services
What Constitutes “Social” Computing?
Social Networks on the Web
Social Applications on Facebook
Social Media Web Site: Picasa
Open Social Platform from Google
Document Services: Google Docs
Handling Disruptions in the Network
Sharing the Document with a Mailing List
Embedding Google Docs in Other HTML Pages
5 Paradigms for Developing Cloud Applications
Scalable Data Storage Techniques
Example: Pustak Portal Data
Scaling Storage: Partitioning
Row Partitioning or Sharding
Case Study: Partitioning in Netlog
Example: Partitioning the Pustak Portal Data
Disadvantages of Sharding
Change in Database Schema
Automatic Sharding Support
NoSQL Systems: Key-Value Stores
NoSQL Systems: Object Databases
A Deeper Look at the Working of MapReduce Programs
MapReduce Programming Model
Fundamental Concepts Underlying MapReduce Paradigm
Functional Programming Paradigm
Parallel Architectures and Computing Models
Data parallelism versus task parallelism
Inherent Data Parallelism in MapReduce Applications
Some Algorithms Using MapReduce
Rich Internet Applications
RIA Development Environment
A Simple (Hello World) Example
Client-Server Example; RSS Feed Reader
Advanced Platform Functionality
Advanced Example: Implementing Pustak Portal
Adding Video Playback to Pustak Portal
6 Addressing the Cloud Challenges
Scale Out versus Scale Up
Scaling Cloud Applications with a Reverse Proxy
Hybrid Cloud and Cloud Bursting: OpenNebula
Design of a Scalable Cloud Platform: Eucalyptus
ZooKeeper: A Scalable Distributed Coordination System
Implications of CAP Theorem
Implementing Weak Consistency
Keeping Pustak Portal Data Consistent
Complexities of Weak Consistency
Consistency in NoSQL Systems
Implementing Multi-Tenancy: Resource Sharing
Case Study: Multi-Tenancy in Salesforce.com
Multi-Tenancy and Security in Hadoop
Librato Availability Services
Use of Web Services Model
7 Designing Cloud Security
Cloud Security Requirements and Best Practices
Common Management Database
Example: Security Design for a PaaS System
Security Architecture Standards
European Network and Information Security Agency (ENISA)
Legal and Regulatory Issues
Business Continuity Planning and Disaster Recovery
Litigation Related Issues
Selecting a Cloud Service Provider
Security Criteria for Selecting a Cloud Service Provider
Cloud Security Evaluation Frameworks
European Network and Information Security Agency (ENISA)
Management of CloudSystem Matrix
IaaS Administrator of CloudSystem Matrix
A Programming Example to Control Elasticity
EC2 Management: Amazon CloudWatch
Management of Windows Azure
Service Level Agreements (SLAs)
Managing Applications in Azure
Monitoring Force.com: Netcharts
Monitoring Force.com: Nimsoft
Other Cloud-Scale Management Systems
Hypervisor-based Virtualization
Techniques for Hypervisors
Trap and Emulate Virtualization
Limitations of Trap and Emulate Virtualization
Software Extensions to Trap and Emulate Virtualization
Hardware Support for Virtualization
Hardware Support for Processor Virtualization
Hardware Support for Memory Virtualization
Hardware Support for IO Virtualization
VMware Virtualization Software
XenServer Virtual Machine Monitor
Distributed File Systems with Centralized Metadata
Distributed File Systems with Distributed Metadata
Network-Based Virtualization
HP SAN Virtualization Services Platform
IBM SAN Volume Controller
Overview of Grid Computing
Three Fundamental Characteristics of a Grid
A Closer Look at Grid Technologies
Similarities between Grid and Cloud
Differences between Grid and Cloud
Combining Grid Computing with Cloud Computing
Other Cloud-Related Technologies
Application Service Providers
10 Future Trends and Research Directions
Storage Networking Industry Association (SNIA)
DMTF Reference Architecture
Cloudstone Measurements and Results
Example Cloudstone Results
Yahoo! Cloud Serving Benchmark
YCSB Measurements and Results
Use of Cloud in TaskLet solution
Process of Getting onto Open Cirrus
Management of Large Scale Cloud Research Tests
Scalable Monitoring System
Cloud Sustainability Dashboard
Open Research Problems in Cloud Computing