L’informatique sans serveur : utilisation, avantages et inconvénients
L'informatique sans serveur ou « serverless » utilise une technologie cloud native pour gérer les fonctions back-end d'un site web ou d'une application. Vous définissez un événement qui déclenche du code, et la plateforme sans serveur prend le relais. Vos frais augmentent ou diminuent en fonction de la fréquence d'utilisation.
Néanmoins, le terme « sans serveur » n'est qu'approximatif dans ce modèle. Les fournisseurs cloud doivent tout de même utiliser des serveurs pour servir leurs clients. Mais si vous achetez cette technologie, vous n'aurez pas à investir dans des serveurs back-end pour développer ou déployer une application web. Et vous n'aurez pas non plus à assurer la maintenance des serveurs back-end.
Étant donné que l'informatique sans serveur utilise en fait des serveurs, certains experts préfèrent utiliser le terme FaaS (Function as a Service).
Quel que soit son nom, l'informatique sans serveur suscite une forte demande. Dans une étude de 2019, par exemple, 40 % des personnes interrogées travaillaient pour des entreprises utilisatrices d'une architecture sans serveur. Pour la plupart, le coût est l'un des principaux avantages.
Approfondissons ce qu'est réellement l'informatique sans serveur et son fonctionnement. Vous pourrez ainsi décider si votre entreprise devrait l'utiliser.
Qu'est-ce que l'informatique sans serveur ?
L'informatique sans serveur permet aux développeurs de se concentrer sur le front-end d'un site web ou d'une application, en étant libres d'ignorer les fonctions back-end.
La partie front-end d'un site web ou d'une application réunit les éléments visibles pour les consommateurs, ceux qu'ils utilisent et ceux dont ils se souviennent. Ils incluent en premier lieu les graphiques, le texte et autres indices visuels.
Le back-end d'un site web ou d'une application comprend les éléments que les utilisateurs ne voient pas, mais qui sont indispensables pour assurer une expérience d'utilisation positive. Les éléments du back-end peuvent inclure :
- Les fichiers de données. Le back-end attribue un emplacement spécifique à des éléments clés, tels que les stocks de produits disponibles, les adresses des magasins ouverts et les listes d'articles de blog.
- Traitement. Chaque action de chaque consommateur nécessite un minimum de traitement. La plupart de ces données sont traitées par le back-end.
- Sécurité. Il peut être nécessaire que l'utilisateur se connecte pour accéder à des pièces et des éléments spécifiques.La page de connexion fait partie du front-end, mais le traitement nécessaire à son fonctionnement est pris en charge par le back-end.
Dans un modèle sans serveur, ce type de fonction back-end dépend de sections de code isolées qui deviennent uniquement actives à la demande. Lorsqu'une action d'un utilisateur déclenche le code, le fournisseur de la solution d'informatique sans serveur intervient, alloue de l'espace et autorise une transition transparente.
Dans sa présentation du modèle serverless en 2014, un expert a expliqué que les développeurs écrivent le code de l'application et le chargent dans l'environnement sans serveur.Et il reste dormant jusqu'à ce qu'un événement déclenche ce code.Immédiatement, le fournisseur d'informatique sans serveur prend alors le relais, pour exécuter le code dans l'environnement cloud.Lorsque l'événement est terminé, le code redevient inactif.
Ces événements sont appelés « fonctions » dans le modèle informatique sans serveur. Par exemple, une fonction d'un site web permet aux utilisateurs de télécharger des photos qui seront redimensionnées et reformatées. La fonction commence dès qu'un utilisateur télécharge une photo.
Comme le modèle sans serveur utilise des fonctions qui peuvent ou non être exécutées en continu, l'évolutivité est toujours possible. Lorsque le trafic sur le site web ou de l'application est important, le cloud peut lui offrir plus d'espace et de puissance de traitement (moyennant paiement). Mais dès que le trafic ralentit, l'espace et les frais facturables diminuent proportionnellement.
Le modèle sans serveur peut donner l'impression d'être trop vaste et un peu vague. Mais pour les experts, les véritables applications sans serveur se distinguent par quatre attributs. Ces attributs sont les suivants :
- La variation de prix. Les fournisseurs facturent uniquement ce que vous utilisez.
- L'auto-maintenance. Les clients n'ont pas à se charger de la maintenance du serveur.
- L'évolutivité. Les fonctions s'adaptent en continu selon les besoins, sans aucune aide de programmation des clients.
- La fiabilité. Ces produits bénéficient de hauts niveaux de disponibilité et de tolérance aux pannes.
Quelle différence apporte l'informatique sans serveur ?
Vous avez probablement lu des articles sur les serveurs cloud qui assurent l'administration des sites web ou des applications.Et vous n'auriez pas tort de penser que certains de ces produits ressemblent étrangement à des solutions de l'informatique sans serveur.
De nombreux services cloud partagent des attributs avec l'informatique sans serveur, notamment :
- BaaS. Le modèle Back-end as a service (ou BaaS) permet aux développeurs d'externaliser l'administration des fonctions back-end.
- PaaS. Le modèle Plateform as a service (ou PaaS) vous permet de développer et de déployer des produits dans un environnement cloud.
- IaaS. Le modèle Infrastructure as a service (ou IaaS) permet de prendre en charge presque tous les éléments nécessaires au fonctionnement d'un site web ou d'une application dans un environnement cloud.
L'évolutivité automatique différencie l'informatique sans serveur de tous ces modèles. Ainsi, lorsque vous avez besoin de plus d'espace, vous devez généralement en parler à votre fournisseur BaaS, PaaS ou IaaS. Aucune demande de ce type n'est nécessaire si vous utilisez un modèle informatique sans serveur.
L'informatique sans serveur évolue aussi avec la pénétration de cette technologie sur le marché.Par exemple, certaines entreprises testent des solutions de réseaux distribués avec des nœuds dispersés très éloignés de leurs principaux data centers. Une telle infrastructure réduit la latence et offre une meilleure expérience utilisateur.Il est possible que d'autres modèles basés dans le cloud soient incapables d'évoluer dans cette direction.
Avantages et inconvénients de l'informatique sans serveur
Devriez-vous remplacer votre configuration actuelle par une pile sans serveur ?Voyons les avantages et les inconvénients d'un peu plus près.
Les avantages et les inconvénients de l'informatique sans serveur incluent :
- Le coût. Vous payez seulement ce que vous utilisez. Avec d'autres modèles basés dans le cloud, l'espace que vous avez réservé doit être payé (que vous l'utilisiez ou non).
- La flexibilité. Les modèles sans serveur évoluent sans nécessiter aucune intervention de votre part.
- La précision. Les développeurs sont libres de se concentrer sur chaque fonction spécifique, sans avoir à se préoccuper de l'architecture back-end correspondante. Une telle séparation des pouvoirs peut autoriser la création de code plus sobre, plus efficace.
- La rapidité. Les développeurs n'ont pas à perdre leur temps à estimer et à allouer de l'espace serveur.
Les inconvénients de l'informatique sans serveur incluent :
- La sécurité. Vous confiez une partie de vos données à une entreprise tierce dont la protection des données peut ne pas répondre à vos exigences. Actuellement, 60 % des entreprises n'ont pas adopté un système sans serveur. La sécurité et la peur de l'inconnu font partie de leurs raisons principales.
- La confidentialité. Vos ressources sont partagées dans des environnements cloud qui peuvent héberger d'autres entités.
- La complexité. Si quelque chose ne fonctionne pas comme prévu, le problème peut être difficile à identifier. Vos recherches devront cibler plusieurs espaces.
- Les contrats. Les accords de certains fournisseurs bloquent les clients à long terme.
Vous souhaitez transformer votre processus de développement, mais cela ne veut pas dire que vous êtes prêt à vous lancer dans une solution d'informatique sans serveur. Vous pouvez alors envisager d'utiliser des microservices. Nous avons publié un article de blog approfondi sur ces produits, pour présenter en détail leurs avantages et inconvénients. Lecture recommandée !
Références
« O'Reilly Serverless Survey 2019: Concerns, What Works, and What to Expect », (novembre 2019), O’Reilly.
« Serverless Explainer: The Next Generation of Cloud Infrastructure », (avril 2017), Networkworld.
« What's Next for Serverless Architecture?», (février 2020), InfoWorld.
« What Serverless Computing Really Means, and Everything Else You Need to Know », (avril 2019), ZD Net.
« Aurora Serverless: The Good, the Bad, and the Scalable », (avril 2020), Jeremy Daly.
« Serverless Computing: 5 Things to Know About the Post-Container World », Tech Beacon.
« Why Serverless Computing is the Fastest-Growing Cloud Services Segment », (septembre 2018), CB Insights.