Passer au contenu

Du bon dosage du Serverless dans son IT

Jonathan Le Lous
30 novembre 2022

Les défis énergétiques et environnementaux auxquels nous faisons face actuellement, doivent nous amener à développer une stratégie de Mix technologique dans le même esprit que celui du Mix énergétique.

L’approche du Mix technologique doit nous permettre de tirer de chaque technologie, et partenaire technologique, ce qu’il y a de meilleur afin d’optimiser à la fois notre consommation énergétique mais aussi améliorer de façon globale notre organisation vers une logique plus agile, une IT lean by design.

Dans ce nouveau paradigme technologique, il existe des possibilités quasi-infinies de solutions qui rendent parfois les décisions difficiles et cette difficulté s’accentue par l’usage de nouveaux concepts qui ne sont pas toujours compréhensibles. Dans cette panoplie de solutions, nous allons nous concentrer sur la technologie Serverless afin d’en comprendre les enjeux, de mieux percevoir la valeur pour les organisations mais aussi d’en comprendre les modalités de mise en œuvre.

Vers une informatique « sans contrainte »

Le Serverless est un modèle de développement dit Cloud Native qui permet aux développeurs de créer et d’exécuter des applications sans avoir à gérer l’infrastructure sous-jacente. Les applications sont dites Stateless, les données étant gérées séparément du code. Elles peuvent donc être déployées, supprimées et cela de façon 100% automatisée. Cette technologie offre ainsi de nombreux avantages :

  1. Développement simplifié idéal dans un contexte agile – En effet avec les approches BaaS (Back-end-as-a-Service) & FaaS (Function-as-a-Service), les développeurs peuvent créer des applications/fonctions simples et indépendantes qui remplissent chacune un seul objectif, ce qui facilite la mise en production rapide et des livraisons en continue.
  2. Passage à l’échelle simplifié – Les développeurs qui utilisent une telle architecture n’ont pas à se préoccuper de programmer l’élasticité pour mettre à l’échelle le code. Celle-ci est native à la plateforme utilisée et gérée par le fournisseur informatique (Cloud Public ou Privé).
  3. Livraison plus rapide – le Serverless réduit considérablement les délais de livraison. En effet l’automatisation d’une part, la standardisation d’autre part ont pour effet de simplifier le processus de déploiement, de réduire les phases de tests et de faciliter les corrections de bugs sans impacter les autres équipes.
  4. Une meilleure gestion des coûts – Vous ne payez que ce que vous consommez réellement ce qui permet de réduire les coûts en production et en développement.
  5. Une réduction de son empreinte carbone – Vous maîtrisez votre consommation en adaptant votre plateforme à vos besoins réels par exemple les services cloud peuvent être disponibles seulement pendant les heures de présence de vos collaborateurs.    

Les couches technologiques

Il consiste donc à déployer son code dans un environnement prédéfini et contraint qui est automatisé à l’extrême. Ce schéma illustre comment nous construisons ce type de technologie.

Premièrement, il est intéressant de noter que la technologie Serverless n’est pas uniquement exclusivement liée à des cloud publics mais peut être « construite » aussi en interne au travers des technologies containers.

Deuxièmement, que cela soit dans une approche externe ou interne il est nécessaire de bien maîtriser son cycle de livraison, Continuous Delivery, car une fois celui-ci défini, il n’y aura plus de rupture entre le développement et le déploiement en production. L’importance du DevSecOps est ainsi primordial dans la phase de Design car ce travail de fond va définir la rapidité des livraisons, l’autonomie des développeurs et une stratégie de gestion des risques bien maitrisée.

Troisièmement, une approche Serverless signifie que l’on développe tout ou une partie de ses Applications en mode Stateless, c’est-à-dire littéralement sans état, ce qui concrètement implique de gérer l’ensemble des données générées par les applications de façon externalisées au sein d’une solution DBaaS ou d’un puits de données et d’intégrer des approches qui intègrent les APIs, service Mesh et autres bonnes pratiques issues des 12 facteurs consubstantiels au Cloud Native au travers des architectures dites microservices.

Enfin, il revient à clarifier quels niveaux de service et de responsabilité l’on souhaite donner aux équipes de développement. En effet le caractère restrictif du FaaS peut ne pas plaire à certaines équipes qui préfèreront une approche BaaS où elles pourront construire les FaaS spécifiques à leur contexte technique. 

Faire son choix

L’approche Serverless est donc à la fois une opportunité pour améliorer son efficience au sein d’un Mixe technologique mais aussi une approche qui nécessite à minima d’avoir clarifier sa stratégie Cloud et DevSecOps, sans mentionner les méthodes agiles qui sont un atout majeur quant à la réussite de la mise en place de telles technologies.

Certains éléments sont aussi à prendre en compte lors de son approche Serverless :

  • Cloud Public : sans aucun doute la solution la plus simple pour commencer et pour des applications qui ont vocation à être déployées ou testées à grande échelle avec une élasticité forte.
  • Cloud Privé ou multicloud : il ne faut pas se priver de commencer le Serverless au sein de ses propres infrastructures, quitte ensuite à déborder vers des hyperscalers. Dans ce contexte, il est nécessaire de s’orienter vers Kubernetes et ces distributions, qui disposent de solutions Serverless.
  • DevSecOps : il est important de bien prendre en compte les éléments de sécurité dans sa chaine de livraison qui doit être automatisée à 100% à terme.
  • SRE (Site Reliability Engineer) : il est important de mettre en place un programme d’amélioration continue pour atteindre ses objectifs d’automatisation et d’efficience.

Bien entendu, l’initiative Serverless s’entend dans une vision globale de modernisation applicative qui oblige à revoir ses architectures de référence. Si cette approche n’est pas toujours adaptée à tous les cas d’usages, elle représente une opportunité d’accélération des projets digitaux avec une approche éco-responsable.

Auteur

Jonathan Le Lous

CTO – Head of Cloud Native Infrastructure