Cloud Computing -  - E-Book

Cloud Computing E-Book

0,0
127,99 €

-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 1113

Veröffentlichungsjahr: 2010

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



Table of Contents

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

List of Tables

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

List of Illustrations

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.

Guide

Cover

Table of Contents

Begin Reading

Pages

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

CLOUD COMPUTING

Principles and Paradigms

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

PREFACE

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.

Organization of the Book

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

ACKNOWLEDGMENTS

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.

CONTRIBUTORS

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

PART IFOUNDATIONS

CHAPTER 1INTRODUCTION TO CLOUD COMPUTING

WILLIAM VOORSLUYS

JAMES BROBERG

RAJKUMAR BUYYA

1.1 CLOUD COMPUTING IN A NUTSHELL

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.

1.2 ROOTS OF CLOUD COMPUTING

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.

1.2.1 From Mainframes to Clouds

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].

1.2.2 SOA, Web Services, Web 2.0, and Mashups

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.

1.2.3 Grid Computing