Moving To The Cloud :Developing Apps in the New World of Cloud Computing

Publication subTitle :Developing Apps in the New World of Cloud Computing

Author: Sitaram   Dinkar;Manjunath   Geetha  

Publisher: Elsevier Science‎

Publication year: 2011

E-ISBN: 9781597497268

P-ISBN(Paperback): 9781597497251

P-ISBN(Hardback):  9781597497251

Subject: TP309 安全保密;TP393 computer network;TP393.4 international Internet

Language: ENG

Access to resources Favorite

Disclaimer: Any content in publications that violate the sovereignty, the constitution or regulations of the PRC is not accepted or approved by CNPIEC.

Description

Moving to the Cloud provides an in-depth introduction to cloud computing models, cloud platforms, application development paradigms, concepts and technologies. The authors particularly examine cloud platforms that are in use today. They also describe programming APIs and compare the technologies that underlie them. The basic foundations needed for developing both client-side and cloud-side applications covering compute/storage scaling, data parallelism, virtualization, MapReduce, RIA, SaaS and Mashups are covered. Approaches to address key challenges of a cloud infrastructure, such as scalability, availability, multi-tenancy, security and management are addressed. The book also lays out the key open issues and emerging cloud standards that will drive the continuing evolution of cloud computing.

  • Includes complex case studies of cloud solutions by cloud experts from Yahoo! , Amazon, Microsoft, IBM, Adobe and HP Labs
  • Presents insights and techniques for creating compelling rich client applications that interact with cloud services
  • Demonstrates and distinguishes features of different cloud platforms using simple to complex API programming examples

Chapter

Structure of the Book

A Running Example: Pustak Portal

Acknowledgments

1 Introduction

Introduction

Where Are We Today?

Evolution of the Web

Web 2.0 and Social Networking

Information Explosion

Mobile Web

The Future Evolution

What is Cloud Computing?

Cloud Deployment Models

Private vs. Public Clouds

Business Drivers for Cloud Computing

Introduction to Cloud Technologies

Infrastructure as a Service

Platform as a Service

Software as a Service

Technology Challenges

Summary

References

2 Infrastructure as a Service

Introduction

Storage as a Service: Amazon Storage Services

Amazon Simple Storage Service (S3)

Accessing S3

Getting Started with S3

Organizing Data In S3: Buckets, Objects and Keys

S3 Administration

Large Objects and Multi-part Uploads

Amazon Simple DB

Data Organization and Access

SDB Availability and Administration

Amazon Relational Database Service

Compute as a Service: Amazon Elastic Compute Cloud (EC2)

Overview of Amazon EC2

Accessing EC2 Using AWS Console

Accessing EC2 Using Command Line Tools

EC2 Computational Resources

EC2 Storage Resources

EC2 Networking Resources

Simple EC2 Example: Setting up a Web Server

Selecting the AMI

Creating the Example EC2 Instance

Attaching an EBS Volume

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

HP CloudSystem Matrix

Basic Platform Features

Implementing the Pustak Portal Infrastructure

Template Design for Pustak Portal

Resource Configuration

Pustak Portal Instantiation and Management

Cells-as-a-Service

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

Summary

References

3 Platform as a Service

Introduction

Windows Azure

A “Hello World” Example

Example: Passing a Message

Azure Test and Deployment

Technical Details of the Azure Platform

Windows Azure Runtime Environment

Fabric Controller

SQL Azure

Azure AppFabric

Azure Programming Model

Web Role and Worker Role

Using Azure Cloud Storage Services

Blob Service

Table Service

Queue Service

Handling the Cloud Challenges

Scalability

Security and Access Control

Reliability and Availability

Interoperability

Designing Pustak Portal in Azure

Storage for Pustak Portal

Google App Engine

Getting Started

Developing a Google App Engine Application

Using Persistent Storage

Platform as a Service: Storage Aspects

Amazon Web Services: Storage

Amazon Simple Storage Service (S3)

Amazon Simple DB

Amazon Relational Database Services

IBM SmartCloud: pureXML

pureXML

Advanced Features of pureXML

Using IBM Data Studio to Enable DaaS

Service-oriented Architectures

WORF and DADX

IBM Data Studio

Apache Hadoop

MapReduce

A Simple Example of MapReduce

Running non-Java MapReduce applications

Dataflow in Map Reduce

Hadoop MapReduce Architecture

Hadoop Distributed File System

HDFS API

HDFS Example: Finding the Location of Data Blocks

Mashups

Yahoo! Pipes

A Simple Yahoo! Pipe to Generate City News

Pipes Data Sources and Operations

Yahoo! Query Language

YQL Overview

YQL Example: Tweeting about New York Times Bestselling Books

YQL Update and Delete Statements

Summary

References

4 Software as a Service

Introduction

CRM as a Service, Salesforce.com

A Feature Walk Through

Customizing Salesforce.com

Force.com: A Platform for CRM as a Service

Architecture Overview

Force.com Database

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

Case Study: Facebook

Social Applications on Facebook

Facebook Social Plug-ins

Open Graph API

Extending Open Graph

Social Media Web Site: Picasa

The Picasa API

Wrapper Libraries

Micro-Blogging: Twitter

Twitter API

Open Social Platform from Google

Privacy Issues: OAuth

Overview of OAuth

Document Services: Google Docs

Using Google Docs Portal

Using Google Docs APIs

A Simple Example

Handling Disruptions in the Network

Sharing the Document with a Mailing List

Embedding Google Docs in Other HTML Pages

Summary

References

5 Paradigms for Developing Cloud Applications

Introduction

Scalable Data Storage Techniques

Example: Pustak Portal Data

Scaling Storage: Partitioning

Functional Decomposition

Master-Slave Replication

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

HBase

Cassandra

NoSQL Systems: Object Databases

MongoDB

MongoDB concepts

MongoDB programming

MapReduce Revisited

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

Flynn's Classification

Data parallelism versus task parallelism

Inherent Data Parallelism in MapReduce Applications

Some Algorithms Using MapReduce

Word Count

Sorting

TF-IDF

Breadth-First Search

Rich Internet Applications

Getting Started

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

Summary

References

6 Addressing the Cloud Challenges

Introduction

Scaling Computation

Scale Out versus Scale Up

Amdahl’s Law

Scaling Cloud Applications with a Reverse Proxy

Hybrid Cloud and Cloud Bursting: OpenNebula

OpenNebula

Design of a Scalable Cloud Platform: Eucalyptus

ZooKeeper: A Scalable Distributed Coordination System

Overview of ZooKeeper

Using ZooKeeper API

Scaling Storage

CAP Theorem

CAP Theorem Example

Implications of CAP Theorem

Implementing Weak Consistency

Keeping Pustak Portal Data Consistent

Asynchronous Replication

Complexities of Weak Consistency

Consistency in NoSQL Systems

HBase

MongoDB

Dynamo/Cassandra

Multi-Tenancy

Multi-Tenancy Levels

Tenants and Users

Authentication

Implementing Multi-Tenancy: Resource Sharing

Resource Sharing

Case Study: Multi-Tenancy in Salesforce.com

Multi-Tenancy and Security in Hadoop

HDFS Architecture

HDFS Security

MapReduce security

Availability

Failure Detection

Application Recovery

Librato Availability Services

Use of Web Services Model

Summary

References

7 Designing Cloud Security

Introduction

Cloud Security Requirements and Best Practices

Physical Security

Virtual Security

Cloud Time Service

Identity Management

Access Management

Break-Glass Procedures

Key Management

Auditing

Security Monitoring

Security Testing

Risk Management

Risk Management Concepts

Risk Management Process

Security Design Patterns

Defense in Depth

Honeypots

Sandboxes

Network Patterns

VM Isolation

Subnet Isolation

Common Management Database

Example: Security Design for a PaaS System

External Network Access

Internal Network Access

Server Security

Security Server

Security Architecture Standards

SSE-CMM

ISO/IEC 27001-27006

European Network and Information Security Agency (ENISA)

ITIL Security Management

COBIT

NIST

Legal and Regulatory Issues

Third-party Issues

Contractual Issues

Due diligence

Contract negotiation

Implementation

Termination

Data Handling

Data Privacy

Data Location

Secondary Use of Data

Business Continuity Planning and Disaster Recovery

Security Breaches

Litigation Related Issues

Selecting a Cloud Service Provider

Listing the Risks

Security Criteria for Selecting a Cloud Service Provider

Security Processes

System Management

Technology

Cloud Security Evaluation Frameworks

Cloud Security Alliance

European Network and Information Security Agency (ENISA)

Trusted Computing Group

Summary

References

8 Managing the Cloud

Introduction

Managing IaaS

Management of CloudSystem Matrix

IaaS Administrator of CloudSystem Matrix

Self-Service Monitoring

A Programming Example to Control Elasticity

EC2 Management: Amazon CloudWatch

Managing PaaS

Management of Windows Azure

Service Level Agreements (SLAs)

Managing Applications in Azure

Managing SaaS

Monitoring Force.com: Netcharts

Monitoring Force.com: Nimsoft

Other Cloud-Scale Management Systems

HP Cloud Assure

RightScale

Compuware

Summary

References

9 Related Technologies

Introduction

Server Virtualization

Hypervisor-based Virtualization

Types of Hypervisors

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

Two Popular Hypervisors

VMware Virtualization Software

XenServer Virtual Machine Monitor

Storage Virtualization

File Virtualization

Distributed File Systems with Centralized Metadata

Lustre

Distributed File Systems with Distributed Metadata

GlusterFS

Block Virtualization

Network-Based Virtualization

HP SAN Virtualization Services Platform

IBM SAN Volume Controller

Grid Computing

Overview of Grid Computing

Three Fundamental Characteristics of a Grid

A Closer Look at Grid Technologies

Comparing Grid and Cloud

Similarities between Grid and Cloud

Differences between Grid and Cloud

Combining Grid Computing with Cloud Computing

Other Cloud-Related Technologies

Distributed Computing

Utility Computing

Autonomic Computing

Application Service Providers

SUMMARY

References

10 Future Trends and Research Directions

Introduction

Emerging Standards

Storage Networking Industry Association (SNIA)

DMTF Reference Architecture

NIST

IEEE

Open Grid Forum (OGF)

Cloud Benchmarks

Cloudstone

Faban Workload Generator

Cloudstone Measurements and Results

Example Cloudstone Results

Yahoo! Cloud Serving Benchmark

YCSB Workload Generator

YCSB Measurements and Results

Example YCSB Results

CloudCMP

CloudCmp Architecture

CloudCmp Results

End-User Programming

Visual Programming

Programming by Example

TaskLets

Use of Cloud in TaskLet solution

CoScriptor

Open Cirrus

Process of Getting onto Open Cirrus

Management of Large Scale Cloud Research Tests

Node Reservation System

Scalable Monitoring System

Cloud Sustainability Dashboard

Open Research Problems in Cloud Computing

Summary

References

Index

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

The users who browse this book also browse