🔎 Qu’est-ce que le serverless ?

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 ⬇.

🎯 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.

Le principal intĂ©rĂȘt du serverless va ĂȘtre de gagner en temps et en fiabilitĂ© sur vos infrastructures d’hĂ©bergements applicatifs

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.

Les différents modÚles de gestion de vos infrastructures, avec la répartition des responsabilités en fonction du type de service choisi. Ici, la représentation des responsabilités sur Microsoft Azure. Le serverless est du PaaS (Platform as a Service).
Il existe aussi une excellente infographie pour bien comprendre les différents types de modÚles, appliqué à un contexte quotidien. Je vous laisse apprécier. Source

⚖ 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.

AvantagesInconvé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 cloudL’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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *