You are previewing Cloud Computing.
O'Reilly logo
Cloud Computing

Book Description

Cloud Computing: Theory and Practice provides students and IT professionals with an in-depth analysis of the cloud from the ground up. Beginning with a discussion of parallel computing and architectures and distributed systems, the book turns to contemporary cloud infrastructures, how they are being deployed at leading companies such as Amazon, Google and Apple, and how they can be applied in fields such as healthcare, banking and science. The volume also examines how to successfully deploy a cloud application across the enterprise using virtualization, resource management and the right amount of networking support, including content delivery networks and storage area networks. Developers will find a complete introduction to application development provided on a variety of platforms.



  • Learn about recent trends in cloud computing in critical areas such as: resource management, security, energy consumption, ethics, and complex systems
  • Get a detailed hands-on set of practical recipes that help simplify the deployment of a cloud based system for practical use of computing clouds along with an in-depth discussion of several projects
  • Understand the evolution of cloud computing and why the cloud computing paradigm has a better chance to succeed than previous efforts in large-scale distributed computing

Table of Contents

  1. Cover image
  2. Title page
  3. Table of Contents
  4. Copyright
  5. Dedication
  6. Preface
    1. Supplemental Materials
  7. Foreword
  8. Chapter 1. Introduction
    1. 1.1 Network-centric computing and network-centric content
    2. 1.2 Peer-to-peer systems
    3. 1.3 Cloud computing: an old idea whose time has come
    4. 1.4 Cloud computing delivery models and services
    5. 1.5 Ethical issues in cloud computing
    6. 1.6 Cloud vulnerabilities
    7. 1.7 Major challenges faced by cloud computing
    8. 1.8 Further reading
    9. 1.9 History notes
    10. 1.10 Exercises and problems
    11. References
  9. Chapter 2. Parallel and Distributed Systems
    1. 2.1 Parallel computing
    2. 2.2 Parallel computer architecture
    3. 2.3 Distributed systems
    4. 2.4 Global state of a process group
    5. 2.5 Communication protocols and process coordination
    6. 2.6 Logical clocks
    7. 2.7 Message delivery rules; causal delivery
    8. 2.8 Runs and cuts; causal history
    9. 2.9 Concurrency
    10. 2.10 Atomic actions
    11. 2.11 Consensus protocols
    12. 2.12 Modeling concurrency with Petri nets
    13. 2.13 Enforced modularity: the client-server paradigm
    14. 2.14 Further reading
    15. 2.15 History notes
    16. 2.16 Exercises and problems
    17. References
  10. Chapter 3. Cloud Infrastructure
    1. 3.1 Cloud computing at Amazon
    2. 3.2 Cloud computing: the Google perspective
    3. 3.3 Microsoft Windows Azure and online services
    4. 3.4 Open-source software platforms for private clouds
    5. 3.5 Cloud storage diversity and vendor lock-in
    6. 3.6 Cloud computing interoperability the intercloud
    7. 3.7 Energy use and ecological impact of large-scale data centers
    8. 3.8 Service- and compliance-level agreements
    9. 3.9 Responsibility sharing between user and cloud service provider
    10. 3.10 User experience
    11. 3.11 Software licensing
    12. 3.12 Further readings
    13. 3.13 History notes
    14. 3.14 Exercises and problems
    15. References
  11. Chapter 4. Cloud Computing: Applications and Paradigms
    1. 4.1 Challenges for cloud computing
    2. 4.2 Existing cloud applications and new application opportunities
    3. 4.3 Architectural styles for cloud applications
    4. 4.4 Workflows: Coordination of multiple activities
    5. 4.5 Coordination based on a state machine model: The ZooKeeper
    6. 4.6 The MapReduce programming model
    7. 4.7 A case study: The GrepTheWeb application
    8. 4.8 Clouds for science and engineering
    9. 4.9 High-performance computing on a cloud
    10. 4.10 Cloud computing for biology research
    11. 4.11 Social computing, digital content, and cloud computing
    12. 4.12 Further reading
    13. 4.13 Exercises and Problems
    14. References
  12. Chapter 5. Cloud Resource Virtualization
    1. 5.1 Virtualization
    2. 5.2 Layering and virtualization
    3. 5.3 Virtual machine monitors
    4. 5.4 Virtual machines
    5. 5.5 Performance and security isolation
    6. 5.6 Full virtualization and paravirtualization
    7. 5.7 Hardware support for virtualization
    8. 5.8 Case study: Xen, a VMM based on paravirtualization
    9. 5.9 Optimization of network virtualization in Xen 2.0
    10. 5.10 vBlades: paravirtualization targeting an x86-64 Itanium processor
    11. 5.11 A performance comparison of virtual machines
    12. 5.12 The darker side of virtualization
    13. 5.13 Software fault isolation
    14. 5.14 Further reading
    15. 5.15 History notes
    16. 5.16 Exercises and problems
    17. References
  13. Chapter 6. Cloud Resource Management and Scheduling
    1. 6.1 Policies and mechanisms for resource management
    2. 6.2 Applications of control theory to task scheduling on a cloud
    3. 6.3 Stability of a two-level resource allocation architecture
    4. 6.4 Feedback control based on dynamic thresholds
    5. 6.5 Coordination of specialized autonomic performance managers
    6. 6.6 A utility-based model for cloud-based Web services
    7. 6.7 Resource bundling: Combinatorial auctions for cloud resources
    8. 6.8 Scheduling algorithms for computing clouds
    9. 6.9 Fair queuing
    10. 6.10 Start-time fair queuing
    11. 6.11 Borrowed virtual time
    12. 6.12 Cloud scheduling subject to deadlines
    13. 6.13 Scheduling MapReduce applications subject to deadlines
    14. 6.14 Resource management and dynamic application scaling
    15. 6.15 Further reading
    16. 6.16 Exercises and problems
    17. References
  14. Chapter 7. Networking Support
    1. 7.1 Packet-switched networks
    2. 7.2 The Internet
    3. 7.3 Internet migration to IPv6
    4. 7.4 The transformation of the Internet
    5. 7.5 Web access and the TCP congestion control window
    6. 7.6 Network resource management
    7. 7.7 Interconnection networks for computer clouds
    8. 7.8 Storage area networks
    9. 7.9 Content delivery networks
    10. 7.10 Overlay networks and small-world networks
    11. 7.11 Scale-free networks
    12. 7.12 Epidemic algorithms
    13. 7.13 Further reading
    14. 7.14 History notes
    15. 7.15 Exercises and problems
    16. References
  15. Chapter 8. Storage Systems
    1. 8.1 The evolution of storage technology
    2. 8.2 Storage models, file systems, and databases
    3. 8.3 Distributed file systems: The precursors
    4. 8.4 General Parallel File System
    5. 8.5 Google File System
    6. 8.6 Apache Hadoop
    7. 8.7 Locks and Chubby: A locking service
    8. 8.8 Transaction processing and NoSQL databases
    9. 8.9 BigTable
    10. 8.10 Megastore
    11. 8.11 History notes
    12. 8.12 Further reading
    13. 8.13 Exercises and problems
    14. References
  16. Chapter 9. Cloud Security
    1. 9.1 Cloud security risks
    2. 9.2 Security: The top concern for cloud users
    3. 9.3 Privacy and privacy impact assessment
    4. 9.4 Trust
    5. 9.5 Operating system security
    6. 9.6 Virtual machine security
    7. 9.7 Security of virtualization
    8. 9.8 Security risks posed by shared images
    9. 9.9 Security risks posed by a management OS
    10. 9.10 Xoar: Breaking the monolithic design of the TCB
    11. 9.11 A trusted virtual machine monitor
    12. 9.12 Further reading
    13. 9.13 Exercises and problems
    14. References
  17. Chapter 10. Complex Systems and Self-Organization
    1. 10.1 Complex systems
    2. 10.2 Abstraction and physical reality
    3. 10.3 Quantifying complexity
    4. 10.4 Emergence and self-organization
    5. 10.5 Composability bounds and scalability
    6. 10.6 Modularity, layering, and hierarchy
    7. 10.7 More on the complexity of computing and communication systems
    8. 10.8 Systems of systems: Challenges and solutions
    9. 10.9 Further reading
    10. 10.10 Exercises and problems
    11. References
  18. Chapter 11. Cloud Application Development
    1. 11.1 Amazon Web Services: EC2 instances
    2. 11.2 Connecting clients to cloud instances through firewalls
    3. 11.3 Security rules for application and transport layer protocols in EC2
    4. 11.4 How to launch an EC2 Linux instance and connect to it
    5. 11.5 How to use S3 in Java
    6. 11.6 How to manage SQS services in C#
    7. 11.7 How to install the Simple Notification Service on Ubuntu 10.04
    8. 11.8 How to create an EC2 Placement Group and use MPI
    9. 11.9 How to install Hadoop on Eclipse on a Windows system
    10. 11.10 Cloud-based simulation of a distributed trust algorithm
    11. 11.11 A trust management service
    12. 11.12 A cloud service for adaptive data streaming
    13. 11.13 Cloud-based optimal FPGA synthesis
    14. 11.14 Exercises and problems
    15. References
  19. Literature
  20. Glossary
  21. Index