
- •Cloud Computing
- •Foreword
- •Preface
- •Introduction
- •Expected Audience
- •Book Overview
- •Part 1: Cloud Base
- •Part 2: Cloud Seeding
- •Part 3: Cloud Breaks
- •Part 4: Cloud Feedback
- •Contents
- •1.1 Introduction
- •1.1.1 Cloud Services and Enabling Technologies
- •1.2 Virtualization Technology
- •1.2.1 Virtual Machines
- •1.2.2 Virtualization Platforms
- •1.2.3 Virtual Infrastructure Management
- •1.2.4 Cloud Infrastructure Manager
- •1.3 The MapReduce System
- •1.3.1 Hadoop MapReduce Overview
- •1.4 Web Services
- •1.4.1 RPC (Remote Procedure Call)
- •1.4.2 SOA (Service-Oriented Architecture)
- •1.4.3 REST (Representative State Transfer)
- •1.4.4 Mashup
- •1.4.5 Web Services in Practice
- •1.5 Conclusions
- •References
- •2.1 Introduction
- •2.2 Background and Related Work
- •2.3 Taxonomy of Cloud Computing
- •2.3.1 Cloud Architecture
- •2.3.1.1 Services and Modes of Cloud Computing
- •Software-as-a-Service (SaaS)
- •Platform-as-a-Service (PaaS)
- •Hardware-as-a-Service (HaaS)
- •Infrastructure-as-a-Service (IaaS)
- •2.3.2 Virtualization Management
- •2.3.3 Core Services
- •2.3.3.1 Discovery and Replication
- •2.3.3.2 Load Balancing
- •2.3.3.3 Resource Management
- •2.3.4 Data Governance
- •2.3.4.1 Interoperability
- •2.3.4.2 Data Migration
- •2.3.5 Management Services
- •2.3.5.1 Deployment and Configuration
- •2.3.5.2 Monitoring and Reporting
- •2.3.5.3 Service-Level Agreements (SLAs) Management
- •2.3.5.4 Metering and Billing
- •2.3.5.5 Provisioning
- •2.3.6 Security
- •2.3.6.1 Encryption/Decryption
- •2.3.6.2 Privacy and Federated Identity
- •2.3.6.3 Authorization and Authentication
- •2.3.7 Fault Tolerance
- •2.4 Classification and Comparison between Cloud Computing Ecosystems
- •2.5 Findings
- •2.5.2 Cloud Computing PaaS and SaaS Provider
- •2.5.3 Open Source Based Cloud Computing Services
- •2.6 Comments on Issues and Opportunities
- •2.7 Conclusions
- •References
- •3.1 Introduction
- •3.2 Scientific Workflows and e-Science
- •3.2.1 Scientific Workflows
- •3.2.2 Scientific Workflow Management Systems
- •3.2.3 Important Aspects of In Silico Experiments
- •3.3 A Taxonomy for Cloud Computing
- •3.3.1 Business Model
- •3.3.2 Privacy
- •3.3.3 Pricing
- •3.3.4 Architecture
- •3.3.5 Technology Infrastructure
- •3.3.6 Access
- •3.3.7 Standards
- •3.3.8 Orientation
- •3.5 Taxonomies for Cloud Computing
- •3.6 Conclusions and Final Remarks
- •References
- •4.1 Introduction
- •4.2 Cloud and Grid: A Comparison
- •4.2.1 A Retrospective View
- •4.2.2 Comparison from the Viewpoint of System
- •4.2.3 Comparison from the Viewpoint of Users
- •4.2.4 A Summary
- •4.3 Examining Cloud Computing from the CSCW Perspective
- •4.3.1 CSCW Findings
- •4.3.2 The Anatomy of Cloud Computing
- •4.3.2.1 Security and Privacy
- •4.3.2.2 Data and/or Vendor Lock-In
- •4.3.2.3 Service Availability/Reliability
- •4.4 Conclusions
- •References
- •5.1 Overview – Cloud Standards – What and Why?
- •5.2 Deep Dive: Interoperability Standards
- •5.2.1 Purpose, Expectations and Challenges
- •5.2.2 Initiatives – Focus, Sponsors and Status
- •5.2.3 Market Adoption
- •5.2.4 Gaps/Areas of Improvement
- •5.3 Deep Dive: Security Standards
- •5.3.1 Purpose, Expectations and Challenges
- •5.3.2 Initiatives – Focus, Sponsors and Status
- •5.3.3 Market Adoption
- •5.3.4 Gaps/Areas of Improvement
- •5.4 Deep Dive: Portability Standards
- •5.4.1 Purpose, Expectations and Challenges
- •5.4.2 Initiatives – Focus, Sponsors and Status
- •5.4.3 Market Adoption
- •5.4.4 Gaps/Areas of Improvement
- •5.5.1 Purpose, Expectations and Challenges
- •5.5.2 Initiatives – Focus, Sponsors and Status
- •5.5.3 Market Adoption
- •5.5.4 Gaps/Areas of Improvement
- •5.6 Deep Dive: Other Key Standards
- •5.6.1 Initiatives – Focus, Sponsors and Status
- •5.7 Closing Notes
- •References
- •6.1 Introduction and Motivation
- •6.2 Cloud@Home Overview
- •6.2.1 Issues, Challenges, and Open Problems
- •6.2.2 Basic Architecture
- •6.2.2.1 Software Environment
- •6.2.2.2 Software Infrastructure
- •6.2.2.3 Software Kernel
- •6.2.2.4 Firmware/Hardware
- •6.2.3 Application Scenarios
- •6.3 Cloud@Home Core Structure
- •6.3.1 Management Subsystem
- •6.3.2 Resource Subsystem
- •6.4 Conclusions
- •References
- •7.1 Introduction
- •7.2 MapReduce
- •7.3 P2P-MapReduce
- •7.3.1 Architecture
- •7.3.2 Implementation
- •7.3.2.1 Basic Mechanisms
- •Resource Discovery
- •Network Maintenance
- •Job Submission and Failure Recovery
- •7.3.2.2 State Diagram and Software Modules
- •7.3.3 Evaluation
- •7.4 Conclusions
- •References
- •8.1 Introduction
- •8.2 The Cloud Evolution
- •8.3 Improved Network Support for Cloud Computing
- •8.3.1 Why the Internet is Not Enough?
- •8.3.2 Transparent Optical Networks for Cloud Applications: The Dedicated Bandwidth Paradigm
- •8.4 Architecture and Implementation Details
- •8.4.1 Traffic Management and Control Plane Facilities
- •8.4.2 Service Plane and Interfaces
- •8.4.2.1 Providing Network Services to Cloud-Computing Infrastructures
- •8.4.2.2 The Cloud Operating System–Network Interface
- •8.5.1 The Prototype Details
- •8.5.1.1 The Underlying Network Infrastructure
- •8.5.1.2 The Prototype Cloud Network Control Logic and its Services
- •8.5.2 Performance Evaluation and Results Discussion
- •8.6 Related Work
- •8.7 Conclusions
- •References
- •9.1 Introduction
- •9.2 Overview of YML
- •9.3 Design and Implementation of YML-PC
- •9.3.1 Concept Stack of Cloud Platform
- •9.3.2 Design of YML-PC
- •9.3.3 Core Design and Implementation of YML-PC
- •9.4 Primary Experiments on YML-PC
- •9.4.1 YML-PC Can Be Scaled Up Very Easily
- •9.4.2 Data Persistence in YML-PC
- •9.4.3 Schedule Mechanism in YML-PC
- •9.5 Conclusion and Future Work
- •References
- •10.1 Introduction
- •10.2 Related Work
- •10.2.1 General View of Cloud Computing frameworks
- •10.2.2 Cloud Computing Middleware
- •10.3 Deploying Applications in the Cloud
- •10.3.1 Benchmarking the Cloud
- •10.3.2 The ProActive GCM Deployment
- •10.3.3 Technical Solutions for Deployment over Heterogeneous Infrastructures
- •10.3.3.1 Virtual Private Network (VPN)
- •10.3.3.2 Amazon Virtual Private Cloud (VPC)
- •10.3.3.3 Message Forwarding and Tunneling
- •10.3.4 Conclusion and Motivation for Mixing
- •10.4 Moving HPC Applications from Grids to Clouds
- •10.4.1 HPC on Heterogeneous Multi-Domain Platforms
- •10.4.2 The Hierarchical SPMD Concept and Multi-level Partitioning of Numerical Meshes
- •10.4.3 The GCM/ProActive-Based Lightweight Framework
- •10.4.4 Performance Evaluation
- •10.5 Dynamic Mixing of Clusters, Grids, and Clouds
- •10.5.1 The ProActive Resource Manager
- •10.5.2 Cloud Bursting: Managing Spike Demand
- •10.5.3 Cloud Seeding: Dealing with Heterogeneous Hardware and Private Data
- •10.6 Conclusion
- •References
- •11.1 Introduction
- •11.2 Background
- •11.2.1 ASKALON
- •11.2.2 Cloud Computing
- •11.3 Resource Management Architecture
- •11.3.1 Cloud Management
- •11.3.2 Image Catalog
- •11.3.3 Security
- •11.4 Evaluation
- •11.5 Related Work
- •11.6 Conclusions and Future Work
- •References
- •12.1 Introduction
- •12.2 Layered Peer-to-Peer Cloud Provisioning Architecture
- •12.4.1 Distributed Hash Tables
- •12.4.2 Designing Complex Services over DHTs
- •12.5 Cloud Peer Software Fabric: Design and Implementation
- •12.5.1 Overlay Construction
- •12.5.2 Multidimensional Query Indexing
- •12.5.3 Multidimensional Query Routing
- •12.6 Experiments and Evaluation
- •12.6.1 Cloud Peer Details
- •12.6.3 Test Application
- •12.6.4 Deployment of Test Services on Amazon EC2 Platform
- •12.7 Results and Discussions
- •12.8 Conclusions and Path Forward
- •References
- •13.1 Introduction
- •13.2 High-Throughput Science with the Nimrod Tools
- •13.2.1 The Nimrod Tool Family
- •13.2.2 Nimrod and the Grid
- •13.2.3 Scheduling in Nimrod
- •13.3 Extensions to Support Amazon’s Elastic Compute Cloud
- •13.3.1 The Nimrod Architecture
- •13.3.2 The EC2 Actuator
- •13.3.3 Additions to the Schedulers
- •13.4.1 Introduction and Background
- •13.4.2 Computational Requirements
- •13.4.3 The Experiment
- •13.4.4 Computational and Economic Results
- •13.4.5 Scientific Results
- •13.5 Conclusions
- •References
- •14.1 Using the Cloud
- •14.1.1 Overview
- •14.1.2 Background
- •14.1.3 Requirements and Obligations
- •14.1.3.1 Regional Laws
- •14.1.3.2 Industry Regulations
- •14.2 Cloud Compliance
- •14.2.1 Information Security Organization
- •14.2.2 Data Classification
- •14.2.2.1 Classifying Data and Systems
- •14.2.2.2 Specific Type of Data of Concern
- •14.2.2.3 Labeling
- •14.2.3 Access Control and Connectivity
- •14.2.3.1 Authentication and Authorization
- •14.2.3.2 Accounting and Auditing
- •14.2.3.3 Encrypting Data in Motion
- •14.2.3.4 Encrypting Data at Rest
- •14.2.4 Risk Assessments
- •14.2.4.1 Threat and Risk Assessments
- •14.2.4.2 Business Impact Assessments
- •14.2.4.3 Privacy Impact Assessments
- •14.2.5 Due Diligence and Provider Contract Requirements
- •14.2.5.1 ISO Certification
- •14.2.5.2 SAS 70 Type II
- •14.2.5.3 PCI PA DSS or Service Provider
- •14.2.5.4 Portability and Interoperability
- •14.2.5.5 Right to Audit
- •14.2.5.6 Service Level Agreements
- •14.2.6 Other Considerations
- •14.2.6.1 Disaster Recovery/Business Continuity
- •14.2.6.2 Governance Structure
- •14.2.6.3 Incident Response Plan
- •14.3 Conclusion
- •Bibliography
- •15.1.1 Location of Cloud Data and Applicable Laws
- •15.1.2 Data Concerns Within a European Context
- •15.1.3 Government Data
- •15.1.4 Trust
- •15.1.5 Interoperability and Standardization in Cloud Computing
- •15.1.6 Open Grid Forum’s (OGF) Production Grid Interoperability Working Group (PGI-WG) Charter
- •15.1.7.1 What will OCCI Provide?
- •15.1.7.2 Cloud Data Management Interface (CDMI)
- •15.1.7.3 How it Works
- •15.1.8 SDOs and their Involvement with Clouds
- •15.1.10 A Microsoft Cloud Interoperability Scenario
- •15.1.11 Opportunities for Public Authorities
- •15.1.12 Future Market Drivers and Challenges
- •15.1.13 Priorities Moving Forward
- •15.2 Conclusions
- •References
- •16.1 Introduction
- •16.2 Cloud Computing (‘The Cloud’)
- •16.3 Understanding Risks to Cloud Computing
- •16.3.1 Privacy Issues
- •16.3.2 Data Ownership and Content Disclosure Issues
- •16.3.3 Data Confidentiality
- •16.3.4 Data Location
- •16.3.5 Control Issues
- •16.3.6 Regulatory and Legislative Compliance
- •16.3.7 Forensic Evidence Issues
- •16.3.8 Auditing Issues
- •16.3.9 Business Continuity and Disaster Recovery Issues
- •16.3.10 Trust Issues
- •16.3.11 Security Policy Issues
- •16.3.12 Emerging Threats to Cloud Computing
- •16.4 Cloud Security Relationship Framework
- •16.4.1 Security Requirements in the Clouds
- •16.5 Conclusion
- •References
- •17.1 Introduction
- •17.1.1 What Is Security?
- •17.2 ISO 27002 Gap Analyses
- •17.2.1 Asset Management
- •17.2.2 Communications and Operations Management
- •17.2.4 Information Security Incident Management
- •17.2.5 Compliance
- •17.3 Security Recommendations
- •17.4 Case Studies
- •17.4.1 Private Cloud: Fortune 100 Company
- •17.4.2 Public Cloud: Amazon.com
- •17.5 Summary and Conclusion
- •References
- •18.1 Introduction
- •18.2 Decoupling Policy from Applications
- •18.2.1 Overlap of Concerns Between the PEP and PDP
- •18.2.2 Patterns for Binding PEPs to Services
- •18.2.3 Agents
- •18.2.4 Intermediaries
- •18.3 PEP Deployment Patterns in the Cloud
- •18.3.1 Software-as-a-Service Deployment
- •18.3.2 Platform-as-a-Service Deployment
- •18.3.3 Infrastructure-as-a-Service Deployment
- •18.3.4 Alternative Approaches to IaaS Policy Enforcement
- •18.3.5 Basic Web Application Security
- •18.3.6 VPN-Based Solutions
- •18.4 Challenges to Deploying PEPs in the Cloud
- •18.4.1 Performance Challenges in the Cloud
- •18.4.2 Strategies for Fault Tolerance
- •18.4.3 Strategies for Scalability
- •18.4.4 Clustering
- •18.4.5 Acceleration Strategies
- •18.4.5.1 Accelerating Message Processing
- •18.4.5.2 Acceleration of Cryptographic Operations
- •18.4.6 Transport Content Coding
- •18.4.7 Security Challenges in the Cloud
- •18.4.9 Binding PEPs and Applications
- •18.4.9.1 Intermediary Isolation
- •18.4.9.2 The Protected Application Stack
- •18.4.10 Authentication and Authorization
- •18.4.11 Clock Synchronization
- •18.4.12 Management Challenges in the Cloud
- •18.4.13 Audit, Logging, and Metrics
- •18.4.14 Repositories
- •18.4.15 Provisioning and Distribution
- •18.4.16 Policy Synchronization and Views
- •18.5 Conclusion
- •References
- •19.1 Introduction and Background
- •19.2 A Media Service Cloud for Traditional Broadcasting
- •19.2.1 Gridcast the PRISM Cloud 0.12
- •19.3 An On-demand Digital Media Cloud
- •19.4 PRISM Cloud Implementation
- •19.4.1 Cloud Resources
- •19.4.2 Cloud Service Deployment and Management
- •19.5 The PRISM Deployment
- •19.6 Summary
- •19.7 Content Note
- •References
- •20.1 Cloud Computing Reference Model
- •20.2 Cloud Economics
- •20.2.1 Economic Context
- •20.2.2 Economic Benefits
- •20.2.3 Economic Costs
- •20.2.5 The Economics of Green Clouds
- •20.3 Quality of Experience in the Cloud
- •20.4 Monetization Models in the Cloud
- •20.5 Charging in the Cloud
- •20.5.1 Existing Models of Charging
- •20.5.1.1 On-Demand IaaS Instances
- •20.5.1.2 Reserved IaaS Instances
- •20.5.1.3 PaaS Charging
- •20.5.1.4 Cloud Vendor Pricing Model
- •20.5.1.5 Interprovider Charging
- •20.6 Taxation in the Cloud
- •References
- •21.1 Introduction
- •21.2 Background
- •21.3 Experiment
- •21.3.1 Target Application: Value at Risk
- •21.3.2 Target Systems
- •21.3.2.1 Condor
- •21.3.2.2 Amazon EC2
- •21.3.2.3 Eucalyptus
- •21.3.3 Results
- •21.3.4 Job Completion
- •21.3.5 Cost
- •21.4 Conclusions and Future Work
- •References
- •Index
196 |
R. Ranjan et al. |
dissemination models. The experimental test-bed has been deployed on a public cloud computing platform, Amazon EC2, which demonstrates the effectiveness of the proposed peer-to-peer Cloud provisioning software fabric.
12.1 Introduction
Cloud computing [1–3] has emerged as the next-generation platform for hosting business and scientific applications. It offers infrastructure, platform, and software as services that are made available as on-demand and subscription-based services in a pay-as-you-go model to users. These services are, respectively, referred to as Infrastructure as a Service (IaaS), Platform as a Service (PaaS), and Software as a Service (SaaS). Adoption of Cloud computing platforms [4–9] as an application provisioning environment has the following critical benefits: (i) software enterprises and startups with innovative ideas for new Internet services are no longer required to make large capital outlays in the hardware and software infrastructures to deploy their services or human expense to operate it; (ii) government agencies and financial organizations can use Cloud services as an effective means for cost cutting by leasing their IT service hosting and maintenance from external cloud providers; (iii) organizations can more cost-effectively manage peak-load by using the cloud, rather than planning and building for peak load, and having under-utilized servers sitting there idle during off peak time; and (iv) failures due to natural disasters or regular system maintenance/outage may be managed more gracefully as services may be more transparently managed and migrated to other available cloud resources, hence enabling improved service-level agreement (SLA).
The process of deploying application services on publically accessible clouds (such as Amazon EC2 [8]) that expose their capabilities as a network of virtualized services (hardware, storage, database) is known as Cloud provisioning. The Cloud provisioning process consists of two key steps [10]: (i) VM provisioning, involving instantiation of one or more VMs on physical servers hosted within public or private Cloud computing environments – the selection of a physical server for hosting VMs in a cloud is based on a number of mapping requirements including available memory, storage space, and proximity of the parent cloud; and (ii) application service provisioning, with mapping and scheduling of requests to the services that are hosted within a VM or on a set of VMs. In this chapter, we mainly focus on the second step, which involves dynamically distributing the incoming requests among the services in a load-balanced and decentralized manner, given a set of VMs that are hosting different types of application services.
Cloud provisioning from a business services point of view involves deriving cloud-based application component deployments driven by expected performance (Quality of Service (QoS)). Clouds offer an unprecedented pool of software and hardware resources, which gives businesses a unique ability to handle the temporal variation in their service demands through dynamic provisioning or deprovisioning

12 Peer-to-Peer Cloud Provisioning: Service Discovery and Load-Balancing |
197 |
of capabilities. Whenever there is a variation in temporal and spatial locality of workload such as number of concurrent users, total users, and load conditions, each application component must dynamically scale (application service elasticity) to offer good quality of experience to users, and maintain an optimal usage of cloud resources. Cloud-enabling any class of application service would require developing models for service placement, computation, communication, and storage, with emphasis on important scalability requirements.
Currently, one of the prominent Cloud service providers Amazon EC2 offers two services, namely CloudWatch [11] and Elastic Load Balancer [12]. Fundamentally, CloudWatch and Elastic Load Balancer are centralized web services that can be associated with numerous EC2 instances. However, centralized approaches have several critical design limitations including: (i) single point of failure; (ii) lack of scalability; (iii) high network communication cost at links leading to the service; (iv) requirement of high computational power to serve a large number of resource look-up and updated queries on the server running the central service.
As Clouds become ready for mainstream acceptance, scalability [13] of services will come under more severe scrutiny due to the increasing number of online services in the Cloud, and massive numbers of global users. To overcome the aforementioned limitations, fundamental Cloud services for discovery, monitoring, and load-balancing should be decentralized by nature and different service components (VM instances and application elements) must interact to adaptively maintain and achieve the desired system wide connectivity and behaviour.
The rest of this chapter is organized as follows: First, a layered approach to architecting peer-to-peer Cloud provisioning system is presented. This is followed by some survey results on Cloud provisioning capabilities in leading commercial public clouds. The finer details related to architecting peer-to-peer Cloud service discovery and load-balancing techniques over DHT overlay is then presented, followed by a discussion of the design and implementation of peer-to-peer Cloud provisioning (Cloud peer) software fabric. Lastly, we present the analysis and experimental results of the peer-to-peer Cloud provisioning implementation across a public Cloud (Amazon EC2) environment (Table 12.1).
Table 12.1 Summary of provisioning capabilities exposed by public Cloud platforms
Cloud platforms |
Load balancing |
Provisioning |
Autoscaling |
Amazon Elastic |
√ |
√ |
√ |
Compute Cloud |
|
|
|
Eucalyptus |
√ |
√ |
× |
Microsoft Windows |
√ |
√ |
√ |
Azure |
|
(Fixed templates so far) |
(Manually at the moment) |
Google App Engine |
√ |
√ |
√ |
GoGrid Cloud |
√ |
√ |
√ |
Hosting |
|
|
(Programmatic way only) |
|
|
|
|

198 |
R. Ranjan et al. |
12.2 Layered Peer-to-Peer Cloud Provisioning Architecture
This section presents information on various architectural elements that form the basis for peer-to-peer Cloud provisioning architecture. It also presents an overview of the applications that would benefit from the architecture, which envisages a hosting infrastructure consisting of multiple geographically distributed private and public clouds owned by one or more service providers. Figure 12.1 shows the layered design of the peer-to-peer Cloud provisioning architecture. Physical Cloud servers, along with core middleware capabilities, form the basis for delivering IaaS. The user-level middleware aims at providing PaaS capabilities. The top layer focuses on application services (SaaS) by making use of services provided by the lower layers. PaaS/SaaS services are often developed and provided by third-party service providers, who are different from IaaS providers.
Cloud Applications (SaaS): Popular Cloud applications include Business to Business (B2B) applications, traditional eCommerce type of applications, enterprise business applications such as CRM and ERP, social computing such as Facebook and MySpace, and compute, data intensive applications and content delivery networks (CDNs). These applications have radically different application characteristics and workload profiles, and hence, to cope with the variation in temporal and spatial locality of service request, the application services must be supported by a Cloud provisioning infrastructure that dynamically scales the deployed
Cloud applica ons: B2B Processes, CDNs, Social Compu ng, e-Research
Programming |
Cloud programming: run me environments and tools |
|||
Layer (SaaS) |
MapReduce, Hadoop, Workflow, Web 2.0 Interfaces, Mashups |
|||
|
|
|
Apps Composition Environments |
|
|
Scheduling, Fault-Management, Monitoring, Alloca on, Security |
|||
Core Services |
Selec on, Discovery, Co-ordina on, Messaging |
|||
Layer (PaaS) |
||||
|
|
|
||
|
Data organiza on techniques, Replica on, Load balancing |
|||
Cloud Peer |
|
|
|
|
|
|
Peer-to-Peer Rou ng Overlay (DHT) |
||
|
Virtual Machine (VM), Local Resource Manager (SGE, PBS) |
|||
Infrastructure |
Microso |
Amazon |
||
|
||||
|
|
|
Layer (IaaS)
Public Clouds |
Private Clouds |
|
Features Peer-to-Peer
Management-Self
Fig. 12.1 A layered peer-to-peer Cloud provisioning architecture
12 Peer-to-Peer Cloud Provisioning: Service Discovery and Load-Balancing |
199 |
services in order to achieve good performance, optimal resource usage, and hence offer quality experience to its end-users.
Development Framework Layer: This layer includes the software frameworks such as Web 2.0 Interfaces (Ajax, IBM Workplace, and Visual Studio.net Azure plug-in) that help developers in creating rich, cost-effective, user-interfaces for browser-based applications. The layer also provides the data-intensive, parallel programming environments (such as MapReduce, Hadoop, Dryad) and composition tools that ease the creation, deployment, and execution of applications in Clouds.
Core Services Layer (PaaS): This layer implements the platform-level services that provide run-time environment-enabling Cloud computing capabilities to application services built using User-Level Middleware. Core services at this layer include scheduling, fault-management, monitoring, dynamic SLA management, accounting, billing, and pricing. Further, the services at this layer must be able to provide support for decentralized co-ordinated interaction, scalable selection, and messaging between distributed Cloud components. Some of the existing services operating at this layer are Amazon EC2’s CloudWatch and Load-balancer service, Google App Engine, Microsoft Azure’s fabric controller, and Aneka [14].
To be able to provide support for decentralized service discovery [15] and loadbalancing between cloud components (VM instances, application services), novel distributed hash table (DHT)-based PaaS layer services, techniques, and algorithms need to be developed at this layer for supporting complex interactions with guarantees on dynamic management. In Fig. 12.1, this component of PaaS layer is shown as Cloud peer service. Architecting Cloud services based on decentralized network models or overlays (such as DHTs) is significant since DHTs are highly scalable, can gracefully adapt to the dynamic system expansion (new host/VM/service instantiation) or contraction (host/VM/service instance destruction) and outage, and are not susceptible to single point of failure in massive scale, internetworked private and public cloud environments.
Infrastructure Layer (IaaS): The computing power in Cloud computing environments is supplied by a collection of data centers that are typically installed with many thousands of servers. At the IaaS layer, there exist massive physical servers (storage servers and application servers) that power the data centers. These servers are transparently managed by the higher-level virtualization services and toolkits that allow sharing of their capacity among virtual instances of servers. These virtual machines (VMs) are isolated from each other, which aids in achieving fault-tolerant behaviour and the isolation of security contexts.
Another trend in Cloud usage is combination of private clouds with public clouds, in order to attend unexpected or periodic peaks in local demand without investing in acquiring new equipment for the local infrastructure. Resources from the data center may be either available for public in general (public clouds) or may be restricted to users belonging to the organization that owns the data center (private clouds). It is also possible to have hybrid models, in which resources are leased from the public cloud whenever the private cloud cannot cope with the incoming demand.
200 |
R. Ranjan et al. |
12.3 Current State-of-the-Art and Practice in Cloud
Provisioning
Key players in public Cloud computing, including Amazon, Microsoft, Google App Engine, Eucalyptus [16], and GoGrid, offer a variety of prepackaged services for monitoring, managing, and provisioning resources. However, the techniques implemented in each of these Clouds vary.
The three Amazon Web Services (AWS), Elastic Load Balancer [12], Auto Scaling [17], and CloudWatch [11], together expose functionalities that are required for undertaking provisioning of application services on Amazon EC2. Elastic Load Balancer service automatically provisions incoming application workload across available Amazon EC2 instances. Auto-scaling service can be used to dynamically scale-in or scale-out the number of Amazon EC2 instances for handling changes in service demand patterns. And finally, the CloudWatch service can be integrated with the above services for strategic decision-making based on collected real-time information.
Eucalyptus is an open source Cloud computing platform. It is composed of three controllers. Among the controllers, the cluster controller is a key component to application service provisioning and load balancing. Each cluster controller is hosted on the head node of a cluster to interconnect outer public networks and inner private networks together. By monitoring the state information of instances in the pool of server controllers, the cluster controller can select the available service/ server for provisioning incoming requests. However, when compared with AWS, Eucalyptus still lacks some of the critical functionalities, such as autoscaling for built-in provisioner.
Fundamentally, Windows Azure Fabric has a weave-like structure, which is composed of nodes (servers and load balancers), and edges (power, Ethernet, and serial communications). The fabric controller manages a service node through a built-in service, the Azure fabric controller agent, which runs in the background tracking the state of the server and reporting these metrics to the controller. If a fault state is reported, the controller can manage a reboot of the server or a migration of services from the current server to other healthy servers. Moreover, the controller also supports service provisioning by matching the services/VMs that meet the required demands.
GoGrid Cloud Hosting offers developers F5 Load Balancers [18] for distributing application service traffic across servers, as long as IPs and specific ports of these servers are attached. The load balancer provides the Round Robin algorithm and Least Connect algorithm for routing application service requests. Also, the load balancer is able to sense a crash of the server, redirecting further requests to other available servers. But currently, GoGrid Cloud Hosting only gives developers programmatic APIs to implement their custom autoscaling service.
Unlike other Cloud platforms, Google App Engine offers developers a scalable platform in which applications can run, rather than providing access directly to a customized virtual machine. Therefore, access to the underlying operating system