Accueil les sujets Qu'est-ce que l'informatique sans serveur ? Qu'est-ce que le sans serveur ?
Le « sans serveur » est un modèle de développement et d'exécution d'applications cloud qui permet aux développeurs de créer et d'exécuter du code sans avoir à gérer de serveurs ou à payer pour une infrastructure de cloud inactive
image abstraite noire et bleue
Qu'est-ce que le sans serveur ?

Le sans serveur est un modèle de développement et d'exécution d'applications de cloud computing qui permet aux développeurs de créer et d'exécuter le code d'une application sans qu'il soit nécessaire de mettre à disposition ou de gérer des serveurs ou une infrastructure backend.

Le sans serveur permet aux développeurs de se concentrer sur l'écriture du meilleur code d'application frontale et de la meilleure logique métier possible. Il leur suffit d'écrire le code de leur application et de le déployer dans des conteneurs gérés par un fournisseur de cloud. Le fournisseur de cloud s'occupe du reste, en fournissant l'infrastructure cloud nécessaire à l'exécution du code et en faisant évoluer l'infrastructure à la demande, selon les besoins. Le fournisseur de cloud est également responsable de l'ensemble de la gestion et de la maintenance de routine de l'infrastructure, comme les mises à jour et les correctifs du système d'exploitation, la gestion de la sécurité, la planification de la capacité, la surveillance du système, etc.

Autre point important : avec le sans serveur, les développeurs ne paient jamais pour une capacité inactive. Le fournisseur de cloud met à disposition et augmente les ressources informatiques requises à la demande lorsque le code s'exécute, puis les réduit lorsque l'exécution s'arrête (on parle alors de « réduction à zéro »). La facturation commence lorsque l'exécution commence et se termine lorsqu'elle s'arrête. En général, la tarification est basée sur le temps d'exécution et les ressources nécessaires.

Sans serveur ne veut pas dire aucun serveur

En dépit du nom, il y a bel et bien des serveurs dans l'informatique sans serveur. Le terme « sans serveur » décrit l'expérience du développeur avec ces serveurs : ils sont invisibles pour le développeur, qui ne les voit pas, ne les gère pas et n'interagit pas avec eux de quelque manière que ce soit.

Aujourd'hui, tous les grands 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 trio de technologies généralement considérées comme étant au cœur du développement d'applications cloud natives.

Le sans serveur est plus qu'une simple FaaS

La fonction en tant que service, ou FaaS, 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 nécessaire à l'exécution du code.

La FaaS est le modèle de calcul central du sans serveur, et les deux termes sont souvent utilisés de manière interchangeable. Mais le sans serveur est bien plus qu'une FaaS. Le sans serveur désigne une pile entière de services capables de répondre à des événements ou à des demandes spécifiques et de passer à zéro lorsqu'ils ne sont plus utilisés, et pour lesquels l'approvisionnement, la gestion et la facturation sont pris en charge par le fournisseur de services cloud et sont invisibles pour les développeurs. En plus de la FaaS, ces services incluent :

  • Bases de données et stockage sans serveur : Les bases de données (SQL et  NoSQL) et le stockage (en particulier le stockage d'objets) constituent le fondement de la couche de données. Une approche sans serveur de ces technologies implique de s'éloigner de l'approvisionnement en « instances » avec des limites de capacité, de connexion et de requête définies, et de passer à des modèles qui évoluent de façon linéaire en fonction de la demande, tant au niveau de l'infrastructure que des prix.

  • Flux d'événements et messagerie : Les architectures sans serveur sont bien adaptées aux charges de travail axées sur les événements et le traitement en continu, notamment la plateforme de transmission d'événements en continu open source Apache Kafka

  • Passerelles d'API : Les passerelles d'API agissent comme des proxys pour les actions web et fournissent le routage de la méthode HTTP, l'ID et les secrets du client, les limites de débit, CORS, la visualisation de l'utilisation de l'API, la visualisation des journaux de réponse et les politiques de partage de l'API

Ashher Syed, d'IBM, fournit une explication détaillée du sans serveur et de la pile sans serveur (6:37) :

Sans serveur, PaaS, conteneurs et machines virtuelles

Étant donné que le sans serveur, la plateforme en tant que service (PaaS), les conteneurs et les machines virtuelles (VM) jouent tous un rôle essentiel dans le développement d'applications dans le cloud et l'écosystème de calcul, il est utile de comparer le sans serveur aux autres selon certains attributs clés.

  • Durée de mise à disposition : Elle se mesure en millisecondes pour le sans serveur, et en minutes, voire en heures, pour les autres modèles.

     

  • Charge administrative : Inexistante pour le sans serveur, la charge administrative est respectivement faible, moyenne et lourde pour la PaaS, les conteneurs et les VM.

     

  • Maintenance : Les architectures sans serveur sont gérées à 100 % par le fournisseur. Ceci est également vrai pour la PaaS mais les conteneurs et les machines virtuelles nécessitent une importante maintenance qui comprend la mise à jour et la gestion des systèmes d'exploitation, des images de conteneurs, des connexions, etc.

     

  • Mise à l'échelle : La mise à l'échelle automatique, y compris la réduction à zéro, est instantanée et inhérente à la technologie sans serveur. Les autres modèles offrent une mise à l'échelle automatique plus lente qui nécessite un réglage minutieux des règles de mise à l'échelle automatique, et aucune réduction à zéro.

     

  • Planification de la capacité : Elle n'est pas nécessaire dans le cas du sans serveur. Les autres modèles requièrent un mélange d'extensibilité automatique et de planification de la capacité.

     

  • Absence d'état : Elle est inhérente au concept sans serveur, ce qui signifie que l'évolutivité n'est jamais un problème. L'état est maintenu dans un service ou une ressource externe. Les autres modèles peuvent optimiser HTTP, garder un socket ou une connexion ouverte pendant de longues périodes de temps, et peuvent stocker l'état en mémoire entre les appels.

     

  • Haute disponibilité et reprise après incident : Ces deux éléments sont inhérents à la technologie sans serveur, sans effort supplémentaire et sans coût additionnel. Les autres modèles nécessitent un coût et un effort de gestion supplémentaires. Dans le cas des machines virtuelles et des conteneurs, l'infrastructure peut être redémarrée automatiquement.

  • Utilisation des ressources : La technologie sans serveur est efficace à 100 % car il n'existe pas de capacité inutilisée, elle n'est invoquée que sur demande. Tous les autres modèles présentent au moins un certain degré de capacité inactive.

     

  • Granularité de la facturation et économies : Le sans serveur est facturé en unités de 100 millisecondes. La PaaS, les conteneurs et les VM sont généralement facturés à l'heure ou à la minute.

Sans serveur, Kubernetes et Knative

Kubernetes est une plateforme d'orchestration de conteneurs open source qui automatise le déploiement, la gestion et la mise à l'échelle des conteneurs. L'automatisation de Kubernetes simplifie considérablement le développement d'applications basées sur des conteneurs.

Les applications sans serveur sont souvent déployées dans des conteneurs. En soi, Kubernetes ne peut pas exécuter des applications sans serveur sans un logiciel spécialisé qui intègre Kubernetes à la plateforme sans serveur d'un fournisseur de cloud spécifique.

Knative fournit une infrastructure sans serveur pour Kubernetes. Il s'agit d'une extension open-source de Kubernetes qui permet à n'importe quel conteneur de s'exécuter en tant que charge de travail sans serveur sur n'importe quelle plateforme cloud qui exécute Kubernetes, que le conteneur soit construit autour d'une fonction sans serveur ou d'un autre code d'application (par exemple, des microservices). Knative fonctionne en faisant abstraction du code et en gérant le routage réseau, les déclencheurs d'événements et la mise à l'échelle automatique pour une exécution sans serveur.

Knative est transparent pour les développeurs : il leur suffit de créer un conteneur comme d'habitude avec Kubernetes, et Knative s'occupe du reste, en exécutant le conteneur comme une charge de travail sans serveur.

En savoir plus sur Knative

Avantages et inconvénients du sans serveur

Avantages

Compte tenu de tout ce qui précède, il n'est pas surprenant que l'informatique sans serveur offre un certain nombre d'avantages techniques et commerciaux aux développeurs individuels et aux équipes de développement des entreprises.

Amélioration de la productivité des développeurs :  comme indiqué ci-dessus, le sans serveur permet aux équipes de développement de se concentrer sur l'écriture du code, et non sur la gestion de l'infrastructure. Les développeurs ont ainsi beaucoup plus de temps pour innover et optimiser les fonctionnalités de leurs applications frontales et leur logique métier.

Paiement à l'exécution : Le compteur démarre lorsque la demande est faite, et se termine lorsque l'exécution se termine. Comparez ce modèle à celui de l'infrastructure en tant que service (IaaS), où les clients paient pour les serveurs physiques, les machines virtuelles (VM) et les autres ressources nécessaires à l'exécution des applications, depuis le moment où ils fournissent ces ressources jusqu'à celui où ils les mettent explicitement hors service.

Développement dans n'importe quel langage :  Le sans serveur est un environnement polyglotte, qui permet aux développeurs de coder dans n'importe quel langage ou cadre (Java, Python, JavaScript, node.js) avec lequel ils sont à l'aise.

Simplification des cycles de développement/DevOps. La technologie sans serveur simplifie le déploiement et, dans un sens plus large, le DevOps car les développeurs ne passent pas leur temps à définir l'infrastructure nécessaire pour intégrer, tester, livrer et déployer les codes en production.

Performances rentables. Pour certaines charges de travail (traitements parallèles embarrassants, traitement en continu, certaines tâches de traitement de données), l'informatique sans serveur peut être à la fois plus rapide et plus rentable que d'autres types d'informatique.

Visibilité sur l'utilisation. Les plateformes sans serveur offrent une visibilité quasi-totale sur les temps de fonctionnement du système et des utilisateurs et peuvent regrouper systématiquement les informations relatives à l'utilisation.

Les professionnels du développement et de l'informatique citent d'autres avantages spécifiques de l'informatique sans serveur. Vous pouvez les explorer à l'aide de l'outil interactif (PDF de 1,8 Mo) ci-dessous :

 

Cas d'utilisation du sans serveur

Compte tenu de sa combinaison unique d'attributs et d'avantages, l'architecture sans serveur est bien adaptée aux cas d'utilisation autour des microservices, des backends mobiles et du traitement des flux de données et d'événements.

Sans serveur et microservices

Le cas d'utilisation le plus courant du sans serveur aujourd'hui est la prise en charge des architectures de microservices. Le modèle des microservices est axé sur la création de petits services qui effectuent une seule tâche et communiquent entre eux à l'aide d'API. Si les microservices peuvent également être construits et exploités à l'aide de la PaaS ou de conteneurs, la technologie sans serveur a pris un essor considérable en raison de ses caractéristiques : petits bouts de code, mise à l'échelle inhérente et automatique, mise à disposition rapide et modèle de tarification qui ne facture jamais la capacité inactive.

Backends d'API

Toute action (ou fonction) dans une plateforme sans serveur peut être transformée en un nœud final HTTP prêt à être utilisé par des clients Web. Lorsqu'elles sont activées pour le Web, ces actions sont appelées actions Web. Une fois que vous disposez d'actions Web, vous pouvez les assembler en une API complète avec une passerelle d'API qui apporte une sécurité supplémentaire, la prise en charge d'OAuth, la limitation du débit et la prise en charge de domaines personnalisés.

Pour une expérience pratique des backends d'API, consultez le tutoriel « Application Web sans serveur et API ».

Traitement de l'information

La technologie sans serveur est bien adaptée au travail avec des données structurées de type texte, audio, image et vidéo, autour de tâches telles que l'enrichissement, la transformation, la validation et le nettoyage des données, 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 des caractères (OCR) et le transcodage vidéo. Pour un cas d'utilisation détaillé du traitement des images, lisez « How SiteSpirit got 10x faster, at 10% of the cost (Comment SiteSpirit est devenu 10 fois plus rapide, à 10 % du coût).».

Opérations de mappage/calcul parallèle massives

Tout type de tâche parallèle embarrassante est un bon cas d'utilisation pour une exécution sans serveur, chaque tâche parallélisable résultant en une invocation d'action. Les exemples de tâches vont de la recherche et du traitement de données (notamment le stockage d'objets dans le cloud), des opérations Map(-Reduce) et de l'extraction de données sur le Web à l'automatisation des processus d'entreprise, au réglage d'hyperparamètres, aux simulations Monte Carlo et au traitement du génome.

Pour un exemple détaillé, lisez le blog « How a Monte Carlo simulation ran over 160x faster on a serverless architecture vs. a local machine (Comment une simulation Monte Carlo s'est exécutée 160 fois plus vite sur une architecture sans serveur que sur une machine locale) ».

Charges de travail de traitement de flux

La combinaison d'Apache Kafka géré, de FaaS et de base de données/stockage offre une base puissante pour la construction en temps réel de pipelines de données et d'applications de streaming. Ces architectures sont parfaitement adaptées pour travailler avec toutes sortes d'entrées de flux de données (pour la validation, le nettoyage, l'enrichissement, la transformation), notamment les données des capteurs IoT, les données des journaux d'application, les données des marchés financiers et les flux de données métier (provenant d'autres sources de données).

Applications courantes du sans serveur

Dans une récente enquête d'IBM, les professionnels de l'informatique ont déclaré utiliser le sans serveur dans un large éventail d'applications, notamment la gestion de la relation client (CRM), l'analytique et la veille économique, la finance, etc. :

 

Tutoriels : Démarrer avec l'informatique sans serveur

Ces tutoriels peuvent vous aider à développer vos compétences en informatique sans serveur :

Solutions
IBM Cloud Code Engine

Exécutez votre conteneur, votre code d'application ou un travail par lots sur un environnement d'exécution de conteneur entièrement géré

Explorer IBM Cloud Code Engine
IBM Cloud Satellite

Déployez et exécutez des applications de manière cohérente dans des environnements sur site, en périphérie et dans le cloud public avec n'importe quel fournisseur de cloud

Explorer IBM Cloud Satellite
IBM Cloudant

La couche de données pour les applications hyperscale, résilientes et disponibles dans le monde entier, basée sur le logiciel open source Apache CouchDB

Découvrir IBM Cloudant
Ressources Serverless in the enterprise (Le sans serveur dans l'entreprise), 2021

Une nouvelle recherche dévoile des informations sur les opportunités et les défis réels de l'informatique sans serveur.

Présentation d'IBM Cloud Code Engine

Allez au-delà des fonctions pour exécuter toutes vos charges de travail 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.

Profitez à nouveau de votre cloud

Examinez de plus près IBM Cloud Code Engine et les avantages qu'il offre.

Pour aller plus loin

L'informatique sans serveur offre un moyen plus simple et plus rentable de créer et d'exploiter des applications dans le cloud. Découvrez IBM Cloud Code Engine, une plateforme sans serveur payante qui permet aux développeurs de déployer des applications et des flux de travail sans serveur sans avoir besoin de compétences Kubernetes.

Explorer IBM Cloud Code Engine dès aujourd'hui