CONTENTS
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
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
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