Cloud computing—accessing computing resources over the Internet—is rapidly changing the landscape of information technology. Its primary benefits compared to on-premise computing models are reduced costs and increased agility and scalability. Hence, cloud computing is receiving considerable interest among several stakeholders—businesses, the IT industry, application developers, researchers, and students. To successfully embrace this new computing model, these stakeholders need to acquire new cloud computing skills and knowledge. This book is designed to provide readers with a clear and thorough understanding of the key aspects of cloud computing.
Presented in an easy-to-understand style, Essentials of Cloud Computing begins with an introduction to basic cloud computing concepts. It then covers cloud computing architecture, deployment models, programming models, and cloud service types, such as Software as a Service (SaaS) and Infrastructure as a Service (IaaS). It also discusses the cloud’s networking aspects, major service providers, open source support, and security issues. The book concludes with a discussion of several advanced topics, such as mobile clouds, media clouds, and green clouds.
This book is intended for beginners as well as experienced practitioners who want to learn more about cloud computing. It includes many case studies, programming examples, and industry-based applications. Each chapter concludes with review questions that help readers check their understanding of the presented topics. Essentials of Cloud Computing will help readers understand the issues and challenges of cloud computing and will give them the tools needed to develop and deploy applications in clouds.
Foreword
Preface
Computing Paradigms
Learning Objectives
Preamble
High-Performance Computing
Parallel Computing
Distributed Computing
Cluster Computing
Grid Computing
Cloud Computing
Biocomputing
Mobile Computing
Quantum Computing
Optical Computing
Nanocomputing
Network Computing
Summary
Review Points
Review Questions
Further Reading
Cloud Computing Fundamentals
Learning Objectives
Preamble
Motivation for Cloud Computing
The Need for Cloud Computing
Defining Cloud Computing
NIST Definition of Cloud Computing
Cloud Computing Is a Service
Cloud Computing Is a Platform
5-4-3 Principles of Cloud computing
Five Essential Characteristics
Four Cloud Deployment Models
Three Service Offering Models
Cloud Ecosystem
Requirements for Cloud Services
Cloud Application
Benefits and Drawbacks
Review Points
Review Questions
Reference
Further Reading
Cloud Computing Architecture and Management
Learning Objectives
Preamble
Introduction
Cloud Architecture
Layer 1 (User/Client Layer)
Layer 2 (Network Layer)
Layer 3 (Cloud Management Layer)
Layer 4 (Hardware Resource Layer)
Anatomy of the Cloud
Network Connectivity in Cloud Computing
Public Cloud Access Networking
Private Cloud Access Networking
Intracloud Networking for Public Cloud Services
Private Intracloud Networking
New Facets in Private Networks
Path for Internet Traffic
Applications on the Cloud
Managing the Cloud
Managing the Cloud Infrastructure
Managing the Cloud Application
Migrating Application to Cloud
Phases of Cloud Migration
Approaches for Cloud Migration
Summary
Review Points
Review Questions
References
Further Reading
Cloud Deployment Models
Learning Objectives
Preamble
Introduction
Private Cloud
Characteristics
Suitability
On-Premise Private Cloud
Outsourced Private Cloud
Advantages
Disadvantages
Public Cloud
Characteristics
Suitability
Issues
Advantages
Disadvantages
Community Cloud
Characteristics
Suitability
On-Premise Community Cloud
Outsourced Community Cloud
Advantages
Disadvantages
Hybrid Cloud
Characteristics
Suitability
Issues
Advantages
Disadvantages
Summary
Review Points
Review Questions
References
Cloud Service Models
Learning Objectives
Preamble
Introduction
Infrastructure as a Service
Characteristics of IaaS
Suitability of IaaS
Pros and Cons of IaaS
Summary of IaaS Providers
Platform as a Service
Characteristics of PaaS
Suitability of PaaS
Pros and Cons of PaaS
Summary of PaaS Providers
Software as a Service
Characteristics of SaaS
Suitability of SaaS
Pros and Cons of SaaS
Summary of SaaS Providers
Other Cloud Service Models
Summary
Review Points
Review Questions
Further Reading
Technological Drivers for Cloud Computing
Learning Objectives
Preamble
Introduction
SOA and Cloud
SOA and SOC
Benefits of SOA
Technologies Used by SOA
Similarities and Differences between SOA and Cloud Computing
How SOA Meets Cloud Computing
CCOA
Virtualization
Approaches in Virtualization
Hypervisor and Its Role
Types of Virtualization
Multicore Technology
Multicore Processors and VM Scalability
Multicore Technology and the Parallelism in Cloud
Case Study
Memory and Storage Technologies
Cloud Storage Requirements
Virtualization Support
Storage as a Service (STaaS)
Emerging Trends and Technologies in Cloud Storage
Networking Technologies
Network Requirements for Cloud
Virtualization Support
Usage of Virtual Networks
DCs and VPLS
SDN
MPLS
Other Emerging Networking Trends and Technologies in Cloud
Web 2.0
Characteristics of Web 2.0
Difference between Web 1.0 and Web 2.0
Applications of Web 2.0
Web 2.0 and Cloud Computing
Web 3.0
Components of Web 3.0
Characteristics of Web 3.0
Convergence of Cloud and Web 3.0
Case Studies in Cloud and Web 3.0
Software Process Models for Cloud
Types of Software Models
Agile SDLC for Cloud Computing
Agile Software Development Process
Advantages of Agile Model
How Cloud Meets Agile Process?
Programming Models
Programming Models in Cloud
Pervasive Computing
How Pervasive Computing Works?
How Pervasive Computing Helps Cloud Computing?
Operating System
Types of Operating Systems
Role of OS in Cloud Computing
Features of Cloud OS
Cloud OS Requirements
Cloud-Based OS
Application Environment
Need for Effective ADE
Application Development Methodologies
Power of Cloud Computing in Application Development
Cloud Application Development Platforms
Cloud Computing APIs
Summary
Review Points
Review Questions
References
Further Reading
Virtualization
Learning Objectives
Preamble
Introduction
Virtualization Opportunities
Processor Virtualization
Memory Virtualization
Storage Virtualization
Network Virtualization
Data Virtualization
Application Virtualization
Approaches to Virtualization
Full Virtualization
Paravirtualization
Hardware-Assisted Virtualization
Hypervisors
Types of Hypervisors
Security Issues and Recommendations
From Virtualization to Cloud Computing
IaaS
PaaS
SaaS
Summary
Review Points
Review Questions
Further Reading
Programming Models for Cloud Computing
Learning Objectives
Preamble
Introduction
Extended Programming Models for Cloud
MapReduce
CGL-MapReduce
Cloud Haskell: Functional Programming
MultiMLton: Functional Programming
Erlang: Functional Programming
SORCER: Object-Oriented Programming
Programming Models in Aneka
New Programming Models Proposed for Cloud
Orleans
BOOM and Bloom
GridBatch
Simple API for Grid Applications
Summary
Review Points
Review Questions
References
Further Reading
Software Development in Cloud
Learning Objectives
Preamble
Introduction
SaaS Is Different from Traditional Software
SaaS Benefits
Suitability of SaaS
Different Perspectives on SaaS Development
SaaS from Managed Infrastructure and Platform
SaaS from IaaS and Managed Platform
SaaS from Managed Infrastructure and PaaS
SaaS from IaaS and PaaS
New Challenges
Multitenancy
Security
Scalability
Availability
Usability
Self-Service Sign-Up
Automated Billing
Nondisruptive Updates
Service Integration
Vendor Lock-In
Cloud-Aware Software Development Using PaaS Technology
Requirements Analysis
Multitenant Architecture
Highly Scalable and Available Architecture
Database Design
SaaS Development
Monitoring and SLA Maintenance
Summary
Review Points
Review Questions
Further Reading
Networking for Cloud Computing
Learning Objectives
Preamble
Introduction
Overview of Data Center Environment
Architecture of Classical Data Centers
CEDCs
Physical Organization
Storage and Networking Infrastructure
Cooling Infrastructure
Nature of Traffic in Data Centers
Networking Issues in Data Centers
Availability
Poor Network Performance
Security
Transport Layer Issues in DCNs
TCP Impairments in DCNs
Summary: TCP Impairments and Causes
TCP Enhancements for DCNs
TCP with Fine-Grained RTO (FG-RTO)
TCP with FG-RTO + Delayed ACKs Disabled
DCTCP
ICTCP
IA-TCP
D2TCP
TCP-FITDC
TDCTCP
TCP with Guarantee Important Packets (GIP)
PVTCP
Summary: TCP Enhancements for DCNs
Summary
Review Points
Review Questions
References
Cloud Service Providers
Learning Objectives
Preamble
Introduction
EMC
EMC IT
Captiva Cloud Toolkit
Google
Cloud Platform
Cloud Storage
Google Cloud Connect
Google Cloud Print
Google App Engine
Amazon Web Services
Amazon Elastic Compute Cloud
Amazon Simple Storage Service
Amazon Simple Queue Service
Microsoft
Windows Azure
Microsoft Assessment and Planning Toolkit
SharePoint
IBM
Cloud Models
IBM SmartCloud
SAP Labs
SAP HANA Cloud Platform
Virtualization Services Provided by SAP
Salesforce
Sales Cloud
Service Cloud: Knowledge as a Service
Rackspace
VMware
Manjrasoft
Aneka Platform
Summary
Review Points
Review Questions
References
Further Reading
Open Source Support for Cloud
Learning Objectives
Preamble
Introduction
Open Source in Cloud Computing: An Overview
Difference between Open Source and Closed Source
Advantages of Having an Open Source
Open Source Tools for IaaS
OpenNebula
Eucalyptus
OpenStack
Apache CloudStack
Nimbus
GoGrid Cloud
Open Source Tools for PaaS
Paasmaker
Red Hat OpenShift Origin
Xen Cloud Platform
Cloudify
Open Source Tools for SaaS
Apache VCL
Google Drive
Google Docs
Dropbox
Open Source Tools for Research
CloudSim
SimMapReduce
Cloud Analyst
GreenCloud
Distributed Computing Tools for Management of Distributed Systems
Cassandra
Hadoop
MongoDB
NGrid
Ganglia
Summary
Review Points
Review Questions
References
Further Reading
Security in Cloud Computing
Learning Objectives
Preamble
Introduction
Cloud in Information Technology
Cloud General Challenges
Security Aspects
Data Security
Virtualization Security
Network Security
Platform-Related Security
Security Issues in Cloud Service Models
Software-as-a-Service Security Issues
Platform-as-a-Service Security Issues
Infrastructure-as-a-Service Security Issues
Audit and Compliance
Disaster Recovery
Privacy and Integrity
Summary
Review Points
Review Questions
Further Reading
Advanced Concepts in Cloud Computing
Learning Objectives
Preamble
Intercloud
Cloud Management
Mobile Cloud
Media Cloud
Interoperability and Standards
Cloud Governance
Computational Intelligence in Cloud
Green Cloud
Cloud Analytics
Summary
Review Points
Review Questions
References
Further Reading
Index
Biography
K. Chandrasekaran