Skip to content

Basic concepts

Rafael Weingärtner edited this page Apr 19, 2016 · 9 revisions

In this page, we present an overview of concepts that are the basis of our solutions.

Cloud computing (CC)

Cloud computing is a model for providing on-demand computing resources (network, servers, storage, applications, services) through networks, as stated by the NIST (National Institute of Standards and technology). CC environments are exposed to dynamic workloads and must scale rapidly to attend stochastic demands.

NIST Defines that the CC concept allows the provisioning of three different services models (i) Infrastructure as a Service (IaaS), (ii) Platform as a Service (PaaS), and Software as a Service (SaaS). Our solution focuses on the management of clouds that provide infrastructure as a service; thus, we only consider metrics and actions that are available to providers that work within IaaS premises.

Cloud computing orchestration

Cloud computing orchestration is the process of creating and managing the cloud environment. CC environments are complex and heterogeneous, having numerous components that must be interconnected and managed. Those characteristics make CC management infeasible without a tool capable of creating and managing together the underlying elements such as hypervisors, networking and storage devices.

There are tools such as CloudStack, HPE Helion Eucalyptus, OpenNebula and OpenStack that are used to orchestrate the most different elements and create a cloud.

Virtualization

Virtualization is a technique that allows the partition of physical servers into logical ones (as presented by Tholeti). It offers advantages such as efficient use of physical resources, availability, agility and greater control of the infrastructure. Virtualization can be performed in three different approaches (presented by the IBM System x Virtualization Strategies).

  • Type 1: hypervisor runs directly over the hardware, such as VMware vSphere, Xen and Linux [KVM] (http://www.linux-kvm.org/page/Main_Page);
  • Type 2: hypervisor runs over an existing operating system (OS) as an application, such as VirtualBox;
  • Containers: this approach does not use a hypervisor per se; the virtualization is performed by the root OS which isolates applications using containers, such as Linux Containers.

Each virtualization type has its advantages. Thus, a CC environment may use different hypervisors in order to attend the most variety of demands.

Workload consolidation

Workload consolidation is a management technique that aims to organize workloads (virtual machines) into servers, enabling the shutdown of idle ones. Moreover, that technique can provide great benefits reducing the energy consumption of cloud computing environment.

Multi-agent systems

Multi-agent systems are an aggregation of agents that perform simple tasks in order to achieve the fulfillment of more complex ones. Those systems are defined by roles, relationships and hierarchies structures that guide the way those agents interact as presented by Horling et al (2005). Each agent can act upon a different aspect of the environment, enabling the division of labor; for instance, we can have different agents, each one focused on dealing with a distinct hypervisors or components of the CC environment.

Autonomic computing systems

Kephart and Chess (2003) presented an autonomic model to deal with large, complex and heterogeneous computing environments such as a CC system. The model presented by Kephart and Chess comprises four (4) distinct phases, (i) monitoring; (ii) analysis; (iii) planning and (iv) execution. Those phases are constantly executed, allowing the system to learn environment behaviors and adapt itself. Moreover, there has been a great effort of researchers to develop techniques and models to deal with workload consolidation, SLAs management and computing resources optimization (using overcommitment of resources or activating and deactivating physical hosts).

- Autonomic vs Automatic

Note that autonomic and automatic systems are completely different models.

Automatic systems are the ones that present a programmatic behavior; such automatic actions are useful to keep an agenda of events (e.g. scripts to make backup, email notifications, migrate VMs, and others). However, those systems are meant to be used in control closed environments with well-known workloads.

Autonomic systems can be used to perform tasks that an automatic system handles. The difference is that autonomic systems have the ability to monitor a set of environment's metrics, analyze them and understand the environment’s state; and based on that it can trace a plan of actions to be executed in order to fulfill some goal. The key difference is that an autonomic system is not tied to an implementation per se; it can adapt itself to the environment.

Clone this wiki locally