Construction d’une application serverless en utilisant Step Functions, API Gateway, Lambda et S3 dans AWS

Construction d’une application serveless en utilisant Step Functions, API Gateway, Lambda et S3 dans AWS

Architecture de solution

Installation de packer

Contexte et Objectifs

  Avec l’essor des solutions serverless, les entreprises cherchent à réduire les coûts liés à l’infrastructure tout en améliorant l’agilité et la rapidité de développement. AWS offre une suite de services intégrés qui permettent de créer des applications sans gérer de serveurs, facilitant ainsi l’automatisation des processus métier et le développement d’applications performantes, évolutives et sécurisées. Step Functions, API Gateway, Lambda et S3 sont au cœur de cette approche. Ces services permettent de coordonner des workflows complexes, exposer des API, exécuter des fonctions à la demande, et stocker des ressources statiques. L’adoption du paradigme serverless vise à éliminer la gestion d’infrastructure traditionnelle (comme le provisionnement de serveurs) et à se concentrer uniquement sur le code et la logique métier. Ce modèle est particulièrement utile pour des cas d’usage tels que l’automatisation des processus internes, la création d’API, ou encore la génération de sites web ou d’applications évolutives sans intervention humaine sur le plan de l’infrastructure. Vous pouvez aussi lire hébergement d’une application statique sur AWS avec le CICD impliquant AWS CodeCommit, CodePipeline et S3 Durée de mise en place : 30 à 45 min  

Objectifs

L’article vise à :

      1. Expliquer les concepts clés du serverless en illustrant la synergie entre Step Functions, API Gateway, Lambda et S3.
        2. Montrer comment construire une application serverless capable d’orchestrer différents services AWS sans provisionner d’infrastructure permanente pour démontrer l’utilisation coordonnée des services :
        • Step Functions : orchestration du workflow.
        • API Gateway :point d’entrée pour exposer des API REST ou HTTP.
        • Lambda : exécution de la logique métier à la demande.
        • S3 : stockage de fichiers statiques ou objets nécessaires à l’application.
        3. Démontrer les avantages du modèle serverless 4. Limites et scénarios où AWS Serverless est moins adapté Prérequis
              ● Avoir un compte AWS, si vous en avez pas vous pouvez créer en cliquant sur ce lien
        création d’un compte AWS.
              ● Avoir VScode ou tout autres éditeurs de code installés sur votre PC. Vous pouvez télécharger
        VScode.
              Temps estimé de réalisation: 2h
        I. Expliquer les concepts clés du serverless et la synergie entre Step Functions, API Gateway, Lambda et S3 Qu’est-ce que le serverless ? Le serverless, ou informatique sans serveur, est une approche où les développeurs se concentrent uniquement sur l’écriture du code et la logique métier, tandis que le fournisseur cloud (comme AWS) gère automatiquement l’infrastructure sous-jacente : serveurs, stockage, mise à l’échelle, et maintenance. Les applications serverless sont événementielles : des services ou fonctions sont déclenchés par des événements spécifiques (par exemple, une requête API ou un fichier déposé sur S3). Pour aller plus loin avec les serverless, il faut lire la documentation Serverless computing Avantages du modèle serverless :
        • Pas de gestion de serveurs : AWS gère le provisionnement et la maintenance.
        • Facturation à l’usage : vous ne payez que lorsque votre code est exécuté.
        • Évolutivité automatique : les services s’adaptent dynamiquement à la charge.
        • Déploiement rapide : en utilisant des composants prédéfinis (API, workflows, stockage, etc.).
         
          Présentation des services et de leur rôle dans la solution serverless
        1. Step Functions : Orchestration du workflow Step Functions est un service qui oriente le flux des tâches et coordonne l’exécution de services AWS. Il permet de construire un workflow structuré et automatisé, où chaque étape (comme l’invocation d’une fonction Lambda) est séquentielle ou parallèle, avec gestion des échecs et de la reprise.
        • Cas d’usage : Traitement d’un fichier en plusieurs étapes, validation de données, ou envoi d’e-mails à plusieurs services.
        • Avantage : Simplifie l’orchestration de tâches complexes et leur état, sans qu’il soit nécessaire d’écrire un code manuel d’enchaînement des fonctions.
        • La tarification:regardez la tarification ici AWS Step functions pricing
    2. API Gateway : Exposition d’API API Gateway permet de créer et gérer des API RESTful ou HTTP pour exposer des fonctionnalités au public ou aux systèmes internes. Il sert de point d’entrée sécurisé pour une application serverless.
        • Cas d’usage : Une application front-end qui interagit avec des fonctions Lambda via des appels API.
        •  
        • Avantage : Il offre des fonctionnalités de sécurité (authentification, autorisation), de gestion de quota et de journalisation des requêtes.
        • La tarification: regardez la tarification ici API Gateway pricing
    3. Lambda : Exécution de la logique métier Lambda est un service de fonction à la demande, permettant d’exécuter du code en réponse à des événements sans avoir à gérer d’infrastructure. Lambda peut être déclenchée par une API Gateway, un événement S3, ou une étape dans un workflow Step Functions.
  1. Cas d’usage : Traitement d’une image ou exécution d’une logique métier spécifique.
  2. Avantage :Évolutif et facturé à la milliseconde, ce qui optimise les coûts.
  3. La tarification: regardez la tarification ici AWS Lambda pricing
  4. 4. S3 : Stockage d’objets Amazon S3 est un service de stockage d’objets utilisé pour héberger des fichiers statiques (comme des images ou du contenu HTML) ou stocker des résultats intermédiaires (par exemple, des fichiers transformés par Lambda).
    • Cas d’usage : Stockage de fichiers d’entrée et sortie dans un workflow Step Functions.
    • Avantage :Fiabilité élevée et capacité d’évoluer à l’infini, avec un coût compétitif.
    • La tarification:regardez la tarification ici Amazon S3 pricing
    5. Synergie entre Step Functions, API Gateway, Lambda et S3 Ces services s’intègrent pour offrir une architecture fluide et automatisée, chaque composant jouant un rôle essentiel. Voici une séquence illustrant leur synergie : 1. Un utilisateur ou une application envoie une requête HTTP à l’API Gateway. 2. API Gateway déclenche une fonction Lambda, qui exécute une tâche spécifique (comme valider une donnée ou traiter un fichier). 3. Si une orchestration plus complexe est nécessaire, la fonction Lambda peut faire partie d’un workflow géré par Step Functions (par exemple, traiter un fichier par étapes séquentielles). 4. Les fichiers intermédiaires ou finaux sont stockés dans un bucket S3. S3 peut également déclencher un événement Lambda si nécessaire (par exemple, lorsqu’un nouveau fichier est déposé).
    Exemple de scénario : Traitement automatisé de fichiers d’images 1. Stockage : L’utilisateur télécharge une image sur un bucket S3. 2. Déclenchement automatique : L’événement de dépôt dans S3 déclenche une fonction Lambda qui effectue une compression de l’image. 3. Orchestration : Un workflow Step Functions gère la séquence suivante :
      ○ Compression de l’image via Lambda.
      ○ Envoi d’une notification de succès.
      ○ Stockage de l’image compressée dans un autre bucket S3.
    4. Exposition API : Une API Gateway permet à l’utilisateur de télécharger l’image compressée à travers un lien sécurisé.
    II. Montrer comment construire une application serverless Connectez-vous à la console de gestion AWS. Ouvrez le dépôt GitHub du laboratoire dans un second onglet. Tout le code nécessaire à la réalisation de ce TP y est disponible. Etape 1: Vérifier une adresse email dans Simple Email Service (SES)
        ● Ouvrez Simple Email Service dans un nouvel onglet en tapant Simple Email Service dans la barre de recherche en haut de l’écran.
Installation de packer
● Dans la console Amazon Simple Email Service (SES), cliquez sur les trois lignes horizontales en haut à gauche et choisissez Configuration – Identités.  
Installation de packer
● Cliquez sur Créer une identité.
Installation de packer
● Choisissez Adresse électronique, entrez votre adresse électronique personnelle (ou une adresse électronique que vous avez créée spécifiquement pour ce laboratoire pratique). Cliquez sur Créer une identité. (Remarque : les comptes outlook ne semblent pas fonctionner correctement dans le cadre de ce laboratoire, mais gmail fonctionne).
Installation de packer
Installation de packer
● Dans un nouvel onglet de navigateur ou un nouveau client de messagerie, accédez à votre messagerie, ouvrez l’e-mail de vérification d’Amazon SES et cliquez sur le lien fourni.
Installation de packer
Note : Vérifiez votre courrier indésirable si vous ne le voyez pas dans votre boîte de réception.
    ● Vous devriez voir une page « Félicitations ! » qui confirme que vous avez vérifié votre adresse e-mail avec succès. ● Revenez à l’onglet de la console AWS SES. ● Vous devriez maintenant voir Verified (Vérifié) sous Identity status (État de l’identité). (Remarque : il se peut que vous deviez actualiser la page).
Installation de packer

Pour en savoir plus sur ce service consultez Amazon Simple Email Service.
Etape 2 : Créer la fonction Lambda Email

      ● Dans le repo GitHub, téléchargez les fichiers au format .zip et décompressez-les sur votre machine. En utilisant un éditeur de texte tel que VSCode, ouvrez le fichier email_reminder.py.
      ● Revenez à votre premier onglet, et dans la console de gestion AWS, naviguez jusqu’à Lambda en tapant Lambda dans la barre de recherche en haut de l’écran. Sélectionnez Lambda dans le menu déroulant.

 

 

Installation de packer

● Dans la console AWS Lambda, cliquez sur Créer une fonction.

 

Installation de packer
Installation de packer
● Laissez l’option Créer à partir de zéro sélectionnée, puis définissez les valeurs suivantes :
    ○ Nom de la fonction : email
Installation de packer
    ○ Runtime : Python 3.12
 
Installation de packer
● Développez Modifier le rôle d’exécution par défaut en cliquant sur la flèche située à côté. ● Sous Rôle d’exécution, sélectionnez Utiliser un rôle existant ou créez un rôle si vous en avez pas. Dans notre cas, il y en a. ● Une fois que vous avez sélectionné cela, cliquez sur le menu déroulant vide qui apparaît sous Existing rôle. ● Sélectionnez votre rôle, pour notre cas le rôle est : LambdaRuntimeRole dans le menu déroulant.    
Installation de packer
● Cliquez sur Create function (Créer une fonction) en bas de la page.    
Installation de packer
● Faites défiler vers le bas jusqu’à Code source et, dans la liste des fichiers d’environnement sur la gauche, cliquez sur lambda_function.py pour afficher le code de la fonction. ● Supprimez tout le code fourni. ● Retournez à votre éditeur visuel avec le fichier email_reminder.py du repo GitHub ouvert. ● Copiez tout le code dans votre presse-papiers. ● Retournez à la console Lambda dans votre premier onglet, et collez le code copié dans lambda_function.py.    
Installation de packer
● Dans le code de lambda_function, à la ligne 3, supprimez l’espace réservé YOUR_SES_VERIFIED_EMAIL, et tapez l’email que vous venez d’utiliser, en vous assurant de laisser les guillemets simples autour.  
Installation de packer
● Cliquez sur Déployer dans la barre de menu Source du code au-dessus du code. ● Vos modifications ont été déployées. ● Remontez sur la même page jusqu’à la section Function Overview, et copiez l’ARN de la fonction en cliquant sur l’icône de copie à côté, et collez-le dans un fichier texte pour l’utiliser plus tard dans le laboratoire.
Installation de packer
Etape 3 : Créer une machine d’état de fonction d’étape
● Ouvrez la console AWS Step Functions dans un nouvel onglet en tapant Step Functions dans la barre de recherche en haut de l’écran. Cliquez avec le bouton droit de la souris sur Step Functions dans le menu déroulant et sélectionnez Open Link in New Tab (Ouvrir le lien dans un nouvel onglet).
 
Installation de packer

● Dans l’onglet de la console AWS Step Functions, cliquez sur Get started.

 

Installation de packer
● Dans la fenêtre contextuelle, cliquez sur Create your own (Créer votre propre flux de travail) pour créer votre propre flux de travail à partir de zéro.
Installation de packer
● Sur la nouvelle page, cliquez sur Code et supprimez tout le code fourni. ● Ouvrez le fichier step-function-template.json dans votre éditeur de texte. ● Copiez tout le code dans votre presse-papiers. ● Retournez à l’onglet de la console Step Functions et collez le code sur le côté gauche de l’écran.
Installation de packer
Installation de packer
● À la ligne 23, remplacez la valeur de l’espace réservé EMAIL_REMINDER_ARN par l’ARN pour l’email que vous avez copié dans un fichier texte plus tôt, en veillant à laisser les guillemets doubles autour de l’ARN.
Installation de packer
● Cliquez sur le bouton Config en haut de la page.
Installation de packer
● Laissez le nom par défaut MyStateMachine.
Installation de packer
● Sous Permissions, cliquez sur le menu déroulant du rôle Exécution et sélectionnez RoleForStepFunction sous Rôles existants ou créez en un.
Installation de packer
Installation de packer
    ● Votre machine d’état devrait maintenant être créée. ● Sur la page MyStateMachine, sous Détails, copiez l’ARN dans votre presse-papiers ou dans un fichier texte. (Si vous êtes toujours dans la page de configuration de l’automate à états, cliquez sur quitter en haut de la page).
    Objectif 4 : Créer la fonction Lambda
    api_handler ● Faites défiler la page jusqu’à la ligne de navigation en haut de la page, cliquez sur Lambda pour revenir à la console Lambda principale. ● Cliquez sur Create function (Créer une fonction).
Installation de packer

● Laissez l’option Créer à partir de zéro sélectionnée, puis définissez les valeurs suivantes :
    ○ Nom de la fonction : api_handler ○ Runtime : Python 3.12

     

Installation de packer
● Développez l’option Modifier le rôle d’exécution par défaut en cliquant sur la flèche située à côté. ● Sous Rôle d’exécution, sélectionnez Utiliser un rôle existant. ● Une fois que vous avez sélectionné cette option, cliquez sur le menu déroulant vide qui apparaît sous Existing rôle ou créer un rôle . ● Sélectionnez LambdaRuntimeRole dans le menu déroulant.
Installation de packer
Etape 5 : Créer la passerelle API ● Ouvrez la console Amazon API Gateway dans un nouvel onglet en tapant API Gateway dans la barre de recherche en haut de l’écran. ● Cliquez avec le bouton droit de la souris sur API Gateway dans le menu déroulant et sélectionnez Ouvrir le lien dans un nouvel onglet. ● Dans l’onglet de votre console Amazon API Gateway, faites défiler vers le bas jusqu’à l’API REST (celle qui n’indique pas Private), puis sélectionnez Build.  
Installation de packer
● Sous API Details (Détails de l’API), sélectionnez New API (Nouvelle API). ● Configurez ensuite les valeurs suivantes :
    ○ Nom de l’API : reminders
 
Installation de packer
○ Laissez Description vide. ○ Type de point de terminaison : Régional ● Cliquez sur Create API en bas de l’écran.    
Installation de packer
● Vous devriez maintenant être dans votre API Gateway, et vous verrez que vous n’avez pas de méthodes définies pour la ressource. ● Vous devriez maintenant voir la page Ressources. Cliquez sur Créer une ressource.  
Installation de packer
● Sous Resource Name (Nom de la ressource), entrez reminders (Rappels). ● Cochez la case située à côté de CORS. ● Cliquez sur Create Resource (Créer une ressource) en bas de la page.    
Installation de packer
● Vous devriez être de retour à la page Ressources. ● Cliquez sur Créer une méthode.  
Installation de packer
● Dans la liste déroulante qui apparaît sous Method type, sélectionnez POST et définissez les valeurs suivantes :
    ○ Type d’intégration : Lambda Function
 
Installation de packer
    ○ Activez l’intégration Lambda Proxy en cliquant sur la case à cocher. ○ Région Lambda : us-east-1 ○ Fonction Lambda : Commencez à taper, puis sélectionnez api_handler.  
Installation de packer
      ● Cliquez sur Create method en bas de la page.
     
Installation de packer
    ● De retour à la page Ressources, cliquez sur Déployer l’API en haut de la page.
 
Installation de packer
    ● Dans la fenêtre contextuelle Deploy API, définissez les valeurs suivantes :
      ○ Étape de déploiement : [Nouvelle étape] ○ Nom de l’étape : prod ○ Cliquez sur Déployer.
     
Installation de packer
Remarque : vous pouvez ignorer les messages d’avertissement relatifs aux autorisations du Web Application Firewall (WAF), s’ils sont reçus après le déploiement. ● Copiez l’url d’invocation dans votre presse-papiers ou dans un éditeur de texte pour l’utiliser dans l’objectif suivant.  
Installation de packer
Etape 6 : Créer et tester le site Web statique S3
● Dans les fichiers que vous avez téléchargés au début de ce laboratoire, naviguez jusqu’au dossier du site web statique. ● Ouvrez le fichier formlogic.js dans un éditeur de texte. ● A la ligne 5 de formlogic.js, supprimez l’espace réservé
UPDATETOYOURINVOKEURLENDPOINT.
Collez l’URL Invoke que vous avez précédemment copiée depuis API Gateway, puis ajoutez ce qui suit à la fin de l’URL /reminders. ● Enregistrez le fichier local.
Installation de packer

● Retournez à votre premier onglet de la console de gestion AWS. ● Ouvrez la console Amazon S3 dans un nouvel onglet en tapant S3 dans la barre de recherche en haut de l’écran. Cliquez avec le bouton droit de la souris sur S3 dans le menu déroulant, puis sélectionnez Ouvrir le lien dans un nouvel onglet.

 

Installation de packer
● Dans la console Amazon S3, cliquez sur Créer un bucket. 
Installation de packer
● Sur la page Créer un bucket, sous Type de bucket, laissez Objectif général sélectionné, puis pour Nom du bucket, entrez un nom de bucket unique au niveau mondial.
Installation de packer
● Sous Propriété de l’objet, sélectionnez ACLs enabled, et assurez-vous que Bucket owner preferred est sélectionné. ● Décochez la case Bloquer tous les accès publics. ● Sous Bloquer tout accès public, sélectionnez Je reconnais que les paramètres actuels peuvent avoir pour effet de rendre publics ce seau et les objets qu’il contient.
Installation de packer
Installation de packer
● Laissez les autres paramètres par défaut, faites défiler l’écran vers le bas et cliquez sur Créer un bucket.
Installation de packer
● Sélectionnez le nouveau seau sous bucket pour l’ouvrir. ● Sur la page du bucket, cliquez sur Télécharger. ● Sur la page Upload, cliquez sur Add files (Ajouter des fichiers) et sélectionnez tous vos fichiers locaux dans le dossier static_website, puis cliquez sur Open (Ouvrir). Vous pouvez également faire glisser tous les fichiers locaux du dossier static_website dans la zone de glisser-déposer située sous Upload.
    ○ cat.png ○ error.html ○ formlogic.js ○ IMG_0991.jpg ○ index.html ○ main.css
Installation de packer
Installation de packer
● Une fois que tous les fichiers ont été ajoutés, faites défiler vers le bas et cliquez sur Permissions pour développer les options d’accès. ● Sous ACL prédéfinies, sélectionnez Accorder un accès en lecture publique. ● Sous Accorder un accès en lecture publique, sélectionnez Je comprends les risques liés à l’octroi d’un accès en lecture publique aux objets spécifiés. ● Cliquez sur Télécharger en bas de la page. ● Une fois que vous avez constaté que les téléchargements ont réussi, cliquez sur Fermer dans le coin supérieur droit de la page. ● Cliquez sur l’onglet Propriétés sous le nom du bucket. ● Faites défiler la page jusqu’à Hébergement statique de site web, puis cliquez sur Modifier.  
Installation de packer
● Sur la page Modifier l’hébergement statique du site web, sous Hébergement statique du site web, sélectionnez Activer.
    ○ Définissez les valeurs suivantes : ○ Document d’index : index.html ○ Document d’erreur : error.html
Installation de packer
Installation de packer
● Cliquez sur Enregistrer les modifications en bas de la page.  
Installation de packer
● Faites à nouveau défiler la page jusqu’à Hébergement de sites web statiques, et cliquez sur l’URL en dessous du point de terminaison du site web Bucket pour accéder à la page web.  
Installation de packer
● Une fois que vous êtes sur le site web statique, pour tester la fonctionnalité du service, définissez les valeurs suivantes :
    ○ Secondes d’attente : 1 ○ Message : Bonjour ! ○ someone@something.com : Votre adresse électronique personnelle (il doit s’agir de la même que celle que vous avez vérifiée précédemment avec Simple Email Service). ○ Sous Type de rappel, sélectionnez e-mail.
      ● Vous devriez voir « Looks ok ». Mais vérifiez le résultat ci-dessous ! au-dessus des sections Required, et vous devriez voir« Status » : « Success »en bas de la page.  
Installation de packer
● Une fois que vous êtes sur le site web statique, pour tester la fonctionnalité du service, définissez les valeurs suivantes :
    ○ Secondes d’attente : 1 ○ Message : Bonjour ! ○ someone@something.com : Votre adresse électronique personnelle (il doit s’agir de la même que celle que vous avez vérifiée précédemment avec Simple Email Service). ○ Sous Type de rappel, sélectionnez e-mail.
      ● Vous devriez voir « Looks ok ». Mais vérifiez le résultat ci-dessous ! au-dessus des sections Required, et vous devriez voir« Status » : « Success »en bas de la page.  
Installation de packer
  • Accédez à l’onglet de la console AWS Step Functions.
  • Dans la section Executions, cliquez sur l’icône d’actualisation.
  • Vous devriez voir au moins une exécution
  • Cliquez sur l’une des exécutions.
  • Faites défiler vers le bas jusqu’à l’affichage du graphique pour visualiser le flux de travail de l’événement.
  • Dans un nouvel onglet du navigateur ou dans un nouveau client de messagerie, accédez à votre courrier électronique. Vous devriez maintenant voir un courriel de rappel de la part du service.

Pour vous aider à comprendre et optimiser vos coûts sur la plateforme AWS, je vous invite à lire l’article l’optimisation des coûts.

III. Démonstration des avantages du AWS Serverless

Le modèle serverless apporte de nombreux avantages pour les entreprises modernes, en particulier dans le cloud. Voici une démonstration claire de ses atouts à travers une explication détaillée avec des scénarios d’utilisation.

1. Réduction des Coûts Opérationnels

Dans le modèle serverless, vous ne payez que pour l’exécution de votre code ou l’utilisation de vos services (mode pay-per-use). Il n’y a pas de frais pour les serveurs inactifs.

Exemple :
Un site de e-commerce enregistre une forte affluence pendant les fêtes mais beaucoup moins de trafic le reste de l’année. Avec une infrastructure classique, les serveurs devraient tourner constamment. En serverless, les fonctions ne s’exécutent que lors des transactions ou consultations, ce qui optimise les coûts en période creuse.

➡ Avantage : aucune nécessité de surprovisionner ou payer pour des ressources inutilisées.

2. Évolutivité Automatique (Auto-scaling)

Le serverless permet de s’adapter automatiquement aux fluctuations du trafic. Le cloud alloue les ressources nécessaires pour exécuter le code en fonction de la demande sans intervention manuelle.

Exemple :
Lors du lancement d’une application mobile virale, un pic inattendu de millions d’utilisateurs survient. Grâce au serverless, la charge est automatiquement absorbée sans que les utilisateurs rencontrent des problèmes de disponibilité.

➡ Avantage : aucune gestion complexe du dimensionnement des serveurs.

3. Gain de Temps dans le Développement

Les développeurs peuvent se concentrer sur la logique métier sans gérer l’infrastructure sous-jacente (serveurs, systèmes d’exploitation, mises à jour, etc.).

Exemple :
Une startup SaaS choisit d’utiliser AWS Lambda avec Amazon DynamoDB et API Gateway. En éliminant la gestion des serveurs, elle se concentre sur les fonctionnalités du produit et livre plus rapidement.

➡ Avantage : réduction du time-to-market.

4. Maintenance et Mises à Jour Simplifiées

Le fournisseur cloud gère les aspects liés à la maintenance (mises à jour de sécurité, patchs, etc.), ce qui réduit les efforts de maintenance.

Exemple :
Une plateforme IoT utilise des fonctions serverless pour traiter des millions d’événements en temps réel. L’équipe ne s’inquiète pas des correctifs de sécurité ou des montées de version du système, car tout cela est pris en charge par AWS.

➡ Avantage : moins de stress lié à la maintenance de l’infrastructure.

5. Meilleure Résilience et Haute Disponibilité

Les services serverless sont répartis sur plusieurs régions et zones de disponibilité, garantissant une résilience intégrée.

Exemple :
Un service de streaming utilise AWS Lambda et Amazon S3 pour livrer du contenu. Même si une région AWS rencontre un problème, le service continue de fonctionner grâce à l’architecture distribuée du cloud.

➡ Avantage : tolérance aux pannes intégrées.

6. Modèle Idéal pour les Charges de Travail Événementielles

Le serverless est particulièrement efficace pour des charges de travail ponctuelles ou événementielles. Les fonctions ne s’exécutent qu’en réponse à des événements (HTTP, base de données, IoT, etc.).

Exemple :
Un système de facturation cloud est déclenché chaque fois qu’un client effectue un achat, générant la facture via une fonction Lambda.

➡ Avantage : consommation optimale des ressources en fonction des besoins réels.

7. Architecture Modulaire et Facilement Extensible

Le modèle serverless facilite le découpage d’une application en plusieurs fonctions indépendantes (microservices), facilitant ainsi l’évolution de l’application.

Exemple :
Une entreprise de logistique divise son application en plusieurs microservices (gestion des commandes, calcul des livraisons, notifications clients). Chaque microservice est une fonction Lambda autonome pouvant évoluer indépendamment.

➡ Avantage : meilleure flexibilité et agilité de l’application.

IV. Limites et Scénarios où Serverless est Moins Adapté

Bien que puissant, le modèle serverless présente quelques limites :

  • Cold starts : Le démarrage à froid des fonctions peut engendrer des latences.
  • Pas adapté aux charges constantes : Pour des workloads longs ou constants, une solution comme EC2 ou EKS pourrait être plus économique.
  • Limites d’exécution : AWS Lambda limite l’exécution d’une fonction à 15 minutes. Et pour connaître et mieux comprendre la limite des services AWS, veuillez consulter AWS Service quotas.

 

Conclusion

Le modèle serverless révolutionne la gestion des applications en permettant aux entreprises de se concentrer sur l’innovation sans se soucier de l’infrastructure sous-jacente. Il offre des avantages indéniables : réduction des coûts, évolutivité automatique, simplification de la maintenance, et accélération du développement. Idéal pour les charges événementielles et les applications modulaires, il garantit également une meilleure résilience grâce à une architecture distribuée. Cependant, il peut être moins adapté aux workloads constants ou critiques nécessitant une exécution prolongée. En somme, le serverless s’impose comme une solution puissante pour les entreprises modernes cherchant agilité, flexibilité, et optimisation des ressources dans leur transformation numérique.Pour plus d’articles et d’approfondissement n’hésitez pas à consulter notre blog et notre formation cloud devenez AWS Certified Associate et SysOps ou tout simplement vous inscrire au BootCamp BootCamp AWS Cloud Engineer.

 

Références

 

 

Tags et Catégories

#Serverless #AWSLambda #CloudComputing #Évolutivité #RéductionDesCoûts #ArchitectureModulaire #Resilience #GestionDInsfrastructure #TimetoMarket #MaintenanceSimplifiée #HauteDisponibilité #ApplicationSÉvénementielles #ToléranceAuxPannes #OptimisationDesRessources

Auteur: Lahda Biassou Alphonsine, Ingénieur Cloud

LinkedIn: Alphonsine Lahda