Le Ser­ver­less prêt pour la pro­duc­tion ?

Consi­dé­ré comme l’ar­chi­tec­ture in­for­ma­tique du fu­tur, le « Ser­ver­less » ou « cal­cul sans ser­veur » sus­cite beau­coup d’in­ter­ro­ga­tion. Si les pre­miers services cloud tiennent leurs pro­messes, la tech­no­lo­gie a aus­si des contraintes. Et toutes les ap­pli­ca­tion

L'Informaticien - - SOMMAIRE - ALAIN CLAPAUD

Dans un dis­cours qui a consti­tué l’acte fon­da­teur du mou­ve­ment Ser­ver­less, Wer­ner Vo­gel, l’em­blé­ma­tique di­rec­teur tech­nique d’Ama­zon Web Services, dé­cla­rait lors de l’AWS Sum­mit de 2015 : « No Server is ea­sier to ma­nage than no server » ( 1). Der­rière cette ci­ta­tion plu­tôt énig­ma­tique, le géant amé­ri­cain du Cloud dé­voi­lait son offre Ser­ver­less, AWS Lamb­da. Si le prin­cipe de base du Ser­ver­less avait dé­jà été dé­fi­ni près d’une di­zaine d’an­nées plus tôt, avec cette offre, Ama­zon Web Services était le pre­mier gros ac­teur du Cloud à lan­cer une offre com­mer­ciale de ce type à grande échelle.

Du FaaS et du BaaS

Il est main­te­nant ad­mis que le Ser­ver­less se­ra l’ar­chi­tec­ture in­for­ma­tique qui suc­cé­de­ra à la con­te­neu­ri­sa­tion. Le prin­cipe de base du ser­ver­less est d’une sim­pli­ci­té bi­blique : le dé­ve­lop­peur charge sa fonc­tion à exé­cu­ter sur le ser­vice cloud, à charge à l’opé­ra­teur d’as­su­rer son exé­cu­tion sans se sou­cier du nombre d’ap­pels si­mul­ta­nés. « Les équipes DevOps peuvent se concen­trer sur la par­tie qui a le plus de va­leur ajou­tée pour l’uti­li­sa­teur fi­nal, c’est- à- dire le code » , ré­sume Laurent Gran­geau, Cloud So­lu­tion Ar­chi­tect chez So­ge­ti. « Toute la plom­be­rie d’hé­ber­ge­ment, de sca­la­bi­li­té et de ré­si­lience est gé­rée par le Cloud pro­vi­der, et non plus par une équipe dé­diée dans des da­ta­cen­ters en propre. » Ce vo­let exé­cu­tion de code dans le Cloud est bap­ti­sée FaaS pour « Func­tion as a Ser­vice » , mais le Ser­ver­less in­clut aus­si le vo­let BaaS pour Ba­ckend as a Ser­vice. Il s’agit d’une sé­rie de services qui vont pou­voir être consom­més par les ap­pli­ca­tions Ser­ver­less. On classe les bases de don­nées par­mi ces BaaS, mais aus­si les services de ges­tion d’iden­ti­té, des buses de mes­sages, des trai­te­ments de type ETL ou en­core des ca­pa­ci­tés de Web­hook pour dé­clen­cher des fonc­tions se­lon les évé­ne­ments HTTP, etc. Outre une sim­pli­fi­ca­tion d’ar­chi­tec­ture, le Ser­ver­less pré­sente un ar­gu­ment clé, son mo­dèle ta­ri­faire : « L’autre atout du Ser­ver­less, c’est la consom­ma­tion en pay- per­call » , ex­plique Laurent Gran­geau. « Lors­qu’un en­vi­ron­ne­ment est pro­vi­sion­né et qu’au­cun ap­pel n’est fait sur cet en­vi­ron­ne­ment, il n’y a au­cun cout sup­plé­men­taire, con­trai­re­ment à une ap­proche IaaS, ou l’en­vi­ron­ne­ment est fac­tu­ré en fonc­tion de son up­time. De ce fait, les coûts peuvent être dras­ti­que­ment ré­duits, pas­sant de plu­sieurs cen­taines d’eu­ros par mois, à quelques cen­times dans cer­tains cas. » Ce nou­veau mo­dèle éco­no­mique est en­core plus pré­cis que la lo­ca­tion d’une ins­tance de ser­veur à l’heure ou même à la mi­nute et, comme le sou­ligne Vir­gi­nie Ma­thi­vet de TeamWork, une fac­tu­ra­tion par in­cré­ments de 100 mil­li­se­condes est par­ti­cu­liè­re­ment adap­tée à l’IoT où il faut lan­cer un trai­te­ment à l’ar­ri­vée épi­so­dique d’évé­ne­ments gé­né­rés par les ob­jets connec­tés. Tou­te­fois, dès que ces évé­ne­ments sur­viennent en conti­nu, les courbes de coûts peuvent se croi­ser entre la lo­ca­tion d’une ins­tance IaaS en conti­nu et le Ser­ver­less.

Le Ser­ver­less bien adap­té aux spé­ci­fi­ci­tés de l’IoT

L’IoT, où l’on doit lan­cer une fonc­tion au mo­ment de l’ar­ri­vée d’une don­née, ou en­core le Big Da­ta, se prête bien à ce nou­veau mode de consom­ma­tion de puis­sance in­for­ma­tique dans le Cloud, il est aus­si pos­sible de créer des ap­pli­ca­tions Web sur une ar­chi­tec­ture Ser­ver­less, pla­cer une fonc­tion FaaS der­rière une API, lan­cer une ac­tion de ma­nière pla­ni­fiée via des com­mandes cron, réa­li­sé un trai­te­ment à l’ap­pel d’une url dans une page, lan­cer une fonc­tion lors­qu’on co­pie un fi­chier dans le Cloud ou même lors­qu’on sauve un fi­chier Ex­cel sur One­drive.

IBM a même fait la dé­mons­tra­tion d’une chaîne de trai­te­ment d’ana­lyse d’images vi­déo d’un drone en temps réel. Dans cette ap­pli­ca­tion bap­ti­sée Sky­link, une fonc­tion ser­ver­less étant char­gée d’en­voyer les images à ana­ly­ser à IBM Wat­son puis de ré­cu­pé­rer les ré­sul­tats, des tags dé­cri­vant les ob­jets iden­ti­fiés dans l’image afin de les af­fi­cher en marge du flux vi­déo. Si les ap­pli­ca­tions temps réel ou in­ter­agis­sant avec les uti­li­sa­teurs sont théo­ri­que­ment pos­sibles en s’ap­puyant sur une in­fra­struc­ture Ser­ver­less, le sup­port des lan­gages de pro­gram­ma­tion par les opé­ra­teurs de services FaaS est un élé­ment im­por­tant dans le choix d’une plate- forme. Ce choix est im­por­tant no­tam­ment en termes de per­for­mances. En ef­fet, Le Ser­ver­less pré­sente la ca­rac­té­ris­tique d’avoir un temps de la­tence im­por­tant lors du pre­mier ap­pel d’une fonc­tion, c’est le phé­no­mène du « Cold Start » . C’est glo­ba­le­ment le temps mis par l’in­fra­struc­ture de l’opé­ra­teur cloud de mon­ter en mé­moire le conte­neur qui contient la fonc­tion ap­pe­lée, sa­chant que le conte­neur va être ef­fa­cé au bout de quelques mi­nutes d’in­ac­ti­vi­té. Pour des trai­te­ments IoT ou des batchs des­ti­nés à ali­men­ter un Da­ta Lake, ce dé­lai d’exé­cu­tion n’est pas né­ces­sai­re­ment un han­di­cap, en re­vanche, s’il s’agit de sup­por­ter des API REST­ful qui doivent être très ré­ac­tives ou des ap­pli­ca­tions web des­ti­nées à des

uti­li­sa­teurs « hu­mains » , ce phé­no­mène peut être très han­di­ca­pant. Steve Houel, ar­chi­tecte so­lu­tion chez Ip­pon Tech­no­lo­gies sou­ligne que « Sur un pro­jet que nous me­nons ac­tuel­le­ment pour un gros in­dus­triel, nous n’avons au­cun sou­cis au ni­veau ar­chi­tec­ture. Mais si un uti­li­sa­teur fait un ap­pel à une fonc­tion très peu uti­li­sée, il peut avoir un dé­lai de 15 à 20 se­condes avant d’avoir une ré­ponse. » L’ex­pert sou­ligne que le choix du lan­gage in­flue très di­rec­te­ment sur ce dé­lai d’exé­cu­tion. « AWS offre cinq lan­gages pour son ser­vice Lamb­da et cha­cun de ces lan­gages à un temps de Cold Start. Mettre en oeuvre le Ja­va et sa JVM im­plique un temps de char­ge­ment qui peut at­teindre la mi­nute ! » Un tel temps d’at­tente peut pa­raître in­com­pré­hen­sible pour les uti­li­sa­teurs d’une nou­velle ap­pli­ca­tion, sur­tout si on leur ex­plique que celle- ci met en oeuvre l’ar­chi­tec­ture la plus no­va­trice du mo­ment… Pour mas­quer ce phé­no­mène, les dé­ve­lop­peurs uti­lisent des sub­ter­fuges et font des ap­pels ré­gu­liers à chaque fonc­tion « à blanc » via un fi­chier « cron » afin que celles- ci res­tent en per­ma­nence en mé­moire et

ain­si épar­gner les uti­li­sa­teurs de « Cold Start » pen­dant leur jour­née de tra­vail.

Du Ser­ver­less en on- pre­mise, c’est pos­sible !

L’ap­proche Ser­ver­less semble to­ta­le­ment liée à la no­tion de Cloud pu­blic et pour­tant des so­lu­tions per­mettent de dé­ployer une ar­chi­tec­ture Ser­ver­less sur des ser­veurs on- pre­mise et donc sur un Cloud pri­vé. Outre Fn Pro­ject et Apache OpenW­hisk, les so­lu­tions mises en oeuvre par Oracle et IBM, il existe plu­sieurs fra­me­works al­ter­na­tifs. Par­mi eux, Ku­be­less, fis­sion ou OpenFaaS ba­sés sur Ku­ber­netes, ou en­core Dis­patch, un fra­me­work Ser­ver­less Open Source qui a été an­non­cé lors de VM­world 2017. Édi­té sous li­cence Apache 2.0, cette so­lu­tion pour­rait in­té­res­ser les en­tre­prises dont le Cloud in­terne est mo­to­ri­sé par les so­lu­tions de vir­tua­li­sa­tion VM­ware. En­fin, pour les en­tre­prises adeptes des tech­no­lo­gies Mi­cro­soft, l’édi­teur pro­pose un run­time d’Azure Func­tions pour Win­dows 10, mais ont aus­si été mis à la road­map une ver­sion Li­nux et Mac de la pla­te­forme Ser­ver­less de Mi­cro­soft. Ces ver­sions sont ac­tuel­le­ment au stade de la pré­ver­sion. Pour l’heure, les ex­perts es­timent les plates- formes Ser­ver­less pas as­sez ma­tures pour sup­por­ter de lourdes ap­pli­ca­tions com­po­sées de plu­sieurs di­zaines de fonc­tions. Néan­moins, les offres évo­luent ra­pi­de­ment, no­tam­ment afin d’in­dus­tria­li­ser les dé­ploie­ments de grand nombre de fonc­tions et al­ler vers le Graal du NoOps, c’est- à- dire d’une ar­chi­tec­ture qui ne né­ces­site plus au­cune opé­ra­tion de main­te­nance. Laurent Gran­geau sou­ligne que « L’un des plus gros in­con­vé­nients du Ser­ver­less au­jourd’hui porte sur le test de telles ar­chi­tec­tures, que ce soit de ma­nière uni­taire, mais aus­si de bout en bout. Ce­la oblige les dé­ve­lop­peurs à mettre l’ac­cent en­core plus sur des mé­thodes type TDD ( Test Dri­ven De­ve­lop­ment), dé­cou­plant le code mé­tier, de la plom­be­rie propre à chaque Cloud pro­vi­der, afin de pou­voir tes­ter uni­tai­re­ment chaque fonc­tion, ou la bou­chon­ner. » L’ex­pert es­time que ces in­con­vé­nients vont peu à peu s’es­tom­per grâce à une stan­dar­di­sa­tion de l’ar­chi­tec­ture ser­ver­less, stan­dar­di­sa­tion ini­tiée par la pu­bli­ca­tion du « Ser­ver­less Whi­te­pa­per 1.0 » par la Cloud Na­tive Com­pu­ting Foun­da­tion. Pour Adrien Blind, l’en­jeu pour le fu­tur va être de désen­cla­ver le Ser­ver­less. « Les ap­pli­ca­tions de de­main ne se li­mi­te­ront pas à seule­ment des fonc­tions Ser­ver­less mais se­ront des hy­brides entre du FaaS, des mi­cro­ser­vices plus tra­di­tion­nels, des com­po­sants exé­cu­tés sur du Iaas, etc. Il fau­dra être ca­pable d’or­ches­trer le dé­ploie­ment et ad­mi­nis­trer des élé­ments d’in­fra­struc­tures de na­tures dif­fé­rentes et être ca­pable de le faire dans des en­vi­ron­ne­ments de Con­ti­nuous de­li­ve­ry et DevOps. » Être ca­pable de gé­rer de telles ap­pli­ca­tions hé­té­ro­clites va être un vrai en­jeu pour les an­nées qui viennent. ❍

Na­vi­ga­teur in­ter­net Une ar­chi­tec­ture de site web type sur la pla­te­forme Ser­ver­less Ama­zon Web Services, avec les ap­pels qui tran­sitent par l’API Ga­te­way en di­rec­tion des fonc­tions exé­cu­tées par le ser­vice Lamb­da. Ama­zon CloudF­ront Dis­tri­bu­tion Por­tail...

Newspapers in French

Newspapers from France

© PressReader. All rights reserved.