Le Blog Amazon Web Services

Les 10 choses à savoir pour les architectes Serverless

Construit autour des 3 premières parties de la série des bonnes pratiques de mise à l’échelle avec AWS Lambda où vous avez appris à Faire des applications pour passer à l’échelle, vu les modèles d’invocation AWS Lambda, et les bonnes pratiques pour développer avec AWS Lambda. Nous vous invitons à passer au niveau suivant sur vos connaissances serverless en revoyant les 10 sujets pour approfondir vos connaissances.

1: API et design de microservices

Avec le mouvement vers les architectures basées sur des microservices, décomposer les applications et découpler les dépendances est plus important que jamais. Apprenez-en plus sur comment designer et déployer vos microservices avec Amazon API Gateway:

Apprenez à construire une API serverless avec API Gateway, AWS Lambda et Amazon DynamoDB en mettant en place un site web serverless, utilisé le workshop Wild Rydes web application pour le faire de façon autonome.

WildRydes serverless web application workshop

Figure 1 – WildRydes serverless web application workshop

2: Architecture orientée evènements et pattern de message asynchrone

Quand vous construisez des architectures orientées événement, soit vous cherchez à faire du queuing ou du buffering de message ou alors une véritable chorégraphie d’événements, il est intéressant d’apprendre les mécanismes pour mettre en oeuvre les mécanismes asynchrones de message et d’intégration. Ceux-ci sont mis en oeuvre au travers de l’utilisation de queues ou de streams comme buffer de messages et des topics pour le pattern pub/sub.

Les éléments ci-dessous vous permettrons de mieux comprendre quand utiliser les avantages et fonctionnalités de chacun de ces 3 modes:

Apprenez à construire une application temps réel de gestion de données en utilisant Amazon Kinesis Data Streams et AWS Lambda en faisant le workshop Wild Rydes data processing workshop de façon autonome.

3: Orchestration de workflow dans un environnement distribué et basé sur des microservices

Dans les architectures distribuées et microservices, vous devez coordonner les transactions de manière différente comparée aux bases de données relationnelles (transactions ACID), qui sont implémentées en utilisant une base de donnée relationnelle monolithique. Vous devez implémenter des invocations en séquence, coordonnées au travers de plusieurs services en gérant le rejeu et le rollback. Pour des projets où il y a une logique d’orchestration importante, il sera intéressant d’utiliser un pattern d’orchestration plutôt qu’un pattern de chorégraphie mentionné précédemment; AWS Step Functions vous permet de construite des workflows complexes et de distribuer les transactions en s’intégrant à plusieurs services AWS, incluant AWS Lambda. Apprenez en plus sur les options pour construire votre wokflow métier et garder votre logique d’orchestration en dehors de votre code AWS Lambda :

Apprenez à construire un workflow de gestion d’image en utilisation les services IA d’imagerie avec AWS Rekognition et AWS Step Functions pour orchestrer la logique et les épates avec le workshop Serverless image processing workflow workshop de façon autonome.

Plusieurs fonctions AWS Lambda gérées avec une machine à états AWS Step Functions

Figure 2 – Plusieurs fonctions AWS Lambda gérées avec une machine à états AWS Step Functions

4: Environnement d’exécution AWS Lambda et modèle de programmation

Même si AWS Lambda est un service simple pour démarrer, il y a un intérêt à en apprendre plus sur l’environnement d’exécution AWS Lambda pour savoir comment tirer avantage des performances et connaître les stratégies d’optimisation des coûts avec le runtime. Améliorez votre compréhension et vos compétences sur AWS Lambda:

5: Automatisation des déploiements Serverless et patterns CI/CD

Quand on gère un grand nombre de microservices ou de plus petits composants comme des fonctions Lambda, le tout fonctionnant dans une application plus large, il est critique d’intégrer l’automatisation et la gestion du code très tôt dans la construction de l’application pour créer, déployer et versionner les architectures serverless.

AWS offre plusieurs outils de déploiement et des frameworks pour les architectures Serverless, comprenant AWS Serverless Application Model (SAM), AWS Cloud Development Kit (CDK), AWS Amplify, et AWS Chalice.

De plus, il y a plusieurs outils et framework tiers pour le déploiement comme Serverless Framework, Claudia.js, Sparta, ou Zappa. Vous pouvez aussi construire votre propre framework.

L’important est de vous assurer de votre stratégie d’automatisation, votre workflow de développement ainsi que votre intégration des données. Vous pouvez en apprendre plus sur les différentes options:

Apprenez à construire un pipeline CI/CD et automatisez vos déploiements avec les workshops suivants:

6: Gestion d’identité, authentification et autorisations en Serverless

Les développeurs d’application moderne (full stack) ont besoin de planifier et d’intégrer la gestion d’identités dans leurs applications tout en implémentant des fonctionnalités robustes autour de l’authentification et des autorisations. Avec Amazon Cognito, vous pouvez déployer un gestionnaire d’identité sans vous préoccuper de l’infrastructure ainsi que la mise en oeuvre de création de compte et d’authentification pour vos utilisateurs de manière sécurisée, dans vos applications. Après l’authentification, Amazon API Gateway permet aux développeurs de gérer la logique d’autorisation de facon granulaire dans chaque couche et d’autoriser les requêtes, sans exposer les autorisations natives implémentées.

Apprenez-en plus sur les bénéfices de chaque option :

Apprenez à construire en travaillant avec Amazon Cognito, AWS Identity and Access Management (IAM), et Amazon API Gateway dans le workshop Serverless Identity Management, Authentification, et Authorisation.

Figure 3 – Serverless Identity Workshop Management, Authentification, et Authorisation

7: Techniques de sécurité de bout en bout

Au-delà de la gestion d’identité, de l’authentification et des autorisations, il y a beaucoup d’autres éléments à sécuriser dans une application serverless. Cela inclut:

  • La validation des entrées et des requêtes
  • La gestion des dépendances et des vulnérabilités
  • Le stockage des secrets et récupération
  • Les rôles d’exécution IAM et droits d’invocation
  • Le chiffrement des données au repos et en transit
  • Les mesures et limites des accès
  • La conformité réglementaire

Heureusement, AWS propose des solutions et des intégrations pour chaque zone. Apprenez en plus sur les options et les bénéfices de chaque solution:

Apprenez à ajouter de la sécurité de bout en bout avec les techniques citées ci-dessus dans une application serverless dans le Workshop Serverless Security.

8: Observabilité applicative et compréhension avec des logs, des métriques et des traces

Avant de mettre votre application en production, il est critique de vous assurer que l’application peut être supervisée au niveau du microservice ou au niveau composant/application, de bout en bout au travers des logs, métriques à différents niveaux de granularité. Les traces viendront vous aider à comprendre les performances du système distribué et l’expérience utilisateur de bout en bout.
Avec les différents composants qui font une architecture applicative moderne, avoir une visibilité centralisée sur vos logs, métriques et traces de bout en bout vous facilitera la supervision et la compréhension de l’expérience utilisateur. Apprenez en plus sur les options pour l’observabilité de votre application serverless AWS:

9. Assurez-vous que votre application est “Well-Architected”

En complément des points mentionnés précédemment, nous vous suggérons de faire l’architecture de vos applications de façon globale & systémique en utilisant le framework “Well-Architected”. Ce framework inclut cinq piliers: sécurité, disponibilité, performance, optimisation des coûts et excellence opérationnelle. En plus, il y a une vue spécifique serverless ajoutée au framework “Well-Architected”, qui est centrée plus spécifiquement sur les scénarios/cas d’utilisation serverless comme les microservices REST, les skills Alexa, les backends d’applications mobiles, la gestion de streams et les applications web, et comment vous pouvez implémenter les bonnes pratiques pour être “Well-Architected”.

Plus d’informations:

10. Continuer votre apprentissage du Serverless et de ses évolutions

Comme discuté, il y a de nombreuses opportunités pour creuser les architectures serverless sous différents aspects. Avec les ressources partagées précédemment, vous devriez être en mesure de vous familiariser avec les concepts et techniques clés, il n’y a rien de mieux que de continuer à apprendre des autres en suivant les nouveautés et l’évolution des patterns.

Finalement, nous vous encourageons à vérifier régulièrement le blog pour de nouvelles séries sur les architectures Serverless, la prochaine sera orienté sur les patterns de design des API et bonnes pratiques.

A PROPOS DES AUTEURS

Justin Pirtle est Architecte Solution spécialiste chez AWS, focalisé sur le Serverless. Il s’occupe d’aider les clients à concevoir, déployer et mettre à l’échelle des applications serverless en utilisant des services comme AWS Lambda, Amazon API Gateway, Amazon Cognito, et Amazon DynamoDB. Il est présentateur aux conférences AWS, incluant re:Invent, ainsi que d’autres événements AWS. Justin possède un diplôme bachelor’s degree in Management Information Systems from the University of Texas at Austin et un master’s degree in Software Engineering from Seattle University.

Traduit en français par Alexandre Pinhel, Architecte solution spécialiste.

Source