Cette analyse se base sur trois axes principalement en liaison directe avec l’utilisation d’une solution PaaS donnée :
- Evaluation de la qualité de la documentation et de la communauté open source,
- Evaluation de l’installation et de la familiarisation avec la solution PaaS en terme de temps et de main d’oeuvre.
- Evaluation du comportement d’une solution PaaS selon les scénarios d’exécution (c’est à dire l’intégration continue, scalabilité et élasticité).
Caractéristiques de l’environnement du test
Afin de tester et d’évaluer la performance des cinq solutions PaaS d’une manière uniforme et cohérente, nous utilisons un environnement virtuel sur le cluster VMware du CETIC. Chaque solution sera installée et testée sur une machine virtuelle ayant une système d’exploitation Linux Ubuntu 16.04 (sauf pour OpenShift qui doit être installé sur CentOS 7), une RAM de 16Gb de RAM et un processeur 4vCPU.
Scénarios d’exécution
Pour tester le comportement des solutions PaaS, nous avons définis deux scénarios d’exécution possible dans le Cloud. Ces scénarios sont tirés de deux projets de recherche wallons et représentent des cas d’utilisations réels.
- Scénario 1 : Application Web à base de Nginx : L’application permet à un patient donné de consulter et renseigner sa liste de médicaments sur la base des données communiquées par ses médecins (généralistes ou spécialistes) ainsi que ses pharmaciens. Ces données sont disponibles via le Réseau Santé Wallon (RSW). Cette application a été proposé dans le cadre du projet de recherche wallon SEAMPAT. Nous utilisons cette application pour évaluer le processus de déploiement et d’intégration continue des applications dans les solutions PaaS sélectionnées.
- Scénario 2 : Analyse des données Big Data (TSimulus) : TSimulus est un outil open source permettant la génération aléatoire de séries temporelles. Une série temporelle est une séquence ordonnée de points dans le temps où chaque point est associé à au plus une valeur. TSimulus a été proposé dans le cadre du projet de recherche wallon EAM-SDI. Dans le cadre de cette analyse, nous proposons d’utiliser la version conteneurisée de TSimulus que nous allons déployer dans les solutions PaaS sélectionnées afin de tester le comportement de chaque solution lorsque TSimulus monte en charge.
Installation des solutions PaaS
Durant l’installation des solutions PaaS sur l’infrastructure du CETIC, nous avons écarté deux solutions. La première solution est PaaSTA. En effet, l’installation de cette solution est très longue. Elle nécessite l’installation d’au moins sept outils (c’est à dire Docker, Mesos, Marathon, Chronos, SmartTask, Sensu et Jenkins). De plus, elle est coûteuse en terme de temps et exige plusieurs ressources. La deuxième solution est Flynn. L’installation de cette solution se repose sur l’utilisation d’un serveur distant en ligne. Cette dépendance est incompatible avec nos exigences dans cette analyse. Pour le reste de cet article, nous nous intéresserons aux trois solutions restantes qui sont OpenShift Origin, Dokku et Deis.
Critères d’analyse
Les critères d’analyse des solutions que nous avons définies sont catégorisés selon les axes présentés ci-dessus.
- Qualité de la documentation : Afin de bien étudier la qualité de la documentation d’une solution PaaS donnée, il très important d’évaluer la communauté open source (c’est-à-dire sa taille, son niveau de réactivité aux issues ouvertes, ... ) et estimer le temps de documentation.
- Déploiement de la solution PaaS : Il est très important d’analyser le processus de déploiement de la solution PaaS. Pour cela, il faut évaluer le temps de l’action de déploiement, le coût de la main d’oeuvre nécessaire et le temps de la familiarisation avec la solution PaaS une fois installée. De plus, il faut vérifier si le processus de déploiement de la solution PaaS est (1) automatique ou manuelle et (2) déclarative ou impérative.
- Intégration continue de l’application : Aujourd’hui l’intégration continue des applications Web dans le cloud est très recommandée pour le bon maintien du cycle de vie de l’application. Pour cela, nous proposons d’étudier cet aspect dans chaque solution PaaS. En effet, il faut vérifier si elle fait partie des fonctionnalité native de la solution PaaS et si c’est possible d’utiliser une solution tiers pour ce fait. De plus, il faut il faut évaluer le temps de déploiement de l’application et de la mise en place du processus d’intégration continue.
- Scalabilité : Parmi les fonctionnalités les plus désirées par les utilisateurs en déployant leurs applications dans le Cloud est la scalabilité. Pour ce faire, nous proposons de vérifier (1) la nature de la scalabilité fournie (c’est à dire verticale et/ou horizontale), (2) si la scalabilité est automatique ou non, et (3) la manière de l’ajout d’une nouvelle instance.
Synthèse
En se basant sur le tableau ci-dessus et sur nos constatations faites lors de l’installation et du test des solutions PaaS, nous présentons la synthèse pour cet article de blog :
- Les deux solutions Flynn et PaaSTA ont été écartés. En effet, l’installation de ces deux solutions est compliquée et exige plusieurs dépendances. De plus, elles ne sont pas trop performantes en terme de ressources une fois installées.
- La solution Deis est fortement liée à l’outil d’orchestration des conteneurs Kubernetes. Cela, engendre plusieurs limitations à l’utilisation. En effet, le processus du déploiement de la solution devient très long vu qu’il est basé sur un cluster Kubernetes préexistant. Il faut compter aux alentours d’une semaine dont la majorité du temps est consommée par la mise en place de Kubernetes. En plus, Deis a été racheté récemment par Microsoft. Cela a ralenti la production de nouvelles versions et l’amélioration de cette solution PaaS. L’information sur l’évolution de l’outil dans le futur n’est pas trop claire.
- La qualité de de la communauté open source de la solution Dokku est très bonne ainsi que celle de la documentation. Il s’agit de la solution la plus simple à déployer. Toutefois, elle est semi-déclarative et elle est basée sur l’utilisation de la ligne de commande. Dokku n’est pas facilement extensible avec des outils tiers et cela est due à cause du manque d’ouverture de son architecture logicielle. Enfin, la gestion de la scalabilité des applications est manuelle.
- La communauté open source de la solution OpenShift Origin est vaste et de bonne qualité. Elle fournit une documentation de qualité homogène et disponible en plusieurs langues (par exemple anglais, français, ...). Même si le déploiement d’OpenShift prend un peu de temps, il est automatique et déclaratif. Il est à noter que cette solution est entièrement basé sur Kubernetes et l’installation de ce dernier est intégrée dans son déploiement. C’est un avantage certain pour la facilité de la mise en place d’une solution PaaS et allège la tâche des développeurs. Openshift permet l’intégration continue nativement et il est extensible par des outils tiers. Enfin, l’outil offre la scalabilité verticale et horizontale de manière automatique.
Grâce à cette analyse, nous avons pu faire notre décision et avons chois Openshift Origin car c’est la solution PaaS qui répond le plus à nos besoins au CETIC, notamment en termes d’interopérabilité et d’intégration avec des outils tiers. Outre le fait qu’Openshift fait partie des projets PaaS open source les plus connus et dynamiques c’est aussi un outil utilisée dans l’industrie, ce qui facilite le transfert de connaissance avec les entreprises.
Références
[1] https://github.com/openshift/origin
[2] https://github.com/dokku/dokku
[3] https://github.com/deis/deis
[4] https://docs.openshift.org/latest/welcome/index.html
[5] http://dokku.viewdocs.io/dokku/getting-started/installation/
[6] https://github.com/deis/workflow