Accueil
Thèmes
Sans serveur
Date de publication : 10 juin 2024
Contributeurs : Stephanie Susnjara, Ian Smalley
L’approche sans serveur (ou « serverless ») est un modèle de développement et d’exécution d’applications qui permet aux développeurs de générer et d’exécuter du code sans mettre en place ni gérer de serveurs ou d’infrastructure backend.
Sans serveur ne veut pas dire qu’il n’y a absolument aucun serveur. Malgré le nom, les serveurs de l’informatique sans serveur sont gérés par un fournisseur de services cloud (CSP). L’expression « sans serveur » décrit l’expérience du développeur avec ces serveurs : ils sont invisibles pour le développeur, ce qui signifie qu’il ne les voit pas, ne les gère pas et n’a aucune interaction de quelque nature que ce soit avec eux.
Les développeurs peuvent se concentrer sur l’écriture du meilleur code d’application front-end et de la meilleure logique métier grâce à l’informatique sans serveur. Il leur suffit d’écrire le code de leur application et de le déployer sur des conteneurs gérés par un fournisseur de services cloud.
Le fournisseur de cloud s’occupe du reste : il fournit l’infrastructure cloud nécessaire à l’exécution du code et redimensionne l’infrastructure à la demande en fonction des besoins. Il est également responsable de la gestion et de la maintenance courantes de l’infrastructure (mises à jour et correctifs du système d’exploitation, gestion de la sécurité, planification de la capacité, surveillance du système, et bien plus encore).
De plus, les développeurs n’ont pas à payer pour des capacités inutilisées avec l’approche sans serveur. Le fournisseur de cloud fournit et met en service les ressources informatiques nécessaires à la demande lorsque le code s’exécute, et les désactive lorsque l’exécution s’arrête (capacité de « scaling to zero » ou arrêt total). La facturation commence au début et s’arrête à la fin de l’exécution : habituellement, la tarification est basée sur le temps d’exécution et les ressources nécessaires.
Au même titre que l’infrastructure en tant que service (IaaS), la plateforme en tant que service (PaaS), la fonction en tant que service (FaaS) et le logiciel en tant que service (SaaS), l’informatique sans serveur est devenue une offre de services cloud incontournable. Selon un rapport de SkyQuest Technology, la taille du marché mondial dans ce domaine était évaluée à 8,01 milliards de dollars en 2022 et devrait passer de 9,84 milliards de dollars en 2023 à 50,86 milliards de dollars d’ici 20311. Aujourd’hui, tous les principaux fournisseurs de services cloud proposent une plateforme sans serveur, notamment Amazon Web Services (AWS Lambda), Microsoft Azure (Azure Functions), Google Cloud (Google Cloud Functions) et IBM Cloud (IBM Cloud Code Engine).
Ensemble, l’informatique sans serveur, les microservices et les conteneurs forment un « triumvirat » de technologies au cœur du développement d’applications cloud natives .
Dans cette vidéo, découvrez une explication détaillée de l’approche et de la pile sans serveur (6:37).
Connectez et intégrez vos systèmes pour préparer votre infrastructure à l’IA.
L’approche sans serveur a vu le jour en 2008 lorsque Google a lancé Google App Engine (GAE), une plateforme de développement et d’hébergement d’applications web dans des centres de données gérés par Google. Grâce à GAE, un développeur de logiciels peut créer et lancer des logiciels sur Google Cloud sans se soucier des tâches de gestion de serveur telles que l’application de correctifs ou l’équilibrage de charge, qui sont gérées par Google.
Le terme « serverless » est apparu pour la première fois en 2012 dans un article technologique rédigé par Ken Fromm, spécialiste du cloud computing2. En 2014, Amazon lance AWS Lambda, la première plateforme sans serveur. Baptisé en référence aux fonctions du lambda-calcul et de la programmation, AWS Lambda, un modèle FaaS, a aidé le cadre informatique sans serveur à gagner un attrait de masse et à être rapidement adopté par les développeurs de logiciels en leur permettant d’exécuter du code en réponse à des événements sans avoir à gérer de serveur. En 2016, Microsoft Azure Functions et Google Cloud Functions lancent leurs plateformes sans serveur.
Parmi les autres acteurs importants du marché actuel des plateformes sans serveur, on trouve IBM Cloud Code Engine, Oracle Cloud Infrastructure (OCI) Functions, Cloudflare Workers et Alibaba Function Compute.
La configuration sans serveur ne se limite pas à une fonction en tant que service (FaaS), c’est un service de cloud computing qui permet aux développeurs d’exécuter du code ou des conteneurs en réponse à des événements ou à des demandes spécifiques sans spécifier ni gérer l’infrastructure requise pour exécuter le code.
Le FaaS est le modèle informatique au cœur de l’approche sans serveur, et les deux termes sont souvent utilisés de manière interchangeable. Le modèle sans serveur est un ensemble de services capables de répondre à des événements ou à des demandes spécifiques et de s’arrêter totalement (« scale to zero ») lorsqu’ils ne sont plus utilisés, et dont le provisionnement, la gestion et la facturation sont gérés par le fournisseur de cloud, restant ainsi invisibles pour les développeurs.
Outre le FaaS, ces services incluent des bases de données et du stockage, des passerelles d’interface de programmation des applications (API) et une architecture pilotée par les événements.
Les bases de données (SQL et NoSQL) et le stockage (en particulier le stockage d’objets) sont le fondement de la couche de données. Une approche sans serveur de ces technologies implique de passer d’un provisionnement d’« instances » avec une capacité définie, des limites de connexions et de requêtes, à des modèles mis à l’échelle de façon linéaire selon la demande, tant au niveau de l’infrastructure que de la tarification.
Les passerelles API agissent comme des proxys pour les actions des applications Web et fournissent le routage des méthodes HTTP, l’identification et les secrets du client, les limites de débit, le CORS (partage de ressources inter-origines), la visualisation de l’utilisation des API, la visualisation des journaux de réponse et les règles de partage des API.
Les architectures sans serveur fonctionnent parfaitement pour les workloads axées sur les événements et le traitement des flux, l’exemple par excellence étant la plateforme open-source de transmission d’événements en continu Apache Kafka.
Les fonctions automatisées sans serveur sont sans état et conçues pour gérer des événements individuels. Ces fonctions font désormais partie intégrante de l’architecture orientée événements (« Event-driven Architecture » ou EDA), un modèle de conception logicielle qui s’articule autour de la publication, de la capture, du traitement et du stockage des événements. Dans un cadre EDA, les producteurs d’événements (comme les microservices, les API, les appareils IoT) envoient des notifications d’événements en temps réel aux consommateurs d’événements, ce qui active des routines de traitement spécifiques. Par exemple, lorsque Netflix publie une nouvelle série originale, plusieurs services EDA attendent la notification de publication, ce qui déclenche une cascade de mises à jour pour informer les utilisateurs. De nombreuses autres entreprises basées sur des applications web et mobiles dédiées aux utilisateurs (comme Uber, DoorDash et Instacart) s’appuient sur une architecture orientée événements.
Le sans serveur, le PaaS (plateforme en tant que service), les conteneurs et les machines virtuelles (VM) jouant tous un rôle critique dans le développement d’applications cloud et l’écosystème de calcul, il est utile de comparer certaines de leurs caractéristiques clés.
Kubernetes est une plateforme d’orchestration de conteneurs open source qui automatise le déploiement, la gestion et la mise à l’échelle des conteneurs. Cette automatisation simplifie considérablement le développement d’applications conteneurisées.
Les applications sans serveur sont souvent déployées dans des conteneurs. Cependant, Kubernetes ne peut exécuter des applications sans serveur de manière indépendante qu’avec un logiciel spécialisé qui intègre Kubernetes à la plateforme sans serveur d’un fournisseur de cloud donné.
Knative est une extension open source qui fournit un cadre sans serveur pour Kubernetes. Elle permet à n’importe quel conteneur de s’exécuter en tant que workload serverless sur n’importe quelle plateforme cloud exécutant Kubernetes, que le conteneur soit conçu autour d’une fonction serverless ou d’un autre code d’application (par exemple, microservices). Knative fonctionne en faisant abstraction du code et en gérant le routage réseau, les déclencheurs d’événements et l’auto-scaling pour une exécution sans serveur.
Knative est transparent pour les développeurs. Ils n’ont qu’à créer un conteneur en utilisant Kubernetes, et Knative fait le reste, en exécutant le conteneur comme un workload sans serveur.
L’informatique sans serveur offre aux développeurs individuels et aux équipes de développement d’entreprise de nombreux avantages techniques et commerciaux :
Bien que l’approche sans serveur présente de nombreux avantages, il est essentiel de prendre en compte certains inconvénients :
Bien que les CSP fournissent des mesures de sécurité pour gérer les applications sans serveur, le client est également responsable de la sécurisation du code et des données des applications selon un modèle de responsabilité partagée. Les mesures de sécurité dédiées au cloud pour l’approche sans serveur comprennent des politiques et des solutions de sécurité automatisées telles que la gestion des informations et des événements de sécurité (SIEM), la gestion des identités et des accès (IAM), ainsi que la détection et la réponse aux menaces.
Le respect des pratiques DevSecOps aide les équipes de développement à sécuriser les technologies sans serveur. DevSecOps, abréviation de« développement, sécurité et opérations », est une pratique de développement d’applications qui automatise l’intégration de la sécurité et des pratiques de sécurité à chaque phase du cycle de vie du développement logiciel, de la conception initiale à la livraison et au déploiement, en passant par l’intégration et les tests.
Contrairement aux environnements de centres de données traditionnels sur site, un modèle d’informatique sans serveur peut aider les organisations à réduire leur consommation d’énergie et l’empreinte carbone de leurs opérations informatiques.
En outre, un modèle sans serveur permet aux entreprises d’optimiser leurs émissions grâce à l’efficacité des ressources en ne payant que pour les ressources dont elles ont besoin. Cela se traduit par une réduction de l’énergie gaspillée dans des processus inactifs ou excédentaires.
Grâce à ses caractéristiques et avantages unique, l’architecture sans serveur est particulièrement adaptée aux cas d’utilisation autour des microservices, des back-ends mobiles, et du traitement des données et des flux d’événements.
Aujourd’hui, le cas d’utilisation le plus courant du modèle sans serveur est la prise en charge des architectures de microservices. Le modèle microservice est axé sur la création de petits services qui effectuent une tâche unique et communiquent entre eux à l’aide d’API. Bien que les microservices puissent également être créés et exploités à l’aide d’un PaaS ou de conteneurs, le modèle serverless a pris beaucoup d’ampleur en raison de ses caractéristiques autour de petits bouts de code, d’une mise à l’échelle inhérente et automatique, d’un provisionnement rapide et d’un modèle de tarification qui ne facture pas le fonctionnement à vide.
Toute action (ou fonction) dans une plateforme sans serveur peut être transformée en point de terminaison HTTP prêt à être consommé par les clients web. Lorsqu’elles sont activées pour le web, ces actions sont appelées actions web. Lorsque vous avez des actions web, vous pouvez les assembler en une API complète dotée d’une passerelle d’API, qui renforce la sécurité et offre la prise en charge d’OAuth, la limitation du débit et la prise en charge des domaines personnalisés.
Open Liberty InstantOn4 adopte une nouvelle approche pour soutenir le démarrage rapide des applications sans serveur. Avec InstantOn, vous pouvez prendre un point de contrôle de votre processus d’application Java en cours d’exécution pendant le développement de l’application, puis restaurer ce point de contrôle en production. La restauration est rapide (quelques centaines de millisecondes), ce qui la rend idéale pour les applications sans serveur. Étant donné qu’InstantOn est un point de contrôle de votre application existante, son comportement après la restauration est identique, proposant notamment la même qualité de performance en termes de débit. Ce processus permet aux organisations d’adopter le serverless pour de nouvelles applications cloud natives et offre la possibilité d’apporter le serverless à l’entreprise existante.
Le sans serveur est particulièrement adapté aux tâches liées à l’enrichissement, à la transformation, à la validation et au nettoyage de données structurées (texte, audio, image et vidéo). Les développeurs peuvent également y recourir pour le traitement des PDF, la normalisation audio, le traitement des images (rotation, accentuation, réduction du bruit, génération de vignettes), la reconnaissance optique de caractères (OCR) et le transcodage vidéo.
Tout type de tâche parfaitement parallèle est un cas d’utilisation idéal pour une exécution sans serveur, chaque tâche parallélisable donnant lieu à une invocation d’action. La recherche et le traitement des données (en particulier le Cloud Object Storage), les opérations MapReduce et le web scraping, l’automatisation des processus métier, l’optimisation des hyperparamètres, les simulations Monte Carlo et le traitement du génome en sont quelques exemples.
L’association Apache Kafka géré avec FaaS et base de données ou stockage offre une base solide pour la construction en temps réel de pipelines de données et d’applications de streaming. Ces architectures sont idéales pour travailler avec toutes sortes d’entrées de flux de données (pour la validation, le nettoyage, l’enrichissement, la transformation), y compris les flux de données des capteurs IdO, des journaux d’application, des marchés financiers et des entreprises (provenant d’autres sources de données).
L’approche sans serveur offre l’évolutivité automatisée nécessaire à l’exécution des workloads d’intelligence artificielle (IA) et de machine learning (ML), ce qui garantit des performances optimales et accélère l’innovation.
L’informatique sans serveur prend en charge une stratégie de cloud hybride en offrant l’agilité, la flexibilité et l’évolutivité nécessaires pour s’adapter aux workloads fluctuantes dans les environnements sur site, dans le cloud public, dans le cloud privé et en périphérie .
Le sans serveur prend en charge un grand nombre des applications les plus courantes d’aujourd’hui, notamment la gestion de la relation client (CRM), le calcul haute performance (« High-performance Computing » ou HPC), l’analyse du big data, l’automatisation des processus métier, le streaming vidéo, le gaming, la télémédecine, le commerce numérique, la création de chatbots et bien d’autres encore.
Vous pouvez développer vos compétences en matière d’informatique sans serveur grâce à ces tutoriels :
Exécutez votre conteneur, votre code d’application ou votre travail par lots dans un environnement d’exécution de conteneur entièrement géré.
Qu'il s'agisse de déploiement, de construction de nouvelles applications cloud natives, de refonte ou de replatforming d'applications existantes, Cloud Pak for Applications (CP4Apps) a tout ce qu’il vous faut.
Déployez et exécutez des applications de manière cohérente dans des environnements sur site, d'edge computing et de cloud public de n'importe quel fournisseur de cloud.
La couche de données pour les applications hyperscale, résilientes et disponibles à l’échelle mondiale, basée sur l’environnement open source Apache CouchDB.
Surveillez vos applications et services sans serveur pour optimiser les performances, la disponibilité et la sécurité.
Apprenez-en davantage sur les opportunités et les défis concrets de l’informatique sans serveur.
Allez au-delà des fonctions pour exécuter toutes vos workloads conteneurisées (y compris les applications web, les microservices, et les tâches par lots) sur cette plateforme sans serveur entièrement gérée.
Découvrez de plus près IBM Cloud Code Engine et ses avantages.
(Tous les liens sont externes à ibm.com.)
1 Global Serverless Architecture Market Report, SkyQuest, mars 2024
2 Why The Future Of Software And Apps Is Serverless, ReadWrite, octobre 2012
3 À propos d’OAuth 2.0, OAuth
4 Faster startup for containerized applications with Open Liberty InstantOn, Open Liberty