(MODAClouds) State of the art
Deployment and execution
This document is part of the MODAClouds deliverable D6.1, thus superseded by it.
This document was created in March 2013, thus its contents might be currently outdated.
Table of contents
The purpose of the current section is to highlight the potential solutions that could be used --- either through acquisition, reusage or clean-room re-engineering --- to develop ModaClouds' run-time environment, specifically those handling the execution and deployment of applications.
Thus the technical solutions surveyed herein, are grouped in the following broad categories:
- PaaS --- solutions featuring an integrated application and required services or resources life-cycle --- from packaging, through deployment, execution and monitoring --- available usually as hosted services from various cloud providers;
- deployment and execution --- independent software artifacts that focus mostly on the deployment and execution phases; these could be seen as lightweight PaaS replacements, especially suitable for applications requiring a more conservative environment, such as customized software packages, full access to the OS or the network, etc.;
- deployment only --- similar with the above but focusing only on the deployment aspects, such as installation and configuration;
The survey is structured as follows:
- we start with a section (Criteria) describing the characteristics and capabilities we are interested to find in the proposed solutions;
- then in the next one (Solutions) we systematically take the exponents from the categories mentioned earlier, and for each provide the following information:
- the "Overview" section presenting a very high level picture, together with a small dictionary describing the terms either unique or having a particular interpretation in the solution's context; also if needed an architectural view, or short descriptions of various important mechanisms;
- the "Criteria" section, short and to the point, giving summarizing characteristics pertaining to the surveyed solution; this should be materialized in a highly structured text, such as lists or tables;
- followed by the "Notes" and "Limitations" sections that should provide a subjective --- from the ModaClouds' perspective --- critique of the proposed solution, highlighting advantages, disadvantages, future developments, and if possible comparisons with other solutions in the same category;
- then a short "ModaClouds integration" section that would highlight how would the project benefit by integrating the proposed solution;
- and last a "References" section pertaining solely to the analyzed solution --- those references pertaining to multiple solutions should be placed in the proper global references section;
However before proceeding we must make a few observations about the purpose of these solutions, and the distinction between the user's application, and the ModaClouds' services supporting that application. Therefore:
- in the context of the following sections by application we understand the user's application; that is the software artifacts written and provided by the user himself which implement the desired functionality, plus the required services or resources, such as databases, middlewares or other generic components, that are required by the user's components; such an application could target either a PaaS or IaaS cloud provider;
- however in order to enhance the user's application with features such as monitoring, QoS enforcement, automatic scalability, or cloud migration, we are required to run certain support services alongside the user's application; unfortunately due to the complexity and requirements of such support services, we are uncertain that they would be able to run inside a PaaS, as such it is our intention to run these on a IaaS alongside the PaaS that hosts the user's application; (for a IaaS-only solution things are much simpler;)
- we focus on the deployment and execution solutions for the user's application; although we keep an eye open for the possibility to manage alongside the application also the support services; but as stated this is not a main requirement;
- moreover the current survey assesses only the technical aspects related with deployment and execution, meanwhile other parts of this deliverable tackle individual traits such as QoS, monitoring or load-balancing; non-technical aspects such as cost and pricing models are discussed in deliverable D2.1;
- we reiterate once more that, except the "Overview" section, the other sections of the survey are a subjective take on the solutions, the perspective being that of the ModaClouds' own focus and requirements;
Here should be included as a section the contents of the following document: /Criteria.
2.1 PaaS solutions
In the following subsections we survey the most important PaaS solutions, either hosted, like Heroku or Windows Azure, either deployable on self-provisioned IaaS, such as CloudFoundry. Although there are countless other technologies fitting inside the PaaS category, especially emerging products from various startups, we have limited our survey to the ones most likely to be used inside ModaClouds, because they provide a wide degree of flexibility, or are popular choices amongst developers. Moreover this list is not exclusive, because if during the implementation phase of the project we find other suitable candidates we can use them as well.
Here should be included as a section the contents of the following documents: ../Heroku, ../CloudFoundry, ../AppFog, ../AwsElasticBeanstalk, ../GoogleAppEngine, ../WindowsAzure.
2.2 Deployment and execution solutions
In the previous section we have described the PaaS solutions most likely to be used in the project. However there are applications where even a deployable PaaS imposes unsuitable constraints, thus to address these issues we need to rely on even more flexible solutions, that give a finer grained control over the deployed VM's, while still holding most of the PaaS features like deployment and scalability automation.
Here should be included as a section the contents of the following documents: ../Juju, ../Cloudify.
2.3 Deployment solutions
As was stated in the previous two section introductions, some applications require various degrees of freedom, and in this section we focus on those applications that require an IaaS based deployment. Thus we look at a few tools that help automating the task of provisioning, deployment and management of VM's.
Here should be included as a section the contents of the following documents: ../AwsCloudFormation, ../Puppet.
2.4 Research projects
Here should be included as a section the contents of the following document: ../Mosaic.