Convergence conteneur et orchestrateur

Par:
laurent.grangeau

lun, 18/06/2018 - 17:28

Début mai, j’ai eu la chance de participer à la KubeCon et CloudNativeCon Europe, la conférence de la Linux Foundation dédiée à Kubernetes, mais aussi à tous les projets du CNCF, la Cloud Native Computing Foundation. Durant cette KubeCon, l’une des choses qui m’a surprise le plus est la convergence plus qu’évidente entre les containers et l’orchestration d’une part (aka Docker et Kubernetes), et le serverless d’autre part.

Le serverless est aujourd’hui une promesse de développement de plus en plus adoptée par tous les acteurs majeurs du web, car il allie la souplesse du développement (vous ne déployez que le code de votre application), la réduction des coûts (vous ne payez que lorsque l’environnement est sollicité), et la simplicité de gestion des plateformes (vous ne gérez pas l’infrastructure sous-jacente).

Un des projets qui m’a le plus intéressé durant cette conférence est OpenFaaS. Plusieurs speakers faisaient référence à ce projet, que ce soit durant les sessions ou lors des keynotes du matin.

OpenFaaS est un projet créé par Alex Ellis, un Docker Captain, travaillant chez VMWare open-source à Londres.

La promesse d’OpenFaaS est de rendre simple la création de fonctions serverless, que ce soit sur Kubernetes ou Docker Swarm.

Le projet est encore jeune mais très prometteur. Il a récemment intégré le paysage du serverless auprès du CNCF.

Ce framework permet de transformer n’importe quel container Docker en fonction serverless, grâce à un petit watchdog présent dans le container. Ce qui veut dire qu’il supporte virtuellement n’importe quel langage (C#, Java, PHP, Go, Rust, Javascript, …) qui repose sur une image de base Docker.

OpenFaaS peut tourner sur Docker Swarm, mais aussi Kubernetes, et intègre toutes les mécaniques propres à Kubernetes. Il intègre aussi un autre projet de la fondation CNCF : Prometheus.

Celui-ci permet de récupérer des métriques afin de pouvoir faire du monitoring en temps réel sur la plateforme, mais aussi de pouvoir scaler automatiquement les fonctions sous-jacentes à la hausse ou à la baisse, voir même d’éteindre automatiquement la fonction, et de ne l’activer que s’il y a de l’activité, afin d’économiser des ressources.

OpenFaaS vient aussi avec une jolie IHM permettant de créer, voir et invoquer les fonctions présentes au sein du projet.

Les fonctions peuvent être invoquées soit par l’IHM, mais aussi par la CLI fourni avec OpenFaaS ou via du code.

Je vous invite à regarder et tester ce projet qui a l’air très prometteur, et qui continue à évoluer, au fur et à mesure de la contribution des personnes au projet.

Laurent Grangeau, développeur