Clément Quinton
email: clement.quinton@inria.fr

Laurence Duchien
email: laurence.duchien@inria.fr

Patrick Heymans
email: patrick.heymans@fundp.ac.be

Stéphane Mouton
email: stephane.mouton@cetic.be

Etienne Charlier
email: etienne.charlier@cetic.be

Using Feature Modelling and Automations to Select among Cloud Solutions

Keywords: Cloud Computing, Software Product Line Engineering, Feature Modelling, Separation of Concerns

Cloud computing is a major trend in distributed computing environments. Resources are accessed on demand by customers and are delivered as services by cloud providers in a pay-per-use model. Companies provide their applications as services and rely on cloud providers to provision, host and manage such applications on top of their infrastructure. However, the wide range of cloud solutions and the lack of knowledge in this domain is a real problem for companies when facing the cloud solution choice. In this paper, we propose to use Software Product Line Engineering (SPLE) and Feature Model (FM) configuration to develop a decision-supporting tool. Using such modelling techniques and automations, this tool takes into consideration the application technical requirements as well as the user quality requirements to provide an accurate result among cloud solutions that best fits both requirements.

I. INTRODUCTION

Cloud computing has emerged as a major trend in distributed computing for "enabling convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, servers, storage, applications, and services) that can be rapidly provisioned and released with minimal management effort or service provider interaction" [START_REF] Mell | The NIST Definition of Cloud Computing[END_REF]. In cloud computing, resources (processing, network and storage) are accessed on demand by customers and are delivered as services by cloud providers in a payper-use approach [START_REF] Armbrust | Above the Clouds: A Berkeley View of Cloud Computing[END_REF], [START_REF] Buyya | Cloud Computing and Emerging IT Platforms: Vision, Hype, and Reality for Delivering Computing as the 5th Utility[END_REF]. This service provisioning model brings flexibility to companies that rely on cloud providers' infrastructure, i.e., Infrastructure-as-a-Service (IaaS), to host their applications on virtual machines by configuring their whole software stack (operating system, libraries, applications servers). The deployment of such applications, called Software-as-a-Service (SaaS), can also be done on top of Platform-as-a-Service (PaaS) discharging companies from dealing with virtual machine configuration, by bringing an application support (typically an application server) and hiding the cloud infrastructure to make the deployment easier. When deploying an application into the cloud, companies have to deal with a wide range of resources at different levels of functionality among available cloud solutions. This leads to complex choices among cloud solutions which are usually made in an ad hoc manner. We argue that this selection can be systematized and partly automated using techniques originating from Software Product Line Engineering (SPLE) approach [START_REF] Clements | Software Product Lines: Practices and Patterns[END_REF], [START_REF] Pohl | Software Product Line Engineering: Foundations, Principles and Techniques[END_REF], considering cloud providers as members of the same product family. Indeed, these providers offer a set of technical requirements (e.g., an application server, a database) to host an application, some of them being shared (commonality) while others are different (variability) among providers. A well-known approach to variability modelling is by means of Feature Models (FMS) introduced as part of Feature Oriented Domain Analysis (FODA) [START_REF] Kang | Feature-Oriented Domain Analysis (FODA) -Feasibility Study[END_REF]. By means of constraints between the application configuration and the cloud solutions features (i.e., technical requirements), FM provides an interesting solution for selecting a cloud solution able to meet the application technical requirements. However, using FM configuration and constraint techniques is not efficient enough and the range of available cloud solutions corresponding to the application configuration is still significant. Among potential cloud solutions, a more accurate choice can be done based on specific customer quality requirements (e.g., security, cost) or a combination of such requirements (or concern). Thus, crosscutting concerns for both application and cloud providers can be selected and prioritized according to the cloud solution offer. This paper presents the first results on this topic and describes a solution sketch for the problems that are usually met by companies.

The remainder of this paper is structured as follows. In SEC. II we briefly explain CETIC's business and how it is involved in cloud computing. We then describe in SEC. III how we think SPLE, and FMS in particular, can be used as the basis for the decision-support tool we plan to develop. SEC. IV discusses the future work.

II. THE CETIC

A. Presentation

The Centre d'Excellence en Technologies de l'Information et de la Communication (CETIC) is an applied research center dedicated to Information and Communication Technologies (ICT) that works closely with several Belgian companies and universities and is involved in various European research projects. CETIC aims at supporting regional economic development, by helping companies in their ICT development. CETIC has expertise in three main domains, software engineering, service-oriented technologies and embedded systems. The Software and Services Technologies (SST) department of CETIC brings an expertise in serviceoriented architectures, distributed architectures and cloud computing. For the latter, initial work was focused on the domain of Grid Computing. Increasing demand from companies led CETIC to evolve towards management of the cloud computing infrastructure layer (IaaS). Currently, CETIC focuses its cloud computing research on PaaS environments and analyses how to develop and release software as SaaS. CETIC provides consulting services, feasibility studies, training and prototyping to companies that wish to deploy applications on top of PaaS or IaaS cloud providers.

B. CETIC's Cloud Business

Cloud computing has a major impact on SMEs which constitute the core of CETIC's customers. In particular, it allows companies to use virtual resources in a payas-you-go model. This elasticity of resources brings them reliability and flexibility when providing services to their customers, being able to scale on-demand (e.g., scalingup cloud resources for a given period to answer a huge load of requests). CETIC supports its customers (in most cases Belgian SMEs) by identifying the best candidate cloud solution that matches their requirements. Typically, CETIC's customers start new projects (e.g., migration from a desktop application to cloud), start new businesses or want to replace their IT infrastructure. The application's architecture is studied to determine the best solution i.e., the best PaaS or IaaS cloud provider (the former being most often chosen). The wide range of cloud providers to host the application makes the choice difficult, and there is a lack of visibility among them to select the best fit (i.e., the one that matches best the application technical requirements). Without any decisionsupport tools, CETIC tends to recommend a cloud solution that has already been chosen for a previous customer to meet more or less similar expectations. Customers also give different priority levels to specific concerns to be addressed in cloud computing deployment such as security, scalability and cost. Therefore, we define two main challenges that CETIC (and all stakeholders involved in cloud deployment) have to face when looking for a cloud solution to host a customer's application: C 1 : Identify candidate cloud solutions. The essential point when deploying an application in the cloud is to ensure the compatibility between its architecture and functionalities, and the cloud provider's offer before the deployment to avoid a costly trial-and-error process. C 2 : Select the most appropriate solution. Among potential cloud solutions, a more accurate choice can be done, based on specific quality requirements (e.g., security, cost) and priorities between such requirements.

III. FM AS A DECISION-SUPPORT TOOL

When providing applications as SaaS, companies face a first choice as there are two different ways to achieve the deployment, (i) atop of PaaS or (ii) atop of IaaS environments. The former is the simplest way to get an application up and running in the cloud as it fully hides the infrastructure management, while the latter is more complex to setup but allows the configuration of the whole software stack used to run the application. We discuss both approaches and describe how FMS can address challenge C 1 .

A. Deployment on Top of PaaS

There are several PaaS cloud solutions one can choose to deploy an application, typically hosted on an application server (e.g., Tomcat). When deploying an application on top of PaaS, one usually has to select a kind of application server to host the application, the development language, the kind of database (if needed), etc. When performed "manually", this selection is a tedious task. It could be entirely automated thanks to inter-feature dependencies (i.e., constraints). FIG. 1 a) depicts such constraints. This example shows an excerpt of a FM of a simple application (FM_Application) written in Java and requiring a database, either MariaDB, PostgreSQL or MySQL. We also give an excerpt of a FM related to a given PaaS (FM_PaaS), chosen to deploy the application. Thanks to constraints between FMS, we ensure the application to be fully working once deployed, as every selected feature in the FM_Application is associated to a feature in the FM_PaaS (i.e., the application configuration requirements are entirely covered by the PaaS technical funtionalities). Note that each existing PaaS cloud solution is associated to its related FM. Existing tools, such as FA-MILIAR provide mechanisms to merge FMS together [START_REF] Acher | Composing feature models[END_REF]. Merging the FMS of each PaaS solution yields a FM that gives a detailed view of all available PaaS solutions. This way one does not need to look for constraints between the application FM and every Paas FM. Using this approach, one possible outcome is that there is no PaaS available that fits the application technical requirements. In such a situation, the application can still be deployed as SaaS on top of IaaS provider, such as Amazon EC2 1 .

B. Deployment on Top of IaaS

Deploying an application on top of a IaaS provider is slightly different than a PaaS where all infrastructure resources are provided transparently. The deployment on top of IaaS does not only require the application to be deployed, but also the configuration of the whole software stack (operating system, libraries, applications servers and applications), called virtual appliance. Such appliances run on virtual machines hosted by IaaS data centers. FIG. 1 are used to describe the whole virtual appliance needed to run the application. The application requires a Tomcat application server, a MySQL database and a Java library (typically a JDK). Configuring one's own PaaS this way allows the deployment of lightweight virtual appliances, as there is no unexpected tools added (e.g., a version control system) like it often happens using public PaaS. If needed, these kinds of tools must be part of the FM_Application configuration. This point is very important in order to reduce the virtual appliance disk space footprint, as IaaS providers today face important problems of virtual appliance storage and slow transfer of virtual appliances data across cloud servers [START_REF] Quinton | Leveraging Feature Models to Configure Virtual Appliances[END_REF]. Reducing virtual appliance footprint also means reducing costs, as it is possible to run a given application on a smaller virtual machine instance (e.g., on Amazon EC2, a large instance is four times more expensive than a small one for a Linux usage). In [START_REF] Dougherty | Model-Driven Auto-Scaling of Green Cloud Computing Infrastructure[END_REF], they derive a set of virtual appliances using FM for an auto-scaling queue for a given application and IaaS while we use FMS to derive a virtual appliance for a given application and select the best IaaS provider corresponding to the virtual appliance configuration.

C. Considering User Quality Requirements: Challenges

Whether the application is deployed on top of PaaS or IaaS, the range of cloud solutions indicated by this decisionsupport tool is still significant. Based on specific customer requirements, we describe how the FM configuration can address challenge C 2 and help such a tool to provide a more accurate result. The previously described approach works fine considering technical requirements (e.g., if the application requires a Tomcat application server, the tool suggests PaaS solutions that provide such a functionality). However, it does not take into consideration the users' quality requirements. Customers often ask their application to be secure, flexible, reliable or inexpensive, and usually a combination of these criteria. Such criteria, or concerns, crosscut the cloud provider functionalities (i.e., features), and managing FM related to several concerns is intuitively a problem of Separation of Concerns (SOC) [START_REF] Parnas | On the criteria to be used in decomposing systems into modules[END_REF]. To support SOC, we propose to use extended feature models [START_REF] Czarnecki | Generative programming for embedded software: An industrial experience report[END_REF], [START_REF] Karatas | Mapping Extended Feature Models to Constraint Logic Programming over Finite Domains[END_REF], where information (e.g., quality requirements) can be attached to features. This information, defined at application level (i.e., in the FM_Application) by the customer can be compared to the different PaaS FM (i.e., FM_PaaS) during the configuration phase thanks to inter-features constraints. Figure 2 shows an excerpt of a PaaS FM and its related concerns. Features can be related to one (SSL, Database) or several (Load balancer) concerns, and concerns can crosscut several features (cost). Note that in a cloud environment, the cost concern (that customers often specify as the most important with scalability) is strongly related to resource usage (CPU, network and disk space). In the above example, the Load balancer feature, if selected, requires several application servers to be used and consequently more CPU consumption, while the Database feature requires more disk space. Attributes associated to features can specify a concern and a related value (e.g., the Database feature can be associated to attributes like size: 20GB, cost 15$ or a set of attributes).

IV. DISCUSSION

In this paper, we have presented the problems that CETIC faces when trying to identify the best cloud solution for a given application. We first plan to develop a prototype decision-support tool that helps identifying candidates among all PaaS cloud providers. This tool, based on feature model automations, deals with variability in PaaS functionalities. Combined with SOC to take into account customer quality requirements and priorities, it provides an accurate range of PaaS solutions to host the application. Secondly, if there is no suitable PaaS solution (whether the technical requirements or the customer quality requirements cannot be met), the application can be deployed on top of IaaS. For such situations, we also consider developing a tool that generates all the virtual machine configuration script, in order to built a comprehensive solution that facilitates the choice of a cloud platform as well as the deployment step.

Many questions remain open, e.g., integrating results from the COTS selection literature, dealing appropriately with priorities, how to design the tool, and validating/improving the approach through case studies.

Figure 1 .

 1 Figure 1. Different ways of configuring an application to be deployed in the cloud

Figure 2 .

 2 Figure 2. Separation of Concerns and Feature Model

http://aws.amazon.com/ec2/

ACKNOWLEDGMENT

This work is supported by Ministry of Higher Education and Research, Nord-Pas de Calais Regional Council and FEDER through the Contrat de Projet Etat Region Campus Intelligence Ambiante (CPER CIA) 2007-2013.