Introduction - Architectures à plusieurs niveaux sans serveur AWS avec Amazon API Gateway et AWS Lambda

Introduction

L'application à plusieurs niveaux (trois niveaux, multi-niveaux, etc.) est un modèle d'architecture fondamental depuis des décennies et reste un modèle populaire pour les applications destinées aux utilisateurs. Bien que le langage utilisé pour décrire une architecture à plusieurs niveaux varie, une application à plusieurs niveaux comprend généralement les composants suivants :

  • Niveau de présentation : composant avec lequel l'utilisateur interagit directement (par exemple, les pages web et les interfaces utilisateur des applications mobiles).

  • Niveau logique : code requis pour traduire les actions des utilisateurs en fonctionnalités de l'application (par exemple, les opérations de base de données CRUD et le traitement des données).

  • Niveau de données : supports de stockage (par exemple, bases de données, magasins d'objets, caches et systèmes de fichiers) qui contiennent les données pertinentes pour l'application.

Le modèle d'architecture à plusieurs niveaux fournit un cadre général pour garantir que les composants d'application découplés et évolutifs de manière indépendante peuvent être développés, gérés et maintenus séparément (souvent par des équipes distinctes).

En raison de ce modèle dans lequel le réseau (un niveau doit effectuer un appel réseau pour interagir avec un autre niveau) agit comme la frontière entre les niveaux, le développement d'une application à plusieurs niveaux nécessite souvent la création de nombreux composants d'application indifférenciés. Certains de ces composants incluent :

  • Le code définissant une file d'attente de messages pour la communication entre les niveaux

  • Le code définissant une interface de programme d'application (API) et un modèle de données

  • Le code lié à la sécurité qui garantit un accès approprié à l'application

Tous ces exemples peuvent être considérés comme des composants « standard » qui, bien que nécessaires dans des applications à plusieurs niveaux, ne varient pas beaucoup dans leur mise en œuvre d'une application à une autre.

AWS propose un certain nombre de services qui permettent la création d'applications à plusieurs niveaux sans serveur, simplifiant ainsi considérablement le processus de déploiement de ces applications en production et supprimant la surcharge associée à la gestion traditionnelle des serveurs. Amazon API Gateway, un service de création et de gestion d'API et AWS Lambda, un service d'exécution de fonctions de code arbitraires, peuvent être utilisés ensemble pour simplifier la création d'applications à plusieurs niveaux robustes.

L'intégration d'Amazon API Gateway à AWS Lambda permet de lancer des fonctions de code définies par l'utilisateur directement par le biais de requêtes HTTPS. Quel que soit le volume de demandes, API Gateway et Lambda se mettent à l'échelle automatiquement pour prendre en charge exactement les besoins de votre application (veuillez consulter Quotas Amazon API Gateway et remarques importantes pour obtenir des informations sur la capacité de mise à l'échelle). En combinant ces deux services, vous pouvez créer un niveau qui vous permet d'écrire uniquement le code qui compte pour votre application et de ne pas vous concentrer sur divers autres aspects non différenciés de la mise en œuvre d'une architecture à plusieurs niveaux, tels que l'architecture pour la haute disponibilité, l'écriture de kits SDK clients, la gestion du serveur et du système d'exploitation (OS), la mise à l'échelle et la mise en œuvre d'un mécanisme d'autorisation du client.

API Gateway et Lambda permettent la création d'un niveau logique sans serveur. En fonction des exigences de votre application, AWS propose également des options pour créer un niveau de présentation sans serveur (par exemple, avec Amazon CloudFront et Amazon Simple Storage Service) et un niveau de données (par exemple, Amazon Aurora ou Amazon DynamoDB).

Ce livre blanc se concentre sur l'exemple le plus populaire d'architecture à plusieurs niveaux, l'application web à trois niveaux. Toutefois, vous pouvez appliquer ce modèle à plusieurs niveaux bien au-delà d'une application web classique à trois niveaux.