Cloud Computing: Theory and Practice (Paperback)

Dan C. Marinescu





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.


1 Introduction

1.1 Network-centric computing and network-centric content
1.2 Peer-to-peer systems
1.3 Cloud computing -an old idea whose time has come
1.4 Cloud computing delivery models and services
1.5 Ethical issues in cloud computing
1.6 Cloud vulnerabilities
1.7 Major challenges faced by cloud computing
1.8 Further readings
1.9 History notes
1.10 Exercises and Problems

2 Parallel and Distributed Systems

2.1 Parallel computing
2.2 Parallel computer architecture
2.3 Distributed systems
2.4 Global state of a process group
2.5 Communication protocols and process coordination
2.6 Logical clocks
2.7 Message delivery rules; causal delivery
2.8 Runs and cuts; causal history
2.9 Concurrency
2.10 Atomic actions
2.11 Consensus protocols
2.12 Modeling concurrency with Petri Nets
2.13 Enforced modularity; the client-server paradigm
2.14 Further readings
2.15 History notes
2.16 Exercises and Problems

3 Cloud Infrastructure

3.1 Cloud computing at Amazon
3.2 Cloud computing, the Google perspective
3.3 Microsoft Windows Azure and Online Services
3.4 Open-source software platforms for private clouds
3.5 Cloud storage diversity and vendorlock-in
3.6 Cloud computing interoperability; the Intercloud
3.7 Service level agreements and compliance level agreements
3.8 Responsibility sharing between user and cloud service provider
3.9 User experience
3.10 Software licensing
3.11 Energy use and ecological impact of large-scale data centers
3.12 Further readings
3.13 History notes

4 Cloud Computing: Applications and Paradigms

4.1 Challenges for cloud computing
4.2 Existing cloud applications and new application opportunities
4.3 Architectural styles for cloud applications
4.4 Workflows coordination of multiple activities
4.5 Coordination based on a state machine model -the Zoo Keeper
4.6 The Map Reduce programming model
4.7 Apache Hadoop
4.8 A case study: the GrepTheWeb application
4.9 Clouds for science and engineering
4.10 High performance computing on a cloud
4.11 Cloud computing for biology research
4.12 Social computing, digital content, and cloud computing
4.13 Further readings
4.14 Exercises and Problems

5 Cloud Resource Virtualization

5.1 Virtualization
5.2 Layering and virtualization
5.3 Virtual machine monitors
5.4 Virtual machines
5.5 Performance and security isolation
5.6 Full virtualization and paravirtualization
5.7 Hardware support for virtualization
5.8 Case study: Xen -a VMM based on paravirtualization
5.9 Optimization of network virtualization in Xen 2.0
5.10 vBlades -paravirtualization targeting a x86-64 Itanium processor
5.11 A performance comparison of virtual machines
5.12 Virtual machine security
5.13 The darker side of virtualization
5.14 Software fault isolation
5.15 Further readings
5.16 History notes
5.17 Exercises and Problems

6 Cloud Resource Management and Scheduling

6.1 Policies and mechanisms for resource management
6.2 Applications of control theory to task scheduling on a cloud
6.3 Stability of a two-level resource allocation architecture
6.4 Feedback control based on dynamic thresholds
6.5 Coordination of specialized autonomic performance managers
6.6 A utility-based model for cloud-based web services
6.7 Resource bundling; combinatorial auctions for cloud
6.8 Scheduling algorithms for computing clouds