image

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

image

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 I

FOUNDATIONS