Cloud intelligence: agents within an InterCloud
PDF version | Permalink
An important aspect of cloud computing is creating the illusion that infinite computing resources are available on demand. As a single cloud does not have infinite physical computing resources, an InterCloud, which is an interconnected global ‘cloud of clouds’, enables cloud systems to cooperate with each other, allowing each cloud to tap into the resources of other clouds to satisfy consumers' requests.1 InterCloud resource pooling and sharing involve combining resources through cooperation among clouds, mapping, scheduling and coordinating shared resources, and establishing contracts between providers and consumers.
Agent-based computing provides a natural paradigm for automating interactions among complex interconnected systems such as an InterCloud. Agents are computer systems that are capable of making decisions independently and interacting with other agents through cooperation, coordination and negotiation. Since the resources and control in an InterCloud are distributed among different clouds, an InterCloud can be modelled as a multiagent system with individual clouds as autonomous components. In 2009, I introduced agent-based cloud computing, a new area involving the construction of agents for bolstering composition, scheduling, workflow, negotiation and discovery of cloud resources.2, 3
As cloud computing evolves, integrating cloud services from different providers will become complex. Cloud brokers could remove this complexity by sourcing and integrating different services from multiple clouds and delivering unified services to consumers. To automate cloud service composition, we devised a focused-selection contract net protocol (FSCNP) for dynamically selecting cloud services, and service capability tables (SCTs) to record the list of clouds and their services.4 Our empirical results demonstrate that agents using FSCNP and SCTs can successfully compose a unified cloud service using a set of resources from different clouds.
Bag-of-tasks (BoT) applications are composed of multiple independent tasks with no execution ordering constraints, and can be highly parallelized for execution in multiple clouds. Scheduling independent tasks in a set of heterogeneous computing resources has been shown to be a so-called NP-complete problem.5 To deal with this challenging problem, we devised a family of 14 cloud scheduling heuristics, based on the remaining allocation times of cloud resources and an elastic cloud resource allocation mechanism.6 They were integrated into an agent-based approach for scheduling and executing BoTs. Agents in our testbed autonomously select cloud resources from a pool of cloud providers and concurrently schedule and execute BoTs in this heterogeneous set of cloud resources. Using Amazon's Elastic Compute Cloud (EC2) as a case study, we explored how we can deploy our agent-based resource allocation mechanism to commercial clouds.7
Supporting cloud workflow execution involves allocating and composing a collection of heterogeneous resources from different clouds and coordinating the task execution using these resources, taking into consideration the ordering constraints. Using Petri-net-based methodologies to enable agents to synchronize and coordinate concurrent workflow, we devised an agent-based approach for supporting workflow execution involving resources from multiple clouds.8 Our empirical results demonstrate that our agents can effectively execute concurrent cloud workflows and deal with different levels of parallelism and ordering constraints.
The challenge in cloud service negotiation is to establish service-level agreements (SLAs) among stakeholders. My cloud negotiation mechanism bolsters multilateral negotiations between consumers and cloud brokers, and concurrent negotiations between a broker and multiple groups of providers.9 Since each consumer can submit its service requests to many brokers and each broker can accept requests from many consumers, I modelled their negotiation activities using a many-to-many negotiation model. Consumer agents and broker agents (representing consumers and brokers, respectively) negotiate to establish SLAs for satisfying consumers' service requirements. To combine a set of services from multiple cloud providers, a broker needs to establish SLAs with multiple providers via concurrent negotiations. A broker agent carries out parallel negotiations with multiple groups of provider agents (representing cloud providers). In each negotiation thread, broker and provider agents negotiate to establish an SLA for a different type of cloud resource.
In another work, we compared our cloud negotiation mechanism with Amazon EC2's spot pricing model and showed that our mechanism allows consumers to both save cost and utilize the cloud service without interruption.10
The problem in cloud service discovery is to run queries against the cloud services registered in the search engine's database by matching consumers' functional, technical and budgetary requirements. We developed a proof-of-concept search engine called Cloudle for discovering cloud services.11 Cloudle consists of a service discovery agent that consults a cloud ontology for determining the similarities between providers' service specifications and consumers' service requirements. It accepts as its inputs functional, technical and budgetary requirements from consumers, reasons about the similarities among cloud services, and determines different levels of matching between the respective prices and schedules of a consumer and a provider.
Our works on agent-based cloud computing show that agents are appropriate mechanisms for automating complex interactions within an InterCloud. We believe that agents will play a significant role in shaping the intelligent InterCloud vision. An InterCloud could be populated by a society of agents representing InterCloud participants (see Figure 1). In an intelligent InterCloud, the economic encounters between consumers and providers will be modelled as a multilateral negotiation whereby consumer agents negotiate with provider agents to search for the best price deal. The interactions between ‘home’ clouds requiring resources from other ‘foreign’ clouds will consist of parallel negotiation activities between home and foreign cloud agents to form InterCloud coalitions.
Our future work in agent-based cloud computing will devise an agent-based economic model for bolstering consumer-to-cloud negotiation and cloud-to-cloud negotiation. We will also integrate our ideas of agent-based cloud service composition, scheduling and workflow into OpenStack, a cloud operating system that controls large pools of compute, storage and networking resources.12