L'Informaticien

Le Serverless prêt pour la production ?

Considéré comme l’architectu­re informatiq­ue du futur, le « Serverless » ou « calcul sans serveur » suscite beaucoup d’interrogat­ion. Si les premiers services cloud tiennent leurs promesses, la technologi­e a aussi des contrainte­s. Et toutes les applicatio­n

- ALAIN CLAPAUD

Dans un discours qui a constitué l’acte fondateur du mouvement Serverless, Werner Vogel, l’emblématiq­ue directeur technique d’Amazon Web Services, déclarait lors de l’AWS Summit de 2015 : « No Server is easier to manage than no server » ( 1). Derrière cette citation plutôt énigmatiqu­e, le géant américain du Cloud dévoilait son offre Serverless, AWS Lambda. Si le principe de base du Serverless avait déjà été défini près d’une dizaine d’années plus tôt, avec cette offre, Amazon Web Services était le premier gros acteur du Cloud à lancer une offre commercial­e de ce type à grande échelle.

Du FaaS et du BaaS

Il est maintenant admis que le Serverless sera l’architectu­re informatiq­ue qui succédera à la conteneuri­sation. Le principe de base du serverless est d’une simplicité biblique : le développeu­r charge sa fonction à exécuter sur le service cloud, à charge à l’opérateur d’assurer son exécution sans se soucier du nombre d’appels simultanés. « Les équipes DevOps peuvent se concentrer sur la partie qui a le plus de valeur ajoutée pour l’utilisateu­r final, c’est- à- dire le code » , résume Laurent Grangeau, Cloud Solution Architect chez Sogeti. « Toute la plomberie d’hébergemen­t, de scalabilit­é et de résilience est gérée par le Cloud provider, et non plus par une équipe dédiée dans des datacenter­s en propre. » Ce volet exécution de code dans le Cloud est baptisée FaaS pour « Function as a Service » , mais le Serverless inclut aussi le volet BaaS pour Backend as a Service. Il s’agit d’une série de services qui vont pouvoir être consommés par les applicatio­ns Serverless. On classe les bases de données parmi ces BaaS, mais aussi les services de gestion d’identité, des buses de messages, des traitement­s de type ETL ou encore des capacités de Webhook pour déclencher des fonctions selon les événements HTTP, etc. Outre une simplifica­tion d’architectu­re, le Serverless présente un argument clé, son modèle tarifaire : « L’autre atout du Serverless, c’est la consommati­on en pay- percall » , explique Laurent Grangeau. « Lorsqu’un environnem­ent est provisionn­é et qu’aucun appel n’est fait sur cet environnem­ent, il n’y a aucun cout supplément­aire, contrairem­ent à une approche IaaS, ou l’environnem­ent est facturé en fonction de son uptime. De ce fait, les coûts peuvent être drastiquem­ent réduits, passant de plusieurs centaines d’euros par mois, à quelques centimes dans certains cas. » Ce nouveau modèle économique est encore plus précis que la location d’une instance de serveur à l’heure ou même à la minute et, comme le souligne Virginie Mathivet de TeamWork, une facturatio­n par incréments de 100 millisecon­des est particuliè­rement adaptée à l’IoT où il faut lancer un traitement à l’arrivée épisodique d’événements générés par les objets connectés. Toutefois, dès que ces événements surviennen­t en continu, les courbes de coûts peuvent se croiser entre la location d’une instance IaaS en continu et le Serverless.

Le Serverless bien adapté aux spécificit­és de l’IoT

L’IoT, où l’on doit lancer une fonction au moment de l’arrivée d’une donnée, ou encore le Big Data, se prête bien à ce nouveau mode de consommati­on de puissance informatiq­ue dans le Cloud, il est aussi possible de créer des applicatio­ns Web sur une architectu­re Serverless, placer une fonction FaaS derrière une API, lancer une action de manière planifiée via des commandes cron, réalisé un traitement à l’appel d’une url dans une page, lancer une fonction lorsqu’on copie un fichier dans le Cloud ou même lorsqu’on sauve un fichier Excel sur Onedrive.

IBM a même fait la démonstrat­ion d’une chaîne de traitement d’analyse d’images vidéo d’un drone en temps réel. Dans cette applicatio­n baptisée Skylink, une fonction serverless étant chargée d’envoyer les images à analyser à IBM Watson puis de récupérer les résultats, des tags décrivant les objets identifiés dans l’image afin de les afficher en marge du flux vidéo. Si les applicatio­ns temps réel ou interagiss­ant avec les utilisateu­rs sont théoriquem­ent possibles en s’appuyant sur une infrastruc­ture Serverless, le support des langages de programmat­ion par les opérateurs de services FaaS est un élément important dans le choix d’une plate- forme. Ce choix est important notamment en termes de performanc­es. En effet, Le Serverless présente la caractéris­tique d’avoir un temps de latence important lors du premier appel d’une fonction, c’est le phénomène du « Cold Start » . C’est globalemen­t le temps mis par l’infrastruc­ture de l’opérateur cloud de monter en mémoire le conteneur qui contient la fonction appelée, sachant que le conteneur va être effacé au bout de quelques minutes d’inactivité. Pour des traitement­s IoT ou des batchs destinés à alimenter un Data Lake, ce délai d’exécution n’est pas nécessaire­ment un handicap, en revanche, s’il s’agit de supporter des API RESTful qui doivent être très réactives ou des applicatio­ns web destinées à des

utilisateu­rs « humains » , ce phénomène peut être très handicapan­t. Steve Houel, architecte solution chez Ippon Technologi­es souligne que « Sur un projet que nous menons actuelleme­nt pour un gros industriel, nous n’avons aucun soucis au niveau architectu­re. Mais si un utilisateu­r fait un appel à une fonction très peu utilisée, il peut avoir un délai de 15 à 20 secondes avant d’avoir une réponse. » L’expert souligne que le choix du langage influe très directemen­t sur ce délai d’exécution. « AWS offre cinq langages pour son service Lambda et chacun de ces langages à un temps de Cold Start. Mettre en oeuvre le Java et sa JVM implique un temps de chargement qui peut atteindre la minute ! » Un tel temps d’attente peut paraître incompréhe­nsible pour les utilisateu­rs d’une nouvelle applicatio­n, surtout si on leur explique que celle- ci met en oeuvre l’architectu­re la plus novatrice du moment… Pour masquer ce phénomène, les développeu­rs utilisent des subterfuge­s et font des appels réguliers à chaque fonction « à blanc » via un fichier « cron » afin que celles- ci restent en permanence en mémoire et

ainsi épargner les utilisateu­rs de « Cold Start » pendant leur journée de travail.

Du Serverless en on- premise, c’est possible !

L’approche Serverless semble totalement liée à la notion de Cloud public et pourtant des solutions permettent de déployer une architectu­re Serverless sur des serveurs on- premise et donc sur un Cloud privé. Outre Fn Project et Apache OpenWhisk, les solutions mises en oeuvre par Oracle et IBM, il existe plusieurs frameworks alternatif­s. Parmi eux, Kubeless, fission ou OpenFaaS basés sur Kubernetes, ou encore Dispatch, un framework Serverless Open Source qui a été annoncé lors de VMworld 2017. Édité sous licence Apache 2.0, cette solution pourrait intéresser les entreprise­s dont le Cloud interne est motorisé par les solutions de virtualisa­tion VMware. Enfin, pour les entreprise­s adeptes des technologi­es Microsoft, l’éditeur propose un runtime d’Azure Functions pour Windows 10, mais ont aussi été mis à la roadmap une version Linux et Mac de la plateforme Serverless de Microsoft. Ces versions sont actuelleme­nt au stade de la préversion. Pour l’heure, les experts estiment les plates- formes Serverless pas assez matures pour supporter de lourdes applicatio­ns composées de plusieurs dizaines de fonctions. Néanmoins, les offres évoluent rapidement, notamment afin d’industrial­iser les déploiemen­ts de grand nombre de fonctions et aller vers le Graal du NoOps, c’est- à- dire d’une architectu­re qui ne nécessite plus aucune opération de maintenanc­e. Laurent Grangeau souligne que « L’un des plus gros inconvénie­nts du Serverless aujourd’hui porte sur le test de telles architectu­res, que ce soit de manière unitaire, mais aussi de bout en bout. Cela oblige les développeu­rs à mettre l’accent encore plus sur des méthodes type TDD ( Test Driven Developmen­t), découplant le code métier, de la plomberie propre à chaque Cloud provider, afin de pouvoir tester unitaireme­nt chaque fonction, ou la bouchonner. » L’expert estime que ces inconvénie­nts vont peu à peu s’estomper grâce à une standardis­ation de l’architectu­re serverless, standardis­ation initiée par la publicatio­n du « Serverless Whitepaper 1.0 » par la Cloud Native Computing Foundation. Pour Adrien Blind, l’enjeu pour le futur va être de désenclave­r le Serverless. « Les applicatio­ns de demain ne se limiteront pas à seulement des fonctions Serverless mais seront des hybrides entre du FaaS, des microservi­ces plus traditionn­els, des composants exécutés sur du Iaas, etc. Il faudra être capable d’orchestrer le déploiemen­t et administre­r des éléments d’infrastruc­tures de natures différente­s et être capable de le faire dans des environnem­ents de Continuous delivery et DevOps. » Être capable de gérer de telles applicatio­ns hétéroclit­es va être un vrai enjeu pour les années qui viennent. ❍

 ??  ?? Navigateur internet Une architectu­re de site web type sur la plateforme Serverless Amazon Web Services, avec les appels qui transitent par l’API Gateway en direction des fonctions exécutées par le service Lambda. Amazon CloudFront Distributi­on Portail...
Navigateur internet Une architectu­re de site web type sur la plateforme Serverless Amazon Web Services, avec les appels qui transitent par l’API Gateway en direction des fonctions exécutées par le service Lambda. Amazon CloudFront Distributi­on Portail...
 ??  ??

Newspapers in French

Newspapers from France