Qu’est-ce que le Serverless ?

30.03.22  Ousseynou, DevOps Engineer ● 3 minutes lecture 

Qu'est-ce que le Serverless ?

Lancé par Lambda Amazon Web Services (AWS), le Serverless est venu simplifier notre quotidien en soustrayant à nos tâches quotidiennes de gestion des bases de données et de nos centres de données. Aujourd’hui, le catalogue Serverless s’est étendu, tous les fournisseurs proposent leurs services tels que Azure Function ou encore Google Cloud Function.

Le Serverless c’est quoi ?

Qu'est-ce que le serverless ?

Le serverless est un modèle de développement cloud native dans lequel le client peut créer et exécuter ses applications sans avoir besoin de se soucier de la partie infrastructures et notamment de la partie serveur d'où sa dénomination "serverless" ou "sans serveurs” en français.

Notez, le terme “Serverless” ne désigne pas une informatique qui n’a pas besoin de serveurs pour s’exécuter. Le Serverless est une approche IT dans laquelle la partie matérielle est totalement abstraite. Avec le serverless, votre/vos fournisseur(s) cloud prend en charge les opérations d'infrastructure tandis que vous avez seulement à vous soucier du code. Autrement dit, le modèle serverless fait abstraction de toute la partie infrastructure pour le développeur. Et quel bonheur !

Pourquoi se mettre au Serverless ?

  • Coût : Le Serverless permet de réduire considérablement les coûts de développement et d'exploitation des applications, car les développeurs ne paient que pour le temps d'exécution réel de la fonction.
  • Mise à l'échelle : Le Serverless permet une mise à l'échelle automatique en fonction de la demande, ce qui permet de réduire les temps d'arrêt et les coûts liés à la gestion de serveurs inutilisés.
  • Déploiement rapide : Le Serverless permet des cycles de développement plus rapides et une mise sur le marché plus rapide, car les développeurs peuvent se concentrer sur l'écriture de code plutôt que sur la gestion de l'infrastructure.
  • Maintenance : Les fournisseurs de services cloud gèrent l'infrastructure sous-jacente, ce qui permet aux développeurs de se concentrer sur le code d'application plutôt que sur la maintenance de l'infrastructure.

Les inconvénients du Serverless

  • Limitations techniques : Les fonctions Serverless sont généralement des limites de temps d'exécution et de taille de mémoire, ce qui peut limiter la complexité des applications pouvant être développées.
  • Dépendance au fournisseur : Les développeurs doivent se fier à un fournisseur de services cloud pour gérer l'infrastructure sous-jacente, ce qui peut entraîner une dépendance à long terme.
  • Difficulté de débogage : Les erreurs dans une fonction Serverless peuvent être difficiles à déboguer, car la fonction est exécutée dans un environnement isolé et sans serveur.

Le Serverless, comment ça marche ?

comment fonctionne le serverless

Le Serverless fonctionne en exécutant des fonctions individuelles (Function-as-a-Service) en réponse à des événements spécifiques, tels que l'envoi de données à une API ou une demande de navigation sur un site web. Les fournisseurs de services cloud gèrent toute l'infrastructure sous-jacente, tels que les serveurs, les bases de données et les services de messagerie, permettant aux développeurs de se concentrer uniquement sur le code d'application.

Les fonctions sont déployées et exécutées sur des conteneurs légers, qui sont créés dynamiquement en réponse à ces événements. Ces conteneurs s'arrêtent lorsque la fonction a terminé son exécution. Cette dynamique permet de réduire les coûts liés à la gestion de serveurs inutilisés. Les fournisseurs de services cloud facturent généralement en fonction du temps d'exécution de la fonction, ainsi vous ne payez que ce que vous consommez. Quel bonheur pour votre CFO !

Définition de Function as a Service (FaaS)

Function as a Service

Le Function as a Service (FaaS) est un moyen d’exécuter des morceaux de code modulaires (écrits dans son langage de prédilection, comme Python, Java, C#…). Ce code forme une « fonction » et un ensemble de « fonctions » appelé microservice.

La fonction est généralement exécutée ainsi :

  • en réponse à un événement, tel qu’un utilisateur qui clique sur un élément d’une application web ;
  • de manière ordonnancée, pour exécuter une tâche ponctuelle (un calcul d’indicateur journalier par exemple) ;
  • en lien avec d’autres services, comme le dépôt d’un fichier, en sortie d’une file d’attente etc.

Cas d’utilisation du Serverless

Le Serverless est particulièrement utile pour les applications qui ont une charge de travail intermittente, comme les applications web, mobiles et IoT. Voici quelques exemples de cas d'utilisation courant du Serverless :

Le Serverless pour les sites Web dynamiques

La partie dynamique est traitée par plusieurs FaaS en réponse à une action de l’utilisateur, à travers l’appel d’APIs.
Exemple https://aws.amazon.com/fr/serverless/build-a-web-app/

Le Serverless pour le traitement sur des fichiers

Lors du dépôt d’un fichier, un FaaS s’exécute automatiquement afin de réaliser un traitement : insertion de métadonnées dans une base de données, vérification du format, enrichissement…

Le Serverless pour l’Internet Of Things

Afin d’interagir avec les données reçues, un FaaS est déclenché - pour chaque événement ou par lot d’événements.

Les solutions de Serverless

Il existe plusieurs fournisseurs de services cloud offrant des plateformes Serverless, chacun avec ses propres outils et services. Voici quelques exemples de fournisseurs de services cloud Serverless :

  • Serverless avec le géant AWS : AWS Lambda est le service Serverless d'AWS, qui prend en charge plusieurs langages de programmation, tels que Node.js, Python, Java, C# et Go.
  • Serverless avec Google Cloud Platform : Google Cloud Functions est le service Serverless de GCP, qui prend en charge plusieurs langages de programmation, tels que Node.js, Python, Java et Go.
  • Serverless avec Microsoft Azure : Azure Functions est le service Serverless de Microsoft Azure, qui prend en charge plusieurs langages de programmation, tels que Node.js, C#, Java et Python.
  • Serverless avec IBM Cloud : IBM Cloud Functions est le service Serverless d'IBM Cloud, qui prend en charge plusieurs langages de programmation, tels que Node.js, Python, Java, C# et Swift.

Alors, avec ou sans serveur ?

Le Serverless peut constituer un réel avantage pour vos lignes de front - les développeurs - et donc la satisfaction de vos objectifs. N’ayant qu’à se concentrer sur l’écriture, votre chaîne de valeur CI/CD gagne en productivité et en vitesse. Fin des discordes, fin des dépenses inutiles ! Malgré ses quelques inconvénients, ce modèle est parfaitement adapté si vous opérez sur des charges de travail intermittentes : applications web, mobiles et loT.

Ai-je besoin de Kubernetes

Cet article vous aide à mieux comprendre Kubernetes et à quel cas d'usage son usage et bénéfique.

Définition des stratégies à adopter pour migrer ses applications vers Kubernetes.

Accompagnement

Une unité vous accompagne sur vos problématiques DevOps et de sécurité en engageant votre transition digitale et facilitant l'adoption de l'écosystème cloud.

www.beopenit.com

Assurons que vos efforts investis dans le cloud soient rentables … dans le temps !


© Copyright BeOpen IT.  All Rights Reserved