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.