127,99 €
The primary purpose of this book is to capture the state-of-the-art in Cloud Computing technologies and applications. The book will also aim to identify potential research directions and technologies that will facilitate creation a global market-place of cloud computing services supporting scientific, industrial, business, and consumer applications. We expect the book to serve as a reference for larger audience such as systems architects, practitioners, developers, new researchers and graduate level students. This area of research is relatively recent, and as such has no existing reference book that addresses it. This book will be a timely contribution to a field that is gaining considerable research interest, momentum, and is expected to be of increasing interest to commercial developers. The book is targeted for professional computer science developers and graduate students especially at Masters level. As Cloud Computing is recognized as one of the top five emerging technologies that will have a major impact on the quality of science and society over the next 20 years, its knowledge will help position our readers at the forefront of the field.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 1113
Veröffentlichungsjahr: 2010
Cover
Title
Copyright
PREFACE
ACKNOWLEDGMENTS
CONTRIBUTORS
PART I: FOUNDATIONS
CHAPTER 1: INTRODUCTION TO CLOUD COMPUTING
1.1 CLOUD COMPUTING IN A NUTSHELL
1.2 ROOTS OF CLOUD COMPUTING
1.3 LAYERS AND TYPES OF CLOUDS
1.4 DESIRED FEATURES OF A CLOUD
1.5 CLOUD INFRASTRUCTURE MANAGEMENT
1.6 INFRASTRUCTURE AS A SERVICE PROVIDERS
1.7 PLATFORM AS A SERVICE PROVIDERS
1.8 CHALLENGES AND RISKS
1.9 SUMMARY
REFERENCES
CHAPTER 2: MIGRATING INTO A CLOUD
2.1 INTRODUCTION
2.2 BROAD APPROACHES TO MIGRATING INTO THE CLOUD
2.3 THE SEVEN-STEP MODEL OF MIGRATION INTO A CLOUD
2.4 CONCLUSIONS
ACKNOWLEDGMENTS
REFERENCES
CHAPTER 3: ENRICHING THE ‘INTEGRATION AS A SERVICE’ PARADIGM FOR THE CLOUD ERA
3.1 AN INTRODUCTION
3.2 THE ONSET OF KNOWLEDGE ERA
3.3 THE EVOLUTION OF SaaS
3.4 THE CHALLENGES OF SaaS PARADIGM
3.5 APPROACHING THE SaaS INTEGRATION ENIGMA
3.6 NEW INTEGRATION SCENARIOS
3.7 THE INTEGRATION METHODOLOGIES
3.8 SaaS INTEGRATION PRODUCTS AND PLATFORMS
3.9 SaaS INTEGRATION SERVICES
3.10 BUSINESSES-TO-BUSINESS INTEGRATION (B2Bi) SERVICES
3.11 A FRAMEWORK OF SENSOR—CLOUD INTEGRATION [3]
3.12 SaaS INTEGRATION APPLIANCES
3.13 CONCLUSION
REFERENCES
CHAPTER 4: THE ENTERPRISE CLOUD COMPUTING PARADIGM
4.1 INTRODUCTION
4.2 BACKGROUND
4.3 ISSUES FOR ENTERPRISE APPLICATIONS ON THE CLOUD
4.4 TRANSITION CHALLENGES
4.5 ENTERPRISE CLOUD TECHNOLOGY AND MARKET EVOLUTION
4.6 BUSINESS DRIVERS TOWARD A MARKETPLACE FOR ENTERPRISE CLOUD COMPUTING
4.7 THE CLOUD SUPPLY CHAIN
4.8 SUMMARY
ACKNOWLEDGMENTS
REFERENCES
PART II: INFRASTRUCTURE AS A SERVICE (IAAS)
CHAPTER 5: VIRTUAL MACHINES PROVISIONING AND MIGRATION SERVICES
5.1 INTRODUCTION AND INSPIRATION
5.2 BACKGROUND AND RELATED WORK
5.3 VIRTUAL MACHINES PROVISIONING AND MANAGEABILITY
5.4 VIRTUAL MACHINE MIGRATION SERVICES
5.5 VM PROVISIONING AND MIGRATION IN ACTION
5.6 PROVISIONING IN THE CLOUD CONTEXT
5.7 FUTURE RESEARCH DIRECTIONS
5.8 CONCLUSION
REFERENCES
CHAPTER 6: ON THE MANAGEMENT OF VIRTUAL MACHINES FOR CLOUD INFRASTRUCTURES
6.1 THE ANATOMY OF CLOUD INFRASTRUCTURES
6.2 DISTRIBUTED MANAGEMENT OF VIRTUAL INFRASTRUCTURES
6.3 SCHEDULING TECHNIQUES FOR ADVANCE RESERVATION OF CAPACITY
6.4 CAPACITY MANAGEMENT TO MEET SLA COMMITMENTS
6.5 CONCLUSIONS AND FUTURE WORK
ACKNOWLEDGMENTS
REFERENCES
CHAPTER 7: ENHANCING CLOUD COMPUTING ENVIRONMENTS USING A CLUSTER AS A SERVICE
7.1 INTRODUCTION
7.2 RELATED WORK
7.3 RVWS DESIGN
7.4 CLUSTER AS A SERVICE: THE LOGICAL DESIGN
7.5 PROOF OF CONCEPT
7.6 FUTURE RESEARCH DIRECTIONS
7.7 CONCLUSION
REFERENCES
CHAPTER 8: SECURE DISTRIBUTED DATA STORAGE IN CLOUD COMPUTING
8.1 INTRODUCTION
8.2 CLOUD STORAGE: FROM LANs TO WANS
8.3 TECHNOLOGIES FOR DATA SECURITY IN CLOUD COMPUTING
8.4 OPEN QUESTIONS AND CHALLENGES
8.5 SUMMARY
REFERENCES
PART III: PLATFORM AND SOFTWARE AS A SERVICE (PaaS/IaaS)
CHAPTER 9: ANEKA—INTEGRATION OF PRIVATE AND PUBLIC CLOUDS
9.1 INTRODUCTION
9.2 TECHNOLOGIES AND TOOLS FOR CLOUD COMPUTING
9.3 ANEKA CLOUD PLATFORM
9.4 ANEKA RESOURCE PROVISIONING SERVICE
9.5 HYBRID CLOUD IMPLEMENTATION
9.6 VISIONARY THOUGHTS FOR PRACTITIONERS
9.7 SUMMARY AND CONCLUSIONS
ACKNOWLEDGMENTS
REFERENCES
CHAPTER 10: CometCloud: AN AUTONOMIC CLOUD ENGINE
10.1 INTRODUCTION
10.2 CometCloud ARCHITECTURE
10.3 AUTONOMIC BEHAVIOR OF CometCloud
10.4 OVERVIEW OF CometCloud-BASED APPLICATIONS
10.5 IMPLEMENTATION AND EVALUATION
10.6 CONCLUSION AND FUTURE RESEARCH DIRECTIONS
ACKNOWLEDGMENTS
REFERENCES
CHAPTER 11: T-SYSTEMS’ CLOUD-BASED SOLUTIONS FOR BUSINESS APPLICATIONS
11.1 INTRODUCTION
11.2 WHAT ENTERPRISES DEMAND OF CLOUD COMPUTING
11.3 DYNAMIC ICT SERVICES
11.4 IMPORTANCE OF QUALITY AND SECURITY IN CLOUDS
11.5 DYNAMIC DATA CENTER—PRODUCING BUSINESS-READY, DYNAMIC ICT SERVICES
11.6 CASE STUDIES
11.7 SUMMARY: CLOUD COMPUTING OFFERS MUCH MORE THAN TRADITIONAL OUTSOURCING
ACKNOWLEDGMENTS
REFERENCES
CHAPTER 12: WORKFLOW ENGINE FOR CLOUDS
12.1 INTRODUCTION
12.2 BACKGROUND
12.3 WORKFLOW MANAGEMENT SYSTEMS AND CLOUDS
12.4 ARCHITECTURE OF WORKFLOW MANAGEMENT SYSTEMS
12.5 UTILIZING CLOUDS FOR WORKFLOW EXECUTION
12.6 CASE STUDY: EVOLUTIONARY MULTIOBJECTIVE OPTIMIZATIONS
12.7 VISIONARY THOUGHTS FOR PRACTITIONERS
12.8 FUTURE RESEARCH DIRECTIONS
12.9 SUMMARY AND CONCLUSIONS
ACKNOWLEDGMENTS
REFERENCES
CHAPTER 13: UNDERSTANDING SCIENTIFIC APPLICATIONS FOR CLOUD ENVIRONMENTS
13.1 INTRODUCTION
13.2 A CLASSIFICATION OF SCIENTIFIC APPLICATIONS AND SERVICES IN THE CLOUD
13.3 SAGA-BASED SCIENTIFIC APPLICATIONS THAT UTILIZE CLOUDS
13.4 DISCUSSION
13.5 CONCLUSIONS
REFERENCES
CHAPTER 14: THE MapReduce PROGRAMMING MODEL AND IMPLEMENTATIONS
14.1 INTRODUCTION
14.2 MapReduce PROGRAMMING MODEL
14.3 MAJOR MapReduce IMPLEMENTATIONS FOR THE CLOUD
14.4 MapReduce IMPACTS AND RESEARCH DIRECTIONS
14.5 CONCLUSION
REFERENCES
PART IV: MONITORING AND MANAGEMENT
CHAPTER 15: AN ARCHITECTURE FOR FEDERATED CLOUD COMPUTING
15.1 INTRODUCTION
15.2 A TYPICAL USE CASE
15.3 THE BASIC PRINCIPLES OF CLOUD COMPUTING
15.4 A MODEL FOR FEDERATED CLOUD COMPUTING
15.5 SECURITY CONSIDERATIONS
15.6 SUMMARY AND CONCLUSIONS
REFERENCES
CHAPTER 16: SLA MANAGEMENT IN CLOUD COMPUTING: A SERVICE PROVIDER’S PERSPECTIVE
16.1 INSPIRATION
16.2 TRADITIONAL APPROACHES TO SLO MANAGEMENT
16.3 TYPES OF SLA
16.4 LIFE CYCLE OF SLA
16.5 SLA MANAGEMENT IN CLOUD
16.6 AUTOMATED POLICY-BASED MANAGEMENT
16.7 CONCLUSION
REFERENCES
CHAPTER 17: PERFORMANCE PREDICTION FOR HPC ON CLOUDS
17.1 INTRODUCTION
17.2 BACKGROUND
17.3 GRID AND CLOUD
17.4 HPC IN THE CLOUD: PERFORMANCE-RELATED ISSUES
17.5 SUMMARY AND CONCLUSIONS
REFERENCES
PART V: APPLICATIONS
CHAPTER 18: BEST PRACTICES IN ARCHITECTING CLOUD APPLICATIONS IN THE AWS CLOUD
18.1 INTRODUCTION
18.2 BACKGROUND
18.3 CLOUD CONCEPTS
18.4 CLOUD BEST PRACTICES
18.5 GREPTHEWEB CASE STUDY
18.6 FUTURE RESEARCH DIRECTIONS
18.7 CONCLUSION
ACKNOWLEDGMENTS
REFERENCES
CHAPTER 19: MASSIVELY MULTIPLAYER ONLINE GAME HOSTING ON CLOUD RESOURCES
19.1 INTRODUCTION
19.2 BACKGROUND
19.3 RELATED WORK
19.4 MODEL
19.5 EXPERIMENTS
19.6 FUTURE RESEARCH DIRECTIONS
19.7 CONCLUSIONS
ACKNOWLEDGMENTS
REFERENCES
CHAPTER 20: BUILDING CONTENT DELIVERY NETWORKS USING CLOUDS
20.1 INTRODUCTION
20.2 BACKGROUND/RELATED WORK
20.3 MetaCDN: HARNESSING STORAGE CLOUDS FOR LOW-COST, HIGH-PERFORMANCE CONTENT DELIVERY
20.4 PERFORMANCE OF THE MetaCDN OVERLAY
20.5 FUTURE DIRECTIONS
20.6 CONCLUSION
ACKNOWLEDGMENTS
REFERENCES
CHAPTER 21: RESOURCE CLOUD MASHUPS
21.1 INTRODUCTION
21.2 CONCEPTS OF A CLOUD MASHUP
21.3 REALIZING RESOURCE MASHUPS
21.4 CONCLUSIONS
REFERENCES
PART VI: GOVERNANCE AND CASE STUDIES
CHAPTER 22: ORGANIZATIONAL READINESS AND CHANGE MANAGEMENT IN THE CLOUD AGE
22.1 INTRODUCTION
22.2 BASIC CONCEPT OF ORGANIZATIONAL READINESS
22.3 DRIVERS FOR CHANGES: A FRAMEWORK TO COMPREHEND THE COMPETITIVE ENVIRONMENT
22.4 COMMON CHANGE MANAGEMENT MODELS
22.5 CHANGE MANAGEMENT MATURITY MODEL (CMMM)
22.6 ORGANIZATIONAL READINESS SELF-ASSESSMENT: (WHO, WHEN, WHERE, AND HOW)
22.7 DISCUSSION
22.8 CONCLUSION
ACKNOWLEDGMENTS
REFERENCES
CHAPTER 23: DATA SECURITY IN THE CLOUD
23.1 AN INTRODUCTION TO THE IDEA OF DATA SECURITY
23.2 THE CURRENT STATE OF DATA SECURITY IN THE CLOUD
23.3 HOMO SAPIENS AND DIGITAL INFORMATION
23.4 CLOUD COMPUTING AND DATA SECURITY RISK
23.5 CLOUD COMPUTING AND IDENTITY
23.6 THE CLOUD, DIGITAL IDENTITY, AND DATA SECURITY
23.7 CONTENT LEVEL SECURITY—PROS AND CONS
23.8 FUTURE RESEARCH DIRECTIONS
23.9 CONCLUSION
ACKNOWLEDGMENTS
FURTHER READING
REFERENCES
CHAPTER 24: LEGAL ISSUES IN CLOUD COMPUTING
24.1 INTRODUCTION
24.2 DATA PRIVACY AND SECURITY ISSUES
24.3 CLOUD CONTRACTING MODELS
24.4 JURISDICTIONAL ISSUES RAISED BY VIRTUALIZATION AND DATA LOCATION
24.5 COMMERCIAL AND BUSINESS CONSIDERATIONS—A CLOUD USER’S VIEWPOINT
24.6 SPECIAL TOPICS
24.7 CONCLUSION
24.8 EPILOGUE
REFERENCES
CHAPTER 25: ACHIEVING PRODUCTION READINESS FOR CLOUD SERVICES
25.1 INTRODUCTION
25.2 SERVICE MANAGEMENT
25.3 PRODUCER–CONSUMER RELATIONSHIP
25.4 CLOUD SERVICE LIFE CYCLE
25.5 PRODUCTION READINESS
25.6 ASSESSING PRODUCTION READINESS
25.7 SUMMARY
REFERENCES
INDEX
End User License Agreement
CHAPTER 1: INTRODUCTION TO CLOUD COMPUTING
TABLE 1.1. Feature Comparison of Virtual Infrastructure Managers
TABLE 1.2. Feature Comparison Public Cloud Offerings (Infrastructure as a Service)
TABLE 1.3. Feature Comparison of Platform-as-a-Service Cloud Offerings
CHAPTER 4: THE ENTERPRISE CLOUD COMPUTING PARADIGM
TABLE 4.1. Comparison of Traditional and Emerging ICT Supply Chains
a
CHAPTER 7: ENHANCING CLOUD COMPUTING ENVIRONMENTS USING A CLUSTER AS A SERVICE
TABLE 7.1. Cluster Attributes
CHAPTER 10: CometCloud: AN AUTONOMIC CLOUD ENGINE
TABLE 10.1. The Overlay Join Overhead on Amazon EC2
CHAPTER 12: WORKFLOW ENGINE FOR CLOUDS
TABLE 12.1. Characteristics of Amazon Compute Resources (EC2) Used in Our Experiment
CHAPTER 13: UNDERSTANDING SCIENTIFIC APPLICATIONS FOR CLOUD ENVIRONMENTS
TABLE 13.1. A Classification of Some Commonly Occurring Patterns in Distributed Computing.
a
TABLE 13.2. Performance Data for Different Configurations of Worker Placements
a
TABLE 13.3. Performance Data for Different Configurations of Worker Placements on TG, Eucalyptus–Cloud, and EC2.
a
TABLE 13.4. Execution Measurements
TABLE 13.5. Usage of Cloud Pilot Jobs to Ensure Deadline
TABLE 13.6. Design objectives addressed by the different applications: Interoperability, infrastructure independence; Distributed Scale-Out, ability to use multiple distributed resources concurrently; Extensibility, extensibility and general purpose uptake; Adaptivity, ability to respond to changes; and Simplicity, greater simplicity without sacrificing functionality and performance.
CHAPTER 14: THE MapReduce PROGRAMMING MODEL AND IMPLEMENTATIONS
TABLE 14.1. MapReduce Statistics for Different Months [4]
TABLE 14.2. MapReduce Cloud Implementations
TABLE 14.3. Comparison of MapReduce Implementations
TABLE 14.4. Some Major Enterprise Solutions Based on Hadoop
CHAPTER 16: SLA MANAGEMENT IN CLOUD COMPUTING: A SERVICE PROVIDER’S PERSPECTIVE
TABLE 16.1. Key Components of a Service-Level Agreement
TABLE 16.2. Key Contractual Elements of an Infrastructural SLA
TABLE 16.3. Feature Comparison of Virtual Infrastructure Managers
CHAPTER 17: PERFORMANCE PREDICTION FOR HPC ON CLOUDS
TABLE 17.1. Example of Cost Criteria
TABLE 17.2. Differences Between “Classical” HPC and HPC in Cloud Environments
TABLE 17.3. Service-Level Agreement of GoGrid Network
CHAPTER 19: MASSIVELY MULTIPLAYER ONLINE GAME HOSTING ON CLOUD RESOURCES
TABLE 19.1. Realistic Parameter Values for the Heavy VM Instantiation Model
a
TABLE 19.2. RuneScape Data Centers Physical Characteristics
TABLE 19.3. Virtualization Section of Allocation Policies
TABLE 19.4. Data Center Resource Allocation Policies Used for the Quantification of the Impact of Each of the Virtualization Parameters
CHAPTER 20: BUILDING CONTENT DELIVERY NETWORKS USING CLOUDS
TABLE 20.1. Pricing Comparison of Cloud Storage Vendors
TABLE 20.2. Feature Comparison of Cloud Storage Vendors
TABLE 20.3. Average Response Time (seconds) over 24 Hours from Six Client Locations
TABLE 20.4. Average Throughput (KB/s) over 24 Hours from Six Client Locations
TABLE 20.5. Average Throughput (kB/sec) over 48 Hours from Eight Client Locations
CHAPTER 22: ORGANIZATIONAL READINESS AND CHANGE MANAGEMENT IN THE CLOUD AGE
TABLE 22.1. A Working Model: Change Management Maturity Model (CMMM)
TABLE 22.2. Working Assessment Template
CHAPTER 25: ACHIEVING PRODUCTION READINESS FOR CLOUD SERVICES
TABLE 25.1. Cloud Service Life Cycle
CHAPTER 1: INTRODUCTION TO CLOUD COMPUTING
FIGURE 1.1. Convergence of various advances leading to the advent of cloud computing.
FIGURE 1.2. A hardware virtualized server hosting three virtual machines, each one running distinct operating system and user level software stack.
FIGURE 1.3. The cloud computing stack.
FIGURE 1.4. Types of clouds based on deployment models.
CHAPTER 2: MIGRATING INTO A CLOUD
FIGURE 2.1. The promise of the cloud computing services.
FIGURE 2.2. The cloud computing service offering and deployment models.
FIGURE 2.3. ‘Under the hood’ challenges of the cloud computing services implementations.
FIGURE 2.4. The Seven-Step Model of Migration into the Cloud.
FIGURE 2.5. The iterative Seven-step Model of Migration into the Cloud.
FIGURE 2.6. Some details of the iterative Seven-Step Model of Migration into the Cloud.
CHAPTER 3: ENRICHING THE ‘INTEGRATION AS A SERVICE’ PARADIGM FOR THE CLOUD ERA
FIGURE 3.1. Within a Public Cloud.
FIGURE 3.2. Across Homogeneous Clouds.
FIGURE 3.3. Across Heterogeneous Clouds.
FIGURE 3.4. The Smooth and Spontaneous Cloud Interaction via Open Clouds.
FIGURE 3.5. Linkage of On-Premise with Online and On-Demand Applications.
FIGURE 3.6. Pervasive Integrator Connects Different Resources.
FIGURE 3.7. .NET Service Bus.
FIGURE 3.8. The .NET Relay Service.
FIGURE 3.9. Cloud-based Enterprise Mashup Integration Platform Architecture.
FIGURE 3.10. The Framework Architecture of Sensor—Cloud Integration.
CHAPTER 4: THE ENTERPRISE CLOUD COMPUTING PARADIGM
FIGURE 4.1. Enterprise cloud adoption strategies using fundamental cloud drivers.
FIGURE 4.2. Enterprise cloud consumption strategies.
FIGURE 4.3. Five stages of the cloud.
FIGURE 4.4. Porter’s five forces market model (adjusted for the cloud market) [38].
FIGURE 4.5. Dynamic business models (based on [49] extend by influence factors identified by [50]).
FIGURE 4.6. Cloud supply chain (C-SC).
CHAPTER 5: VIRTUAL MACHINES PROVISIONING AND MIGRATION SERVICES
FIGURE 5.1. VM provisioning and migration mind map.
FIGURE 5.2. A layered virtualization technology architecture.
FIGURE 5.3. Virtual machine life cycle.
FIGURE 5.4. Virtual machine provision process.
FIGURE 5.5. Live migration timeline [21].
FIGURE 5.6. Results of migrating a running Web server VM [21].
FIGURE 5.7. A deployment scenario network diagram.
FIGURE 5.8. Adding managed server on the data centre’s management console.
FIGURE 5.9. Select virtualization platform.
FIGURE 5.10. Managed server info and credentials.
FIGURE 5.11. Managed server has been added.
FIGURE 5.12. Provision a virtual machine.
FIGURE 5.13. Configuring virtual machine.
FIGURE 5.14. Provisioned VM ready to be started.
FIGURE 5.15. Provisioned VM started.
FIGURE 5.16. VM booting from the installation CD to start the installation process.
FIGURE 5.17. VM migration.
FIGURE 5.18. Select the destination managed server candidate for migration.
FIGURE 5.19. VM started on the destination server after migration.
FIGURE 5.20. Eucalyptus high-level architecture.
FIGURE 5.21. OpenNebula high-level architecture [14].
FIGURE 5.22. Manjras oft Aneka layered architecture [10].
CHAPTER 6: ON THE MANAGEMENT OF VIRTUAL MACHINES FOR CLOUD INFRASTRUCTURES
FIGURE 6.1. Image management in OpenNebula.
FIGURE 6.2. Networkig model for OpenNebula.
CHAPTER 7: ENHANCING CLOUD COMPUTING ENVIRONMENTS USING A CLUSTER AS A SERVICE
FIGURE 7.1. Exposing resource attributes.
FIGURE 7.2. New WSDL section.
FIGURE 7.3. Publication.
FIGURE 7.4. Matching parameters to attributes.
FIGURE 7.5. Dynamic discovery and selection.
FIGURE 7.6. Complete CaaS system.
FIGURE 7.7. Cluster WSDL.
FIGURE 7.8. CaaS Service design.
FIGURE 7.9. Cluster discovery.
FIGURE 7.10. Job submission.
FIGURE 7.11. Job monitoring.
FIGURE 7.12. Job result collection.
FIGURE 7.13. Web page for cluster specification.
FIGURE 7.14. Web page for showing matching clusters.
FIGURE 7.15. Web page for job specification.
FIGURE 7.16. Web page for monitoring job execution.
FIGURE 7.17. Web page for collecting result files.
FIGURE 7.18. Complete CaaS environment.
FIGURE 7.19. Connector output.
FIGURE 7.20. Updated WSDL element.
FIGURE 7.21. Loaded cluster node element.
FIGURE 7.22. Service match results from dynamic broker.
FIGURE 7.23. The only state element returned.
FIGURE 7.24. Cluster nodes returned from the broker.
FIGURE 7.25. Text file entry from the connector.
FIGURE 7.26. Cluster specification.
FIGURE 7.27. Cluster selection.
FIGURE 7.28. Job specification.
FIGURE 7.29. Job monitoring.
FIGURE 7.30. Result collection.
CHAPTER 8: SECURE DISTRIBUTED DATA STORAGE IN CLOUD COMPUTING
FIGURE 8.1. Illustration of cloud computing principle.
FIGURE 8.2. AWS data processing procedure.
FIGURE 8.3. Security data access procedure.
FIGURE 8.4. Example of a REST request.
FIGURE 8.5. Illustration of Google SDC working flow.
FIGURE 8.6. Illustration of potential integrity problem.
FIGURE 8.7. The system architecture of database outsourcing.
FIGURE 8.8. Protocol for provable data possession [28].
CHAPTER 9: ANEKA—INTEGRATION OF PRIVATE AND PUBLIC CLOUDS
FIGURE 9.1. Aneka framework architecture.
FIGURE 9.2. Aneka resource provisioning over private and public clouds.
FIGURE 9.3. Use case of resource provisioning under Aneka.
FIGURE 9.4. System architecture of the Aneka Resource Provisioning Framework.
FIGURE 9.5. Aneka resource provisioning (cloud bursting) over Amazon EC2.
CHAPTER 10: CometCloud: AN AUTONOMIC CLOUD ENGINE
FIGURE 10.1. The CometCloud architecture for autonomic cloudbursts.
FIGURE 10.2. Example of tuples in CometCloud.
FIGURE 10.3. Examples of mapping tuples from 2D information space to 1D index space [1].
FIGURE 10.4. Autonomic cloudbursts using CometCloud.
FIGURE 10.5. Overview of the operation of autonomic cloudbridging.
FIGURE 10.6. Replication overview in the CometCloud overlay.
FIGURE 10.7. Evaluation of CometCloud primitives on the Rutgers cloud. (a) Average time for out, in, and rd operators for increasing system sizes. (b) Average time for in and rd operations with increasing number of tuples. System size fixed at 4 nodes.
FIGURE 10.8. Evaluation of CometCloud-based applications on Amazon EC2. (a) VaR. (b) Image registration.
FIGURE 10.9. Policy-based autonomic cloudburst using CometCloud. (a) Workload-specific policy. (b) Workload-bounded policy.
FIGURE 10.10. Experimental evaluation of medical image registration using CometCloud. Results were obtained using the scheduling agent. (a) Scheduled number of nodes. (b) Calculated cost per task. (c) Cumulative budget usage over time.
FIGURE 10.11. Experimental evaluation of medical image registration using CometCloud - Comparison of performance and costs with/without autonomic scheduling. (a) Execution time varying the number of nodes of EC2 and TW. (b) Used budget over time varying the number of nodes for EC2 and TW.
CHAPTER 11: T-SYSTEMS’ CLOUD-BASED SOLUTIONS FOR BUSINESS APPLICATIONS
FIGURE 11.1. The route to cloud computing—industrialization of IT.
FIGURE 11.2. Flexibility at all levels is a basic requirement for cloud computing.
FIGURE 11.3. Provision of computing resources.
FIGURE 11.4. Storage resources: backup-integrated, read-only, and archive storage.
FIGURE 11.5. The development of Dynamic Services.
FIGURE 11.6. Flexible ICT provisioning for dynamic markets.
CHAPTER 12: WORKFLOW ENGINE FOR CLOUDS
FIGURE 12.1. Workflow engine in the cloud.
FIGURE 12.2. Architecture of Workflow Management System.
FIGURE 12.3. A deployment of Aneka Enterprise Cloud.
FIGURE 12.4. Aneka Web services interface.
FIGURE 12.5. A workflow utilizing multiple cloud services.
FIGURE 12.6. EMO workflow structure (boxes represent task, arrows represent data-dependencies between tasks).
FIGURE 12.7. A graph that plots the pareto-front obtained after executing EMO for ZTD2 test problem.
FIGURE 12.8. Number of tasks completing in time as the number of compute resources provisioned were increased at runtime.
FIGURE 12.9. Distributed compute resource utilized by Aneka network.
CHAPTER 13: UNDERSTANDING SCIENTIFIC APPLICATIONS FOR CLOUD ENVIRONMENTS
FIGURE 13.1. Cloud taxonomy and application examples: Clouds provide services at different levels (IaaS, PaaS, SaaS). The amount of control available to users and developers decreases with the level of abstraction. According to their deployment model, clouds can be categorized into public and private clouds.
FIGURE 13.2. SAGA MapReduce framework. A master-worker paradigm is used to implement the MapReduce pattern. The diagram shows several different infrastructure options that can be utilized by the application.
FIGURE 13.3. An overview of the SAGA-based Pilot Job: The SAGA Pilot-Job API is currently implemented by three different back-ends: one for grids, one for Condor, and one for clouds.
FIGURE 13.4. Collective usage of grid, Condor, and cloud resources for workload of eight replicas. The experiments showed that if the grid and Condor resource Poseidon has only a light load, no benefits for using additional cloud resources exist. However, the introduction of an additional Condor or grid resource significantly decreases
T
C
.
CHAPTER 14: THE MapReduce PROGRAMMING MODEL AND IMPLEMENTATIONS
FIGURE 14.1. Traditional Data-to-Computing Paradigm versus Computing-to-Data Paradigm [10].
FIGURE 14.2. The Wordcount example.
FIGURE 14.3. MapReduce execution overview [4].
FIGURE 14.4. Organizations using Hadoop to run distributed applications, along with their cluster scale.
FIGURE 14.5. Architecture of Disco [21].
FIGURE 14.6. Architecture of Mapreduce.NET [22].
FIGURE 14.7. MapReduce different implementations.
CHAPTER 15: AN ARCHITECTURE FOR FEDERATED CLOUD COMPUTING
FIGURE 15.1. Model for federated cloud computing: (a) Different cloud providers collaborate by sharing their resources while keeping thick walls in between them; that is, each is an independent autonomous entity. (b) Applications running in this cloud of clouds should be unaware of location; that is, virtual local networks are needed for the inter-application components to communicate. (c) Cloud providers differentiate from each in terms of cost and trust level; for example, while a public cloud maybe cheap, companies will be reluctant to put in there sensitive services.
FIGURE 15.2. Abstraction of an SAP system.
FIGURE 15.3. Sample SAP system deployments. (a) All components run in the same virtual execution environment (represented as rounded rectangles); (b) the large components (CI and DBMS) run each on a dedicated virtual execution environment. The virtual execution environment host refers to the set of components managing the virtual environments.
FIGURE 15.4. The RESERVOIR architecture: major components and interfaces.
FIGURE 15.5. RESERVOIR site: internal representation.
CHAPTER 16: SLA MANAGEMENT IN CLOUD COMPUTING: A SERVICE PROVIDER’S PERSPECTIVE
FIGURE 16.1. Hosting of applications on servers within enterprise’s data centers.
FIGURE 16.2. Dedicated hosting of applications in third party data centers.
FIGURE 16.3. Service consumer and service provider perspective before and after the MSP’s hosting platforms are virtualized and cloud-enabled. (a) Service consumer perspective earlier. (b) Service consumer perspective now. (c) Service provider perspective earlier. (d) Service provider perspective now.
FIGURE 16.4. Shared hosting of applications on virtualized servers within ASP’s data centers.
FIGURE 16.5. General taxonomy of load-balancing algorithms.
FIGURE 16.6. General taxonomy for admission control mechanisms.
FIGURE 16.7. Flowchart of the SLA management in cloud.
FIGURE 16.8. Performance of a multi-tier application for varied CPU allocation.
FIGURE 16.9. Component diagram of policy-based automated management system.
FIGURE 16.10. Importance of optimization in the policy-based management system.
FIGURE 16.11. (a) Initial configuration of the VMs and the PMs at time
t
1
. (b) Configuration resulting from event-based migration of
VM
1
at time
t
1
. (c) Resource requirement situation at time
t
2
>
t
1
. (d) Configuration resulting from “event-based” migration of
VM
4
at time
t
2
>
t
1
. (e) Alternate configuration resulting from optimization-based migration at time
t
2
>
t
1
.
CHAPTER 17: PERFORMANCE PREDICTION FOR HPC ON CLOUDS
FIGURE 17.1. Physical and virtual cluster.
CHAPTER 18: BEST PRACTICES IN ARCHITECTING CLOUD APPLICATIONS IN THE AWS CLOUD
FIGURE 18.1. Amazon Web Services.
FIGURE 18.2. Automated elasticity.
FIGURE 18.3. Decoupling components using Queues.
FIGURE 18.4. Securing your Web application using Amazon EC2 security groups.
FIGURE 18.5. GrepTheWeb Architecture—Zoom Level 1.
FIGURE 18.6. GrepTheWeb Architecture—Zoom Level 2.
FIGURE 18.7. Phases of GrepTheWeb architecture.
FIGURE 18.8. GrepTheWeb Architecture—Zoom Level 3.
FIGURE 18.9. Map reduce operation (in GrepTheWeb).
CHAPTER 19: MASSIVELY MULTIPLAYER ONLINE GAME HOSTING ON CLOUD RESOURCES
FIGURE 19.1. Number of MMORPG players over time.
FIGURE 19.2. The MMOG ecosystem architecture.
FIGURE 19.3. The impact of using different virtualized resources on quality of the resource provisioning under increasing load.
FIGURE 19.4. Variation of under-allocation with image size for different loads.
FIGURE 19.5. Variation of under-allocation with image boot time for different loads.
FIGURE 19.6. Variation of under-allocation with image transfer bandwidth for different loads.
FIGURE 19.7. Variation of under-allocation with virtualization penalty for different loads.
CHAPTER 20: BUILDING CONTENT DELIVERY NETWORKS USING CLOUDS
FIGURE 20.1. Pricing comparison of cloud storage vendors based on usage.
FIGURE 20.2. The MetaCDN architecture.
FIGURE 20.3. Registering storage vendors in the MetaCDN GUI.
FIGURE 20.4. Design of the MetaCDN connectors.
FIGURE 20.5. Entity relationship diagram for the MetaCDN database.
FIGURE 20.6. Storage providers overlaid onto a Google Map view.
FIGURE 20.7. MetaCDN Load Redirector.
CHAPTER 21: RESOURCE CLOUD MASHUPS
FIGURE 21.1. Encapsulated virtual environments.
FIGURE 21.2. Hierarchical scale out in an encapsulated, virtual cloud environment.
FIGURE 21.3. The relationship between IaaS, SaaS, and PaaS during scaling.
CHAPTER 22: ORGANIZATIONAL READINESS AND CHANGE MANAGEMENT IN THE CLOUD AGE
FIGURE 22.1. Deming’s PDCA cycle.
FIGURE 22.2. CROPS framework.
CHAPTER 25: ACHIEVING PRODUCTION READINESS FOR CLOUD SERVICES
FIGURE 25.1. The producer–consumer relationship diagram.
FIGURE 25.2. Perception of quality.
FIGURE 25.3. Cloud service lifecycle.
FIGURE 25.4. Service strategy.
FIGURE 25.5. Service design.
FIGURE 25.6. Service transition.
Cover
Table of Contents
Begin Reading
C1
iii
iv
v
xv
xvi
xvii
xix
xxi
xxii
xxiii
xiv
xxv
1
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
e1
Edited by
Rajkumar Buyya
The University of Melbourne and Manjrasoft Pty Ltd., Australia
James Broberg
The University of Melbourne, Australia
Andrzej Goscinski
Deakin University, Australia
Copyright © 2011 by John Wiley & Sons, Inc. All rights reserved.
Published by John Wiley & Sons, Inc., Hoboken, New Jersey
Published simultaneously in Canada
No part of this publication may be reproduced, stored in a retrieval system, or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning, or otherwise, except as permitted under Section 107 or 108 of the 1976 United States Copyright Act, without either the prior written permission of the Publisher, or authorization through payment of the appropriate per-copy fee to the Copyright Clearance Center, Inc., 222 Rosewood Drive, Danvers, MA 01923, (978) 750-8400, fax (978) 750-4470, or on the web at www.copyright.com. Requests to the Publisher for permission should be addressed to the Permissions Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030, (201) 748-6011, fax (201) 748-6008, or online at http://www.wiley.com/go/permission.
Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose. No warranty may be created or extended by sales representatives or written sales materials. The advice and strategies contained herein may not be suitable for your situation. You should consult with a professional where appropriate. Neither the publisher nor author shall be liable for any loss of profit or any other commercial damages, including but not limited to special, incidental, consequential, or other damages.
For general information on our other products and services or for technical support, please contact our Customer Care Department within the United States at (800) 762-2974, outside the United States at (317) 572-3993 or fax (317) 572-4002.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic formats. For more information about Wiley products, visit our web site at www.wiley.com.
Library of Congress Cataloging-in-Publication Data:
Cloud computing : principles and paradigms / edited by Rajkumar Buyya, James Broberg, Andrzej Goscinski.
p. ; cm.
Includes bibliographical references and index.
ISBN 978-0-470-88799-8 (hardback)
1. Cloud computing. I. Buyya, Rajkumar, 1970– II. Broberg, James. III. Goscinski, Andrzej.
QA76.585.C58 2011
004.67′8—dc22
2010046367
Cloud computing has recently emerged as one of the buzzwords in the ICT industry. Numerous IT vendors are promising to offer computation, storage, and application hosting services and to provide coverage in several continents, offering service-level agreements (SLA)-backed performance and uptime promises for their services. While these “clouds” are the natural evolution of traditional data centers, they are distinguished by exposing resources (computation, data/storage, and applications) as standards-based Web services and following a “utility” pricing model where customers are charged based on their utilization of computational resources, storage, and transfer of data. They offer subscription-based access to infrastructure, platforms, and applications that are popularly referred to as IaaS (Infrastructure as a Service), PaaS (Platform as a Service), and SaaS (Software as a Service). While these emerging services have increased interoperability and usability and reduced the cost of computation, application hosting, and content storage and delivery by several orders of magnitude, there is significant complexity involved in ensuring that applications and services can scale as needed to achieve consistent and reliable operation under peak loads.
Currently, expert developers are required to implement cloud services. Cloud vendors, researchers, and practitioners alike are working to ensure that potential users are educated about the benefits of cloud computing and the best way to harness the full potential of the cloud. However, being a new and popular paradigm, the very definition of cloud computing depends on which computing expert is asked. So, while the realization of true utility computing appears closer than ever, its acceptance is currently restricted to cloud experts due to the perceived complexities of interacting with cloud computing providers.
This book illuminates these issues by introducing the reader with the cloud computing paradigm. The book provides case studies of numerous existing compute, storage, and application cloud services and illustrates capabilities and limitations of current providers of cloud computing services. This allows the reader to understand the mechanisms needed to harness cloud computing in their own respective endeavors. Finally, many open research problems that have arisen from the rapid uptake of cloud computing are detailed. We hope that this motivates the reader to address these in their own future research and development. We believe the book to serve as a reference for larger audience such as systems architects, practitioners, developers, new researchers, and graduate-level students. This book also comes with an associated Web site (hosted at http://www.manjrasoft.com/CloudBook/) containing pointers to advanced on-line resources.
This book contains chapters authored by several leading experts in the field of cloud computing. The book is presented in a coordinated and integrated manner starting with the fundamentals and followed by the technologies that implement them.
The content of the book is organized into six parts:
I. Foundations
II. Infrastructure as a Service (IaaS )
III. Platform and Software as a Service (PaaS/SaaS)
IV. Monitoring and Management
V. Applications
VI. Governance and Case Studies
Part I presents fundamental concepts of cloud computing, charting their evolution from mainframe, cluster, grid, and utility computing. Delivery models such as Infrastructure as a Service, Platform as a Service, and Software as a Service are detailed, as well as deployment models such as Public, Private, and Hybrid Clouds. It also presents models for migrating applications to cloud environments.
Part II covers Infrastructure as a Service (IaaS), from enabling technologies such as virtual machines and virtualized storage, to sophisticated mechanisms for securely storing data in the cloud and managing virtual clusters.
Part III introduces Platform and Software as a Service (PaaS/IaaS), detailing the delivery of cloud hosted software and applications. The design and operation of sophisticated, auto-scaling applications and environments are explored.
Part IV presents monitoring and management mechanisms for cloud computing, which becomes critical as cloud environments become more complex and interoperable. Architectures for federating cloud computing resources are explored, as well as service level agreement (SLA) management and performance prediction.
Part V details some novel applications that have been made possible by the rapid emergence of cloud computing resources. Best practices for architecting cloud applications are covered, describing how to harness the power of loosely coupled cloud resources. The design and execution of applications that leverage cloud resources such as massively multiplayer online game hosting, content delivery and mashups are explored.
Part VI outlines the organizational, structural, regulatory and legal issues that are commonly encountered in cloud computing environments. Details on how companies can successfully prepare and transition to cloud environments are explored, as well as achieving production readiness once such a transition is completed. Data security and legal concerns are explored in detail, as users reconcile moving their sensitive data and computation to cloud computing providers.
Rajkumar Buyya
The University of Melbourne and Manjrasoft Pty Ltd., Australia
James Broberg
The University of Melbourne, Australia
Andrzej Goscinski
Deakin University, Australia
First and foremost, we are grateful to all the contributing authors for their time, effort, and understanding during the preparation of the book.
We thank Professor Albert Zomaya, editor of the Wiley book series on parallel and distributed computing, for his enthusiastic support and guidance during the preparation of book and enabling us to easily navigate through Wiley’s publication process.
We would like to thank members of the book Editorial Advisory Board for their guidance during the preparation of the book. The board members are: Dr. Geng Lin (CISCO Systems, USA), Prof. Manish Parashar (Rutgers: The State University of New Jersey, USA), Dr. Wolfgang Gentzsch (Max-Planck-Gesellschaft, München, Germany), Prof. Omer Rana (Cardiff University, UK), Prof. Hai Jin (Huazhong University of Science and Technology, China), Dr. Simon See (Sun Microsystems, Singapore), Dr. Greg Pfister (IBM, USA (retired)), Prof. Ignacio M. Llorente (Universidad Complutense de Madrid, Spain), Prof. Geoffrey Fox (Indiana University, USA), and Dr. Walfredo Cirne (Google, USA).
All chapters were reviewed and authors have updated their chapters to address review comments. We thank members of the Melbourne CLOUDS Lab for their time and effort in peer reviewing of chapters.
Raj would like to thank his family members, especially Smrithi, Soumya, and Radha Buyya, for their love, understanding, and support during the preparation of the book. James would like to thank his wife, Amy, for her love and support. Andrzej would like to thank his wife, Teresa, for her love and support.
Finally, we would like to thank the staff at Wiley, particularly, Simone Taylor (Senior Editor, Wiley), Michael Christian (Editorial Assistant, Wiley), and S. Nalini (MPS Limited, a Macmillan Company, Chennai, India). They were wonderful to work with!
R.B.
J.B.
A.G.
Matthias Assel, High Performance Computing Center Stuttgart (HLRS), University of Stuttgart, 70550 Stuttgart, Germany
Rocco Aversa, Department of Information Engineering, Second University of Naples, 81031 Aversa (CE), Italy
Sumit Bose, Unisys Research Center, Bangalore, India - 560025
Janine Anthony Bowen, Esq., McKenna Long & Aldridge LLP, Atlanta, GA 30308, USA
David Breitgand, IBM Haifa Research Lab, Haifa University Campus, 31095, Haifa, Israel
James Broberg, Department of Computer Science and Software Engineering, The University of Melbourne, Parkville, Melbourne, VIC 3010, Australia
Michael Brock, School of Information Technology, Deakin University, Geelong, Victoria 3217, Australia
Rajkumar Buyya, Department of Computer Science and Software Engineering, The University of Melbourne, Parkville, Melbourne, VIC 3010, Australia
Haijun Cao, School of Computer Science and Technology, Huazhong University of Science and Technology, Wuhan, 430074, China
Wai-Kit Cheah, Advanced Customer Services, Oracle Corporation (S) Pte Ltd., Singapore 038986
Yu Chen, Department of Electrical and Computer Engineering, State University of New York—Binghamton, Binghamton, NY 13902
Xingchen Chu, Department of Computer Science and Software Engineering, The University of Melbourne, Parkville, Melbourne, VIC 3010, Australia
Beniamino Di Martino, Department of Information Engineering, Second University of Naples, 81031 Aversa (CE), Italy
Tariq Ellahi, SAP Research Belfast, BT3 9DT, Belfast, United Kingdom
Mohamed A. El-Refaey, Arab Academy for Science, Technology and Maritime Transport, College of Computing and Information Technology, Cairo, Egypt
Jun Feng, Department of Electrical and Computer Engineering, State University of New York—Binghamton, Binghamton, NY 13902
Fermín Galán, Telefónica I + D, Emilio Vargas, 6. 28043 Madrid, Spain
Alex Galis, University College London, Department of Electronic and Electrical Engineering, Torrington Place, London WC1E 7JE, United Kingdom
Andrzej Goscinski, School of Information Technology, Deakin University, Geelong, Victoria 3217, Australia
David Hadas, IBM Haifa Research Lab, Haifa University Campus, 31095, Haifa, Israel
Benoit Hudzia, SAP Research Belfast, BT3 9DT, Belfast, United Kingdom
Shadi Ibrahim, School of Computer Science and Technology, Huazhong University of Science and Technology, Wuhan, 430074, China
Alexandru Iosup, Electrical Engineering, Mathematics and Computer Science Department, Delft University of Technology, 2628 CD, Delft, The Netherlands
Shantenu Jha, Center for Computation and Technology and Department of Computer Science, Louisiana State University, Baton Rouge, LA 70803
Hai Jin, School of Computer Science and Technology, Huazhong University of Science and Technology, Wuhan, 430074, China
Dileban Karunamoorthy, Department of Computer Science and Software Engineering, The University of Melbourne, Parkville, Melbourne, VIC 3010, Australia
Henry Kasim, HPC and Cloud Computing Center, Oracle Corporation (S) Pte Ltd, #18-01 Suntec Tower Four, Singapore 038986
Daniel S. Katz, Computation Institute, University of Chicago, Chicago, Illinois 60637
Hyunjoo Kim, Department of Electrical and Computer Engineering, Rutgers, The State University of New Jersey, New Brunswick, NJ
Alexander Kipp, High Performance Computing Center Stuttgart (HLRS), University of Stuttgart, 70550 Stuttgart, Germany
Wei-Shinn Ku, Department of Computer Science and Software Engineering, Auburn University, AL 36849
Robert Lam, School of Information and Communication Technologies SAIT Polytechnic, Calgary, Canada T2M 0L4
Lars Larsson, Department of Computing Science, University Umea, Sweden
Eliezer Levy, SAP Research SRC Ra’anana, Ra’anana 43665; Israel
Hui Li, SAP Research Karlsruhe, Vincenz-Priessnitz-Strasse, 176131 Karlsruhe, Germany
Maik A. Lindner, SAP Research Belfast, BT3 9DT, Belfast, United Kingdom
Pu Liu, IBM Endicott Center, New York, NY
Ignacio M. Llorente, Distributed Systems Architecture Research Group, Departmento de Arquitectura de Computadores y Automática, Facultad de Informática, Universidad Complutense de Madrid, 28040 Madrid, Spain
Andre Luckow, Center for Computation and Technology, Louisiana State University, Baton Rouge, LA, 70803
Ganesan Malaiyandisamy, SETLabs, Infosys Technologies Limited, Electronics City, Bangalore, India, 560100
Alessandro Maraschini, ElsagDatamat spa, Rome, Italy
Philippe Massonet, CETIC, B-6041 Charleroi, Belgium
Michael Mattess, Department of Computer Science and Software Engineering, The University of Melbourne, Parkville, Melbourne, VIC 3010, Australia
Andre Merzky, Center for Computation and Technology, Louisiana State University, Baton Rouge, LA, 70803
T. S. Mohan, Infosys Technologies Limited, Electronics City, Bangalore, India, 560100
RubÉn S. Montero, Distributed Systems Architecture Research Group, Departmento de Arquitectura de Computadores, y Automática, Facultad de Informatica, Universidad Complutense de Madrid, 28040 Madrid, Spain
Susan Morrow, Avoco Secure, London W1S 2LQ, United Kingdom
Sridhar Murthy, Infosys Technologies Limited, Electronics City, Bangalore, India, 560100
Vlad Nae, Institute of Computer Science, University of Innsbruck, Technikerstraβe 21a, A-6020 Innsbruck, Austria
Kenneth Nagin, IBM Haifa Research Lab, Haifa University Campus, 31095, Haifa, Israel
Suraj Pandey, Department of Computer Science and Software Engineering, The University of Melbourne, Parkville, Melbourne, VIC 3010, Australia
Manish Parashar, Department of Electrical and Computer Engineering, Rutgers, The State University of New Jersey, New Jersey, USA.
Anjaneyulu Pasala, SETLabs, Infosys Technologies Limited, Electronics City, Bangalore, India, 560100
Michael Pauly, T-Systems, Aachen, Germany
Radu Prodan, Institute of Computer Science, University of Innsbruck, A-6020 Innsbruck, Austria
Li Qi, School of Computer Science and Technology, Huazhong University of Science and Technology, Wuhan, 430074, China
Dheepak R A, SETLabs, Infosys Technologies Limited, Electronics City, Bangalore, India, 560100
Pethuru Raj, Robert Bosch India, Bangalore 560068, India
Massimiliano Rak, Department of Information Engineering, Second University of Naples, 81031 Aversa (CE), Italy
Philip Robinson, SAP Research Belfast, BT3 9DT, Belfast, United Kingdom
Benny Rochwerger, IBM Haifa Research Lab, Haifa University Campus, 31095, Haifa, Israel
Lutz Schubert, High Performance Computing Center Stuttgart (HLRS), University of Stuttgart, 70550 Stuttgart, Germany
Xuanhua Shi, School of Computer Science and Technology, Huazhong University of Science and Technology, Wuhan, 430074, China
Borja Sotomayor, Department of Computer Science, University of Chicago, Chicago, IL
Katerina Stamou, Department of Computer Science, Louisiana State University, Baton Rouge, LA, 70803
Zhou Su, Department of Computer Science, Graduate School of Science and Engineering, Waseda University, Japan
Jinesh Varia, Amazon Web Services, Seattle, WA 98109
Constantino Vázquez, Facultad de Informática, Universidad Complutense de Madrid, 28040 Madrid, Spain
Christian Vecchiola, Department of Computer Science and Software Engineering, The University of Melbourne, Parkville, Melbourne, VIC 3010, Australia
Salvatore Venticinque, Department of Information Engineering, Second University of Naples, 81031 Aversa (CE), Italy
Umberto Villano, Department of Engineering, University of Sannio, 82100 Benevento, Italy
Massimo Villari, Department. of Mathematics Faculty of Engineering, University of Messina, 98166 Messina, Italy
William Voorsluys, Department of Computer Science and Software Engineering, The University of Melbourne, Parkville, Melbourne, VIC 3010, Australia
Stefan Wesner, High Performance Computing Center Stuttgart (HLRS), University of Stuttgart, 70550 Stuttgart, Germany
Yaron Wolfsthal, IBM Haifa Research Lab, Haifa University Campus, 31095, Haifa, Israel
Song Wu, School of Computer Science and Technology, Huazhong University of Science and Technology, Wuhan, 430074, China
WILLIAM VOORSLUYS
JAMES BROBERG
RAJKUMAR BUYYA
When plugging an electric appliance into an outlet, we care neither how electric power is generated nor how it gets to that outlet. This is possible because electricity is virtualized; that is, it is readily available from a wall socket that hides power generation stations and a huge distribution grid. When extended to information technologies, this concept means delivering useful functions while hiding how their internals work. Computing itself, to be considered fully virtualized, must allow computers to be built from distributed components such as processing, storage, data, and software resources [1].
Technologies such as cluster, grid, and now, cloud computing, have all aimed at allowing access to large amounts of computing power in a fully virtualized manner, by aggregating resources and offering a single system view. In addition, an important aim of these technologies has been delivering computing as a utility. Utility computing describes a business model for on-demand delivery of computing power; consumers pay providers based on usage (“pay-as-you-go”), similar to the way in which we currently obtain services from traditional public utility services such as water, electricity, gas, and telephony.
Cloud computing has been coined as an umbrella term to describe a category of sophisticated on-demand computing services initially offered by commercial providers, such as Amazon, Google, and Microsoft. It denotes a model on which a computing infrastructure is viewed as a “cloud,” from which businesses and individuals access applications from anywhere in the world on demand [2]. The main principle behind this model is offering computing, storage, and software “as a service.”
Many practitioners in the commercial and academic spheres have attempted to define exactly what “cloud computing” is and what unique characteristics it presents. Buyya et al. [2] have defined it as follows: “Cloud is a parallel and distributed computing system consisting of a collection of inter-connected and virtualised computers that are dynamically provisioned and presented as one or more unified computing resources based on service-level agreements (SLA) established through negotiation between the service provider and consumers.”
Vaquero et al. [3] have stated “clouds are a large pool of easily usable and accessible virtualized resources (such as hardware, development platforms and/or services). These resources can be dynamically reconfigured to adjust to a variable load (scale), allowing also for an optimum resource utilization. This pool of resources is typically exploited by a pay-per-use model in which guarantees are offered by the Infrastructure Provider by means of customized Service Level Agreements.”
A recent McKinsey and Co. report [4] claims that “Clouds are hardware-based services offering compute, network, and storage capacity where: Hardware management is highly abstracted from the buyer, buyers incur infrastructure costs as variable OPEX, and infrastructure capacity is highly elastic.”
A report from the University of California Berkeley [5] summarized the key characteristics of cloud computing as: “(1) the illusion of infinite computing resources; (2) the elimination of an up-front commitment by cloud users; and (3) the ability to pay for use . . . as needed . . .”
The National Institute of Standards and Technology (NIST) [6] characterizes cloud computing as “. . . a pay-per-use model for enabling available, convenient, on-demand network access to a shared pool of configurable computing resources (e.g. networks, servers, storage, applications, services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.”
In a more generic definition, Armbrust et al. [5] define cloud as the “data center hardware and software that provide services.” Similarly, Sotomayor et al. [7] point out that “cloud” is more often used to refer to the IT infrastructure deployed on an Infrastructure as a Service provider data center.
While there are countless other definitions, there seems to be common characteristics between the most notable ones listed above, which a cloud should have: (i) pay-per-use (no ongoing commitment, utility prices); (ii) elastic capacity and the illusion of infinite resources; (iii) self-service interface; and (iv) resources that are abstracted or virtualised.
In addition to raw computing and storage, cloud computing providers usually offer a broad range of software services. They also include APIs and development tools that allow developers to build seamlessly scalable applications upon their services. The ultimate goal is allowing customers to run their everyday IT infrastructure “in the cloud.”
A lot of hype has surrounded the cloud computing area in its infancy, often considered the most significant switch in the IT world since the advent of the Internet [8]. In midst of such hype, a great deal of confusion arises when trying to define what cloud computing is and which computing infrastructures can be termed as “clouds.”
Indeed, the long-held dream of delivering computing as a utility has been realized with the advent of cloud computing [5]. However, over the years, several technologies have matured and significantly contributed to make cloud computing viable. In this direction, this introduction tracks the roots of cloud computing by surveying the main technological advancements that significantly contributed to the advent of this emerging field. It also explains concepts and developments by categorizing and comparing the most relevant R&D efforts in cloud computing, especially public clouds, management tools, and development frameworks. The most significant practical cloud computing realizations are listed, with special focus on architectural aspects and innovative technical features.
We can track the roots of clouds computing by observing the advancement of several technologies, especially in hardware (virtualization, multi-core chips), Internet technologies (Web services, service-oriented architectures, Web 2.0), distributed computing (clusters, grids), and systems management (autonomic computing, data center automation). Figure 1.1 shows the convergence of technology fields that significantly advanced and contributed to the advent of cloud computing.
FIGURE 1.1. Convergence of various advances leading to the advent of cloud computing.
Some of these technologies have been tagged as hype in their early stages of development; however, they later received significant attention from academia and were sanctioned by major industry players. Consequently, a specification and standardization process followed, leading to maturity and wide adoption. The emergence of cloud computing itself is closely linked to the maturity of such technologies. We present a closer look at the technologies that form the base of cloud computing, with the aim of providing a clearer picture of the cloud ecosystem as a whole.
We are currently experiencing a switch in the IT world, from in-house generated computing power into utility-supplied computing resources delivered over the Internet as Web services. This trend is similar to what occurred about a century ago when factories, which used to generate their own electric power, realized that it is was cheaper just plugging their machines into the newly formed electric power grid [8].
Computing delivered as a utility can be defined as “on demand delivery of infrastructure, applications, and business processes in a security-rich, shared, scalable, and based computer environment over the Internet for a fee” [9]. This model brings benefits to both consumers and providers of IT services. Consumers can attain reduction on IT-related costs by choosing to obtain cheaper services from external providers as opposed to heavily investing on IT infrastructure and personnel hiring. The “on-demand” component of this model allows consumers to adapt their IT usage to rapidly increasing or unpredictable computing needs.
Providers of IT services achieve better operational costs; hardware and software infrastructures are built to provide multiple solutions and serve many users, thus increasing efficiency and ultimately leading to faster return on investment (ROI) as well as lower total cost of ownership (TCO) [10].
Several technologies have in some way aimed at turning the utility computing concept into reality. In the 1970s, companies who offered common data processing tasks, such as payroll automation, operated time-shared mainframes as utilities, which could serve dozens of applications and often operated close to 100% of their capacity. In fact, mainframes had to operate at very high utilization rates simply because they were very expensive and costs should be justified by efficient usage [8].
The mainframe era collapsed with the advent of fast and inexpensive microprocessors and IT data centers moved to collections of commodity servers. Apart from its clear advantages, this new model inevitably led to isolation of workload into dedicated servers, mainly due to incompatibilities between software stacks and operating systems [11]. In addition, the unavailability of efficient computer networks meant that IT infrastructure should be hosted in proximity to where it would be consumed. Altogether, these facts have prevented the utility computing reality of taking place on modern computer systems.
Similar to old electricity generation stations, which used to power individual factories, computing servers and desktop computers in a modern organization are often underutilized, since IT infrastructure is configured to handle theoretical demand peaks. In addition, in the early stages of electricity generation, electric current could not travel long distances without significant voltage losses. However, new paradigms emerged culminating on transmission systems able to make electricity available hundreds of kilometers far off from where it is generated. Likewise, the advent of increasingly fast fiber-optics networks has relit the fire, and new technologies for enabling sharing of computing power over great distances have appeared.
These facts reveal the potential of delivering computing services with the speed and reliability that businesses enjoy with their local machines. The benefits of economies of scale and high utilization allow providers to offer computing services for a fraction of what it costs for a typical company that generates its own computing power [8].
The emergence of Web services (WS) open standards has significantly contributed to advances in the domain of software integration [12]. Web services can glue together applications running on different messaging product platforms, enabling information from one application to be made available to others, and enabling internal applications to be made available over the Internet.
Over the years a rich WS software stack has been specified and standardized, resulting in a multitude of technologies to describe, compose, and orchestrate services, package and transport messages between services, publish and discover services, represent quality of service (QoS) parameters, and ensure security in service access [13].
WS standards have been created on top of existing ubiquitous technologies such as HTTP and XML, thus providing a common mechanism for delivering services, making them ideal for implementing a service-oriented architecture (SOA). The purpose of a SOA is to address requirements of loosely coupled, standards-based, and protocol-independent distributed computing. In a SOA, software resources are packaged as “services,” which are well-defined, self-contained modules that provide standard business functionality and are independent of the state or context of other services. Services are described in a standard definition language and have a published interface [12].
The maturity of WS has enabled the creation of powerful services that can be accessed on-demand, in a uniform way. While some WS are published with the intent of serving end-user applications, their true power resides in its interface being accessible by other services. An enterprise application that follows the SOA paradigm is a collection of services that together perform complex business logic [12].
This concept of gluing services initially focused on the enterprise Web, but gained space in the consumer realm as well, especially with the advent of Web 2.0. In the consumer Web, information and services may be programmatically aggregated, acting as building blocks of complex compositions, called service mashups. Many service providers, such as Amazon, del.icio.us, Facebook, and Google, make their service APIs publicly accessible using standard protocols such as SOAP and REST [14]. Consequently, one can put an idea of a fully functional Web application into practice just by gluing pieces with few lines of code.
In the Software as a Service (SaaS) domain, cloud applications can be built as compositions of other services from the same or different providers. Services such user authentication, e-mail, payroll management, and calendars are examples of building blocks that can be reused and combined in a business solution in case a single, ready-made system does not provide all those features. Many building blocks and solutions are now available in public marketplaces. For example, Programmable Web1 is a public repository of service APIs and mashups currently listing thousands of APIs and mashups. Popular APIs such as Google Maps, Flickr, YouTube, Amazon eCommerce, and Twitter, when combined, produce a variety of interesting solutions, from finding video game retailers to weather maps. Similarly, Salesforce.com’s offers AppExchange,2 which enables the sharing of solutions developed by third-party developers on top of Salesforce.com components.
