Dans lâhĂ©bergement applicatif, le cloud a apportĂ© une vraie rĂ©volution, avec notamment le serverless. Cette notion est peut cependant ĂȘtre mal comprise. Et quand il sâagit dâhĂ©berger votre application, ou mĂȘme dâen concevoir lâarchitecture, il peut ĂȘtre important de bien cerner quels sont les spĂ©cificitĂ©s de ce type dâhĂ©bergement âŹ.
Table des matiĂšres
đŻ Bien dĂ©finir le serverless
Le problĂšme dans lâincomprĂ©hension du serverless vient directement de son nom, qui est un « faux ami ». Si on peut facilement le traduire par « sans server », ce nâest pas tout Ă fait vrai. Le serverless, câest une catĂ©gorie de service cloud qui consiste Ă hĂ©berger ses applications sans se prĂ©occuper des machines (matĂ©riel, OS et services) qui les hĂ©bergent.
Avec le serverless donc, ce nâest pas quâil nây a pas de serveur. Câest plutĂŽt quâon a pas Ă sâen prĂ©occuper. Nous avons donc une couche dâabstraction qui permet de ne pas avoir Ă se soucier qui est sous-jacent. Cette couche dâabstraction est assurĂ©e par la containĂ©risation de votre application.
đ€ Quâest-ce que ça implique ?
Dans le serverless, lâĂ©norme intĂ©rĂȘt est de justement ne plus se prĂ©occuper du serveur. On Ă©vite ainsi les installations du matĂ©riel, des logiciels, et la maintenance de lâensemble. On cherche Ă rĂ©duire au maximum notre charge afin de se concentrer sur notre objectif : lâhĂ©bergement de nos applications.
Lorsquâon choisit ce type de solution, les objectifs peuvent ĂȘtre divers, et souvent multiples :
- VolontĂ© de simplifier la gestion de lâhĂ©bergement applicatif
- AmĂ©lioration de la scalabilitĂ© des applications (voir lâarticle sur le service Azure Autoscale)
- Réduction de la maintenance et des indisponibilités
- Réduction des coûts
- DĂ©responsabilisation de lâhĂ©bergement
- Faciliter les backups et les restaurations
- ⊠et dâautres que jâai probablement oubliĂ© de lister ici
Avec le serverless, vous allez directement passer dâun modĂšle « On premises » (vous gĂ©rez lâensemble de lâinfrastructure, matĂ©) ou IaaS (vous placez des VM sur le cloud, mais devez quand mĂȘme gĂ©rer les systĂšmes dâexploitation et les services) Ă un modĂšle PaaS.
â Avantages et inconvĂ©nients
Les avantages et inconvénients décrits ci-dessous sont le fruit de ma réflexion et mon expérience. Ils dépendent de votre situation, notamment de votre environnement actuel de comparaison, mais aussi de votre expérience et de vos connaissances.
Avantages | Inconvénients |
---|---|
Gain de sĂ©curitĂ© : pas dâerreur humaine, pas de mise Ă jour oubliĂ©e, pas de soucis de droits | PossibilitĂ© de coupures (mĂȘme si faible, voir SLA) |
ResponsabilitĂ© partagĂ©e avec le prestataire cloud | Lâapplication hĂ©bergĂ©e doit ĂȘtre compatible avec le service utilisĂ© |
Absence de maintenance OS et services | |
Disponibilité assurée par SLA | |
Simplicité de gestion (déployer un service ce fait en quelques clics) | |
CrĂ©ation dâinfrastructure de test / preprod rapide | |
Possibilité de monter et abaisser la charge en quelques clics, avec par exemple Azure Autoscale, permettant ainsi de répondre aux affluences en un temps record et/ou de réduire les factures | |
RĂ©ductions des couts : il est possible dâavoir une infrastructure sâajustant trĂšs rapidement aux besoins. En mettant cela en place, on ne paye que ce que lâon consomme |
đ Exemples des services Serverless sur Microsoft Azure
Les services dâhĂ©bergement applicatif « Serverless » proposĂ© dans les environnements cloud sont nombreux. Des articles sur les diffĂ©rents services vont arriver prochainement.
- App Service : le service dâhĂ©bergement applicatif par dĂ©faut. Il propose un service web capable dâhĂ©berger diffĂ©rents types dâapplication (.net, PHP, nodeJs, et bien dâautres) sur des environnements Windows ou Linux.
- Azure Function : HĂ©bergement dâapplications lĂ©gĂšres, avec plusieurs types de dĂ©clencheurs (http, timer, etc.). IdĂ©al pour la crĂ©ation dâAPI ou de services. Voir lâarticle.
- Azure Static Web App : HĂ©bergement dâapplications web statique (html) ou dynamique via javascript. Le service est plus lĂ©ger que App Service, mais possĂšde un « free tiers« . IdĂ©al pour lâhĂ©bergement de site vitrine, statique, ou de petites Single Page Applications.
- Azure Logic App : DĂ©veloppement dâapplication No Code en quelques clics, basĂ© sur la crĂ©ation de logigrammes. Voir lâarticle.
đ§ Retour dâexpĂ©rience
Le serverless a Ă©tĂ© un rĂ©el apprentissage. Au dĂ©but, cela a Ă©tĂ© compliquĂ© et imparfait, tant du cĂŽtĂ© du service que la mise en application technique. Ce concept nouveau bouscule les conceptions quâon peut avoir de lâarchitecture logicielle, notamment quand on a fait principalement de lâhĂ©bergement sur VM. On ne sait pas exactement quoi utiliser, quand, et comment nos applications peuvent tirer le meilleur de lâinfrastructure.
Mais on y prend vite goût, et on y voit vite aussi les énormes avantages à passer sur ce type de service.
Lâabsence dâinstallation rĂ©pĂ©titive des systĂšmes dâexploitation et des services dâhĂ©bergement web est un vrai confort. Avec cela, on gagne clairement en vĂ©locitĂ©, car on peut dĂ©ployer des dizaines de services en quelques clics.
Mais on gagne aussi en sĂ©curitĂ©, car tout est dĂ©ployĂ© automatiquement. Et nous nâavons accĂšs quâĂ un espace limitĂ©, suffisant pour hĂ©berger notre application.
De plus, le service vient nativement avec plusieurs services « annexes » essentiels.
- Le monitoring est intĂ©grĂ© par dĂ©faut, ce qui lĂ encore donne un vrai confort pour tous. En tant quâadministrateur, mais aussi pour les Ă©quipes de dĂ©veloppements sur les infrastructures de test par exemple.
- Le filtrage IP est prévu par défaut, et il est possible de configurer des VNET
- La possibilitĂ© dây intĂ©grer aussi un service de monitoring de la sĂ©curitĂ© (payant) qui vĂ©rifie que toutes les bonnes pratiques de sĂ©curitĂ©s sont en place, et vous alerte en cas de changements / manquements.
- etc.
Pour ceux qui dĂ©butent, je conseille de se lancer avec les App Service. On hĂ©berge son application web comme sur un IIS, un Nginx ou un Apache. Les autres services ne sont pas plus compliquĂ©s, mais plus spĂ©cifiques. Si vous ĂȘtes adeptes des API, partez plutĂŽt sur les Azure Functions. Dans tous les cas, nâhĂ©sitez pas Ă utiliser Microsoft Learn pour les ressources dâapprentissage sur ces sujets, et bien dâautres !
đ©âđ» DĂ©monstration
Si vous souhaitez, jâai un exemple dâapplication serverless, et qui tourne entiĂšrement en free tier, disponible ici : https://github.com/joffreynurit/Demo.MeetupEvent.
Cet exemple sert notamment dâAPI pour les events Meetup du site de lâassociation MTG:France.