Le serverless open source, nouvelle frontière du cloud

Le serverless open source, nouvelle frontière du cloud Les technologies dites "sans serveur" automatisent à 100% la mise en œuvre des infrastructures de déploiement d'application. L'arrivée du logiciel libre sur ce terrain pourrait changer la donne.

Taillés pour mettre en production des applications sans avoir à se préoccuper des serveurs ou machines virtuelles sous-jacentes, les systèmes cloud dits sans serveur commencent à se démocratiser au sein des directions techniques d'entreprise. 21% des répondants à un sondage publié en mai 2019 par le cabinet américain Datamation affirment recourir à cette technologie dans le cadre de leur déploiement cloud. Côté providers, les quatre principaux acteurs de l'infrastructure as a service (IaaS), que sont Alibaba Cloud, Amazon Web Services (AWS), Microsoft et Google, affichent désormais tous ce produit au catalogue. En automatisant à l'extrême le provisionning des ressources IT, le serverless est déjà une piste pleine de promesses (lire le retour d'expérience Euler Hermes parie sur un cloud sans serveur et 100% as code). Mais combinée au modèle open source, sa puissance pourrait être décuplée.

Apache OpenWhisk, Cloudstate, Fn Project, Nucleo, OpenFaas, … Les frameworks open source orientés serverless sont déjà nombreux. A l'instar de leurs équivalents dans l'univers propriétaire, ils permettent d'obtenir une infrastructure serveur 100% automatisée. Dans la même logique, ils embarquent le code applicatif dans "des fonctions" qui s'exécutent en réponse à des événements (exemple : l'ouverture d'une page web déclenchera une session, des requêtes en base de données, etc.). D'où le terme de function as a service, ou FaaS, couramment utilisé pour qualifier les offres serverless.

"Mais à l'inverse des services cloud managés qui resteront des boîtes noires, les FaaS open source donnent de facto une visibilité complète sur les rouages de la pile logicielle. Ce qui permettra de monitorer les performances et d'optimiser la consommation de ressources IT de manière très fine en fonction des traitements, et potentiellement aboutir à de meilleurs résultats", explique Thibaut Demaret, CTO chez Worteks, société de services experte en logiciels libres. Evidemment, cette voie implique d'installer et paramétrer soi-même la solution.

Write once, run anywhere

Reste un problème : tout comme les applications portées sur les FaaS des clouds publics, celles mises en œuvre sur les FaaS open source ne pourront être migrées en l'état sur des plateformes serverless alternatives. Elles demeureront prisonnières. "D'autres technos open source comme Claudia.js ou Serverless Framework viennent résoudre cette difficulté. Agnostiques en termes de déploiement, elles permettent de créer plusieurs packages à partir d'un même code source pour le faire tourner sur les clouds sans serveur de son choix ", souligne Alain Rouen, directeur technique et innovation au sein de l'ESN Smile.

"Des technologies mûres"

Serverless Framework par exemple est compatible à la fois avec les services serverless managés d'Amazon (AWS Lambda), de Google (Google Cloud Functions) et Microsoft (Azure Functions). Mais peut également cibler OpenWhisk ou encore Kubernetes. A l'instar de Docker sur le front des containers, Serverless Framework applique au FaaS l'adage "write once, run everywhere" (ou développer une fois, déployer partout), popularisé historiquement par le langage Java.

Les technologies de serverless open source sont-elles mûres ? "Oui", répondent de concert Alain Rouen et Thibaut Demaret. Aux côtés de la plateforme OpenWhisk, l'orchestrateur Kubernetes imprime lui-aussi sa marque sur ce segment avec des extensions telles Fission ou Kubeless conçues pour faire tourner des fonctions. "Kubernetes dispose de nombreux modèles de déploiement qui permettront d'accélérer les projets", ajoute Thibaut Demaret. Qu'en est-il du côté d'OVH ? "Si aujourd'hui OVHcloud ne développe pas d'offre de Function as a Service, nous pourrions un jour l'envisager à partir d'une technologie FaaS open source, réversible et faisant consensus", déclare un porte-parole du groupe. C'est dit.

Pour autant, l'approche open source n'effacera pas les principales contraintes inhérentes au FaaS. "Le serverless est incapable de gérer l'état d'une session applicative. Dans le monde propriétaire comme dans le monde open source, il faudra pour cela faire appel à une base de données", rappelle Alain Rouen. De même, il sera nécessaire dans tous les cas de découper l'architecture en petits composants, ou microservices, capables de venir se loger dans les fonctions (lire l'article : 6 bonnes pratiques pour passer au serverless).