Analyse des solutions PaaS Open Source 2/3

Partie 1 : Présélection de solutions PaaS

Une solution PaaS “open source” permet à un développeur de contribuer et de partager le code source de son application et de ses extensions dans sa communauté. Cela permet aux développeurs d’avoir des solutions bien définies selon leurs exigences et d’assurer une assistance solide dans la communauté “open source”.
En général, les solutions PaaS “open source” intègrent aussi des outils et technologies “open source” qui sont très tendance de nos jours. Par exemple, la majorité des solutions utilisent les conteneurs d’applications (par exemple Docker), les outils d’orchestration des conteneurs (par exemple Kubernetes), des systèmes d’exploitation basés sur Linux (par exemple CoreOS), etc. En outre, ce genre de solutions est basé sur les mêmes notions et méthodologies (par exemple les “buildpacks” et la méthodologie l’application 12 facteurs).

Analyse des solutions PaaS Open Source 2/3

Partie 1 : Présélection de solutions PaaS

Une solution PaaS “open source” permet à un développeur de contribuer et de partager le code source de son application et de ses extensions dans sa communauté. Cela permet aux développeurs d’avoir des solutions bien définies selon leurs exigences et d’assurer une assistance solide dans la communauté “open source”.
En général, les solutions PaaS “open source” intègrent aussi des outils et technologies “open source” qui sont très tendance de nos jours. Par exemple, la majorité des solutions utilisent les conteneurs d’applications (par exemple Docker), les outils d’orchestration des conteneurs (par exemple Kubernetes), des systèmes d’exploitation basés sur Linux (par exemple CoreOS), etc. En outre, ce genre de solutions est basé sur les mêmes notions et méthodologies (par exemple les “buildpacks” et la méthodologie l’application 12 facteurs).

Les solutions PaaS open source

Durant la phase de découverte et de sélection d’une solution PaaS, les développeurs sont face à une abondance de solutions parmi lesquelles ils doivent choisir la solution la plus appropriée à leurs exigences. Afin d’alléger cette charge imposée aux développeurs, nous présentons ci-dessous une liste de cinq solutions PaaS “open source”. Il est à noter qu’un peu plus loin dans cet article nous exposons dans un tableau une liste comprenant onze solutions PaaS.

  • OpenShift Origin est une solution proposée par Red Hat permettant la gestion des applications au-dessus d’un système d’exploitation Linux Red Hat. Il peut être intégré avec Jenkins pour faire de l’intégration continue, Cron pour faire de l’ordonnancement des tâches, et SwitchYard pour gérer les applications à base de services. Depuis 2014, l’architecture d’OpenShift a été améliorée en intégrant Docker et Kubernetes afin de bien gérer le cycle de vie des applications.
  • DEIS permet de gérer les applications basées sur la méthodologie 12 facteurs dans des environnements Cloud privés ou publics. Cette solution intègre trois technologies clés. Premièrement, DEIS est basé sur des clusters ayant le système d’exploitation CoreOS basé sur le processus métier de Heroku. Deuxièmement, il permet de déployer les applications sous la forme de conteneurs. Troisièmement, il intègre Kubernetes pour gérer d’une manière automatique le cycle de vie des conteneurs d’application. Le déploiement des application dans DEIS est guidé par l’utilisation des Buildpacks. Il est à noter que cette solution ne fournit pas des services de données. Toutefois, il est possible d’utiliser ceux de la solution payante Engine Yard.
  • Dokku est basé sur Docker. Il est considéré comme un mini-Heroku. Il est très léger et facile à installer sur des machines locales pour acquérir son propre PaaS. Le déploiement d’une application dans cette solution est très simple grâce aux buildpacks. La spécificité de Dokku est qu’il est écrit en une centaine de lignes de Bash et il intègre Docker, Buildstep, et Gitreceive.
  • Flynn est une solution intégrant Docker. Il supporte l’exécution de n’importe quelle application dans un système d’exploitation Linux. Même si cette solution ressemble à Heroku, Flynn peut être hébergé sur des machines locales et est gratuit. Il est basé sur l’utilisation des buildpacks pour déployer les applications à travers la commande “git push”.
  • PaaSTA est une solution très originale. En effet, elle joue le rôle de la colle entre plusieurs outils open source. Cette solution est connue comme étant la solution PaaS de la plateforme de gestion des commerces locaux Yelp. Elle intègre Docker pour la conteneurisation des applications, Apache Mesos/Marathon pour l’orchestration des conteneurs des applications, Sensu pour le contrôle et l’évaluation, et Jenkins pour le déploiement continu des applications.

Première partie de l’analyse des solutions PaaS open source

Cet article de blog n’est pas censé être une comparaison entre les solutions PaaS mais a pour but de donner un aperçu général des solutions PaaS open source existant de nos jours. Cela serait certainement intéressant et utile pour les utilisateurs afin de choisir la solution PaaS la plus appropriée aux exigences de leurs applications. Pour ce faire, nous commençons par présenter une liste de critères de sélection que nous avons fixés pour examiner les solutions PaaS open source les plus utilisées.

  • Hébergement (privé/public) : Un cloud privé est utilisé par une seule organisation qui est responsable de sa gestion et de sa maintenance. Un cloud public est utilisé par plusieurs organisations et il appartient et est géré par l’une de ces organisations.
  • Scalabilité : Dans la couche PaaS du Cloud, une application peut évoluer de deux manières. Elle évolue verticalement en augmentant la puissance d’une machine virtuelle existante. Elle évolue horizontalement en allouant une nouvelle machine pour renforcer la ou les machine(s) virtuelle(s) existante(s).
  • Statut : Comme ces solutions se basent sur de nouvelles technologies open source qui évoluent fréquemment, elles doivent livrer de nouvelles versions à jour. Ces versions peuvent être alpha, beta et en production.
  • Déclarative/impérative : Une solution PaaS peut être soit déclarative soit impérative. En effet, en utilisant une solution déclarative, le développeur implémente son application en précisant ce que son application est censée faire. La configuration de son application est décrite dans un modèle externe qu’il peut modifier sans toucher à son code source. Par contre, en utilisant une solution impérative, le développeur implémente son application en spécifiant comment elle devrait s’exécuter. La configuration de son application est codée en dur dans son code source.
  • Facturation : Chaque solution PaaS facture ses services en se basant sur un modèle bien spécifique connu sous le terme anglais “pay-as-you-go”. Une solution PaaS peut être soit gratuite soit payante.
  • Langages de programmation : L’un des points importants à prendre en compte lors de la sélection d’une solution PaaS est le ou les langages de programmation que la solution fournit.
  • Frameworks et middlewares : Chaque solution PaaS fournit un ensemble de middlewares et de frameworks que le développeur utilise pour exécuter son application.
  • Services de données : Chaque solution assure un ensemble de services de données permettant à une application de stocker et d’interagir avec ses données. Ces services peuvent être soit de type relationnel soit de type NoSQL.

Nous présentons dans ce qui suit un tableau de comparaison entre onze solutions PaaS open source. Nous vérifions comment chaque solution répond aux critères que nous avons définis ci-dessus. Un champ grisé signifie que la solution ne correspond pas à un critère donné.

Tableau part 1 {PNG}
A partir du tableau, nous constituons une liste de cinq solutions PaaS que nous souhaitons installer et tester au sein de notre organisme CETIC. Nous avons choisi OpenShift car c’est l’une des solutions PaaS les plus connues et utilisées du marché. Ensuite, nous avons sélectionné les solutions DEIS, Dokku, Flynn et PaaSTA, qui répondent le mieux aux critères que nous avons définis ci-dessus. De plus, elles intègrent plusieurs technologies open source de gestion des applications (par exemple Docker, Kubernetes, git, …).