Utilisateur:PaulineDess/Brouillon

Une page de Wikipédia, l'encyclopédie libre.

Cloud Configuration from the point of view of a cloud computing provider, is the process of setting resources in order to construct a cloud environment and ensure that all these resources can inter-operate and communicate correctly. From the point of view of cloud computing users, is the process of setting the wide range of resources provided by a cloud environment to ensure that deployed application(s) run properly.[1] [2]

Depending on the model of service provided, the cloud configuration focuses on different elements of the environment:

  • For infrastructure as a service(IaaS), the configuration focuses on the software running inside the virtual machine(VM) as well as the infrastructure concerns: number of VMs, bandwidth, input/output activities, number of nodes, of hard drives, database configuration, etc.
  • For platform as a service(PaaS) level the configuration part focuses on the software that compose this platform: which application server(s), database(s), compilation tool, libraries, etc. In a multicloud configuration perspective, parts of the application can be deployed either at PaaS, IaaS or both levels.[1]

Challenges[modifier | modifier le code]

Configuring the cloud environment could be really challenging, users and providers must face different challenges in order to ensure a proper operation of the cloud.

For providers[modifier | modifier le code]

When configuring the cloud system, providers face different challenges that are:

Guaranteeing high availability[modifier | modifier le code]

High availability is an important requirement that cloud computing providers must guarantee. If the level of availability of the resources stored in the cloud is not high, the benefits of using a cloud environment are decreased.

Nowadays they are many mechanisms to ensure high availability that can be applied to a cloud system, but its configuration are difficult.[3]

Guaranteeing Quality of Service[modifier | modifier le code]

Cloud System providers must guarantee performance to their customers. The challenge for providers is to choose an initial configuration that could be scalable to maintain the service level agreements guarantees, and that at the same time, optimizes the resource utilization, considering that performance may vary depending on network, service execution environment and user requirements.[4]

For users[modifier | modifier le code]

In order to define a proper cloud configuration, users face different challenges:

  • First users must select an appropriate cloud or multicloud environment that fits their application requirements.
  • Define a proper configuration.

Select a cloud[modifier | modifier le code]

Selecting a cloud computing provider can be a very difficult decision to take, because the selected provider must go with the application technical requirements, and also, there is a wide range of cloud providers making the choice even harder.[1]

To select a cloud environment that fits the application requirements the user have two options:

  1. The whole application can be deployed in one cloud.
  2. The application is deployed using a multicloud configuration
    • For privacy reasons,
    • For dimension reasons,
    • When a required element is not provided by one cloud.[1]

There are various parameters that play a vital role in the acceptance of any cloud application model. The cloud application models that address most of the following parameters are considered to be preeminent.

Context awareness[modifier | modifier le code]

The capability of a cloud application model to be context awareness is important because static offloading is not always beneficial and may degrade the performance of the application.

Latency[modifier | modifier le code]

The latency is the time involved in offloading the computation and getting back the result. The latency depends of many factors like the offloading code size, the data input size of location of the required data. A low latency cloud is prefered to improve the user satisfaction and the usability.

Bandwidth Utilization[modifier | modifier le code]

The bandwith utilization refers to the size of offloaded data. There is a gap between wireless networks and wired networks, even if the 4G technology helps to narrow down this gap.

Application Model Complexity[modifier | modifier le code]

Some features, such as application partitioning, dynamic offloading, resource monitoring, contextual information analysis, and cloud parallelism add to the complexity of the application models. The choice of a cloud will be guided by the complexity of this one.

Security[modifier | modifier le code]

From the cloud security perspective, the data stored in the cloud can be lost, altered, denied, or leaked. The data stored in the cloud must have multiple backups with integrity support to avoid data loss and undesired modifications.

Programming Abstraction[modifier | modifier le code]

The heterogeneities in mobile devices and cloud platforms make the development of application complicated. In application development, new tools are required that provide programming abstraction and hide the underlying complexities of the cloud.

Scalability[modifier | modifier le code]

The scalability is one of the most important criteria for choosing a cloud. The cloud application model must support the development for applications that can scale on user demand.

Execution resource[modifier | modifier le code]

The execution resource affects the scalability and the availability of the application based on the cloud (virtual cloud composed of nearby computers of effective cloud). Some application models may require heavy software installations to support offloading.

Define a proper configuration[modifier | modifier le code]

To obtain all the benefits of deploying applications into a cloud and avoid inconsistencies between cloud services when running the application, users must correctly configure the cloud environment.[2]

Cloud environments are composed of servers, storage, and various types of middleware, all these components result into a great number of configuration parameters, making the cloud configuration very long, complex and error-prone.[5],[2] To avoid misconfiguration and inconsistencies between cloud services when running the application stakeholders/developers must have a complete knowledge on cloud environment configurations.[2]

Cloud configuration[modifier | modifier le code]

Many current cloud infrastructure solutions allow users to manually configure all the resources required in a cloud environment (e.g. server(s), database(s), number of virtual machines, required software, etc) either via a Virtual Machine or by cloud PaaS providers. Some providers also allow users to define rules to scale up or down the cloud environment to maintain performance levels. [1],[4]

Automatic Configuration[modifier | modifier le code]

Cloud environments are composed of many components, resulting into a great number of configuration parameters, making the cloud configuration very long, complex and error-prone.

There are many development approaches created to reduce manual configuration of parameter settings as to lower the risk of inappropriate configuration and to automatically configure the cloud environment . [5],[2]

JadeCloud Framework[modifier | modifier le code]

JadeCloud is a Framework that allows the automatic High Availability configuration.

This approach proposes a runtime model-based High Availability(HA) configuration framework. This model allows to adjust the HA mechanism continuously according to the runtime state of the system. Jadecloud summarizes a HA mechanism library and propose a systemic HA mechanism classification based on the structure of cloud platform.[3]

Pattern Extraction approach[modifier | modifier le code]

This approach proposes an automatic configuration method which reduces manual configuration by identifying “incremental design patterns” (which are linear relationships between generations of existing infrastructures and the values assigned to the parameters).[5]

Model-based approach[modifier | modifier le code]

This approach helps to configure the Quality of Service (QoS). It use QoS prediction techniques, resulting in a novel technique for pattern-based resource configuration. The pattern consists of narrow range of metrics measured for each infrastructure concern such as compute, storage and network under which the QoS concern is stable. In a top-down approach, then take a QoS requirement and determine suitable workload-oriented configurations that maintain required values.[4]

Software Product Line based approach[modifier | modifier le code]

Software Product Line(SPL) are dedicated to automate the configuration and the derivation, e.g., composition and/or generation, of software products with high variability. It provides means to capture the common and variable artifacts of the handled software in a variability model and reuse those artifacts to automatically derive the software product, thus reducing development costs while increasing reliability.

The approach propose to use Feature Models (FMs) extended with cardinalities and attributes as variability models to describe cloud environments. In particular, this approach automatically handles constraints over these cardinalities and attributes, which is not supported in existing feature modeling approaches but required to deal with cloud configuration. Then, artifacts are reified as configuration files and execution scripts to automate the cloud configuration. And finally, map these variability models with a domain knowledge model to deal with clouds heterogeneity. [2]

Mobile Configuration[modifier | modifier le code]

Mobile cloud application models are based on the standard cloud services model (that includes IaaS, PaaS and SaaS). The primary objective of mobile cloud is to provide enhanced user experiences to mobile users (in terms of computation time, battery life, communication, services and mobile device resource enhancement).The mobile cloud application models could be classified into 4 categories.

Performance based application models[modifier | modifier le code]

The goal of this type of application models is to enhance the performance of mobile device applications by utilizing cloud resources.

Clone cloud[modifier | modifier le code]

Clone Cloud is based on augmented execution technique that offloads parts of application execution to the nearby infrastructure or cloud[6]. The synchronization of the smartphone and its clone is very important for consistent execution.

The process of application partitioning is fully dynamic. When an application executes, the threads migrate from the mobile device to the cloud at auto selected points.The advantage of this model is that when a smartphone is lost or destroyed, the clone can be used as a backup for the recovery of data and applications. But, the synchronization between the smartphone and the clone may be resource intensive in terms of bandwidth utilization and energy consumption.

Zhang et al. Model[modifier | modifier le code]

This model propose a model that is based on elastic applications technique[7], where a single elastic application is partitioned into multiple components called weblets. A weblet can be defined as an independent functional unit of an application that can compute, store, and communicate while keeping its execution location transparent. The weblets can be platform independent or platform-dependent.The proposed model is also affected by data sharing delays (smartphone-weblet, weblet-weblet).

Energy based application models[modifier | modifier le code]

The goal of this type of application models is to reduce energy consumption of mobile device applications by utilizing cloud resources. The resource intensive computational tasks are performed in the cloud and applications consume less energy on mobile devices.

µCloud[modifier | modifier le code]

An application is partitioned into small sub partitions, where each partition has components with homogeneous resource requirements[8]. Further, the partitions are divided into fragments that are executed by the orchestrator in a many-to-many relationship.The decoupled application components are reusable and provide flexibility in terms of application modeling.The negative point of the model is that it requires high programming efforts for the development of components.

Constraint based application models[modifier | modifier le code]

Constraint based application modelsare designed to execute applications in resource constrained environment (such as smartphones) by using cloud resources.

Satyanarayanan et al. Model[modifier | modifier le code]

The model uses a concept based on a virtual machine. This virtual machine runs on computer providing resources or on a cluster of computers named cloudlet. Mobile devices, as thin client, offload resource-intensive tasks to the cloudlet. By using a cluster for the cloudlet, virtual machine parallelism can be achieved with multiples cores[9]. The positive point of this application model is that the virtual machine is less fragile than process migration and software virtualization.

  1. a b c d et e (en) Clément Quinton, Nicolas Haderer, Romain Rouvoy et Laurence Duchien, « Towards Multi-Cloud Configurations Using Feature Models and Ontologies », ACM New York, NY, USA ©2013,‎ , p. 1-6 (lire en ligne)
  2. a b c d e et f (en) Clément Quinton, Daniel Romero et Laurence Duchien, « Automated Selection and Configuration of Cloud Environments Using Software Product Lines Principles », IEEE,‎ , p. 1--8 (lire en ligne)
  3. a et b (en) Yihan Wu et Gang Huang, « Model-based high availability configuration framework for cloud », ACM New York, NY, USA ©2013.,‎ , p. 6 (lire en ligne)
  4. a b et c (en) Li Zhang, Yichuan Zhang, Pooyan Jamshidi, Lei Xu et Claus Pahl, « Workload Patterns for Quality-driven Dynamic Cloud Service Configuration and Auto-Scaling », IEEE Computer Society Washington, DC, USA ©2014.,‎ , p. 10 (lire en ligne)
  5. a b et c (en) Tetsuya UCHIUMI, Shinya KITAJIMA, Shinji KIKUCHI et Yasuhide MATSUMOTO, « Automatic parameter configuration for cloud infrastructures by design pattern extraction », IEEE,‎ , p. 8 (lire en ligne)
  6. (en) Byung-Gon Chun et Petros Maniatis, « Augmented smartphone applications through clone cloud execution », ACM,‎ , p. 8 (lire en ligne)
  7. (en) Horacio Andrés Lagar-Cavilla, Joseph Andrew Whitney, Adin Matthew Scannell, Philip Patchin, Stephen M. Rumble, Eyal de Lara, Michael Brudno et Mahadev Satyanarayanan, « SnowFlock: rapid virtual machine cloning for cloud computing », ACM,‎ , p. 1-12 (lire en ligne)
  8. (en) Verdi March, Yan Gu, Erwin Leonardi, George Goh, Markus Kirchberg et Bu Sung Lee, « μCloud: Towards a New Paradigm of Rich Mobile Applications », Procedia Computer Science, no 5,‎ , p. 618–624
  9. (en) H. A. Lagar-Cavilla, J. A. Whitney, A. M. Scannell et P. Patchin, « Snowflock: rapid virtual machine cloning for cloud computing », ACM,‎ , p. 1 (lire en ligne)