Microservices - Implémentation des microservices sur AWS

Microservices

Les API sont la porte d'entrée des microservices. Cela signifie que les API servent de point d'entrée pour la logique des applications derrière un ensemble d'interfaces de programmation, généralement une API de services web REST. Cette API accepte et traite les appels des clients, et peut implémenter des fonctionnalités telles que la gestion du trafic, le filtrage des demandes, l'acheminement, la mise en cache, l'authentification et l'autorisation.

Implantation de microservices

AWS a intégré des éléments de base qui soutiennent le développement des microservices. Deux approches populaires consistent à utiliser AWS Lambda et les conteneurs Docker avec AWS Fargate.

Avec AWS Lambda, chargez votre code et de laissez Lambda s'occuper de tout pour que vous puissiez exécuter et mettre à l'échelle l'implémentation en fonction de votre courbe de demande réelle, tout en assurant une haute disponibilité. Aucune administration de l'infrastructure n'est nécessaire. Lambda prend en charge plusieurs langages de programmation et peut être déclenché à partir d'autres services AWS, ou appelé directement depuis n'importe quelle application web ou mobile. L'un des atouts principaux d'AWS Lambda est de vous rendre agile : vous pouvez vous concentrer sur votre logique métier car la sécurité et la mise à l'échelle sont gérées par AWS. L'approche résolument innovante de Lambda est à la base de la plateforme évolutive.

Le déploiement basé sur des conteneurs est l'une des approches courante permettant de réduire les efforts opérationnels pour le déploiement. Les technologies de conteneur comme Docker ont gagné en popularité au cours de ces dernières années en raison d'avantages comme la portabilité, la productivité et l'efficacité. Avec les conteneurs, la phase d'apprentissage peut être difficile, et vous devez penser à des correctifs de sécurité pour la surveillance et vos images Docker. Amazon Elastic Container Service (Amazon ECS) et Amazon Elastic Kubernetes Service (Amazon EKS) vous évitent de devoir installer, exploiter et mettre à l'échelle votre infrastructure de gestion de clusters. Avec de simples appels d'API, vous pouvez lancer et stopper des applications activées par Docker, interroger l'état complet de votre cluster et accéder à de nombreuses fonctions connues, comme les groupes de sécurité, les répartitions de charge, les volumes Amazon Elastic Block Store (Amazon EBS) et les rôles AWS Identity and Access Management (IAM).

AWS Fargate est un moteur de calcul sans serveur pour les conteneurs qui fonctionne à la fois avec Amazon ECS et Amazon EKS. Avec Fargate, vous n’avez plus à vous soucier de provisionner suffisamment de ressources de calcul pour vos applications conteneur. Fargate peut lancer des dizaines de milliers de conteneurs et s’adapter facilement pour exécuter vos applications les plus stratégiques.

Amazon ECS prend en charge les stratégies et contraintes de positionnement de conteneurs afin de personnaliser la façon dont Amazon ECS positionne les tâches et y met fin. La contrainte de positionnement d'une tâche est une règle prise en compte lors du positionnement des tâches. Vous pouvez associer des attributs, qui sont des paires clé/valeur, à vos instances de conteneur, puis utiliser une contrainte pour positionner des tâches en fonction de ces attributs. Par exemple, vous pouvez utiliser des contraintes afin de positionner certains microservices en fonction du type d'instance ou de la capacité d'instance, comme les applications alimentées par le GPU.

Amazon EKS s'appuie sur les versions à jour du logiciel open source Kubernetes, ce qui vous permet d'utiliser tous les plug-ins et outils existants de la communauté Kubernetes. Les applications s’exécutant sur Amazon EKS sont entièrement compatibles avec les applications s’exécutant sur n’importe quel environnement Kubernetes standard, qu’il s’agisse de centres de données sur site ou de clouds publics. Amazon EKS intègre IAM dans Kubernetes, vous permettant ainsi d’enregistrer les entités IAM avec le système d’authentification natif de Kubernetes. Il n'est pas nécessaire de configurer manuellement les informations d'identification pour l'authentification auprès du plan de contrôle Kubernetes. L'intégration IAM vous permet d'utiliser IAM pour vous authentifier directement auprès du plan de contrôle lui-même et fournir un accès granulaire précis au point de terminaison public de votre plan de contrôle Kubernetes.

Les images Docker utilisées dans Amazon ECS et Amazon EKS peuvent être stockées dans Amazon Elastic Container Registry (Amazon ECR). Avec Amazon ECR, vous n'avez plus besoin de gérer ni de mettre à l'échelle l'infrastructure requise pour faire fonctionner votre registre de conteneurs.

L'intégration et la livraison continues (CI/CD) constituent des bonnes pratiques et un élément essentiel d'une initiative DevOps qui autorise les changements logiciels rapides tout en maintenant la stabilité et la sécurité du système. Toutefois, cela n'entre pas dans le cadre de ce livre blanc. Pour de plus amples informations, veuillez consulter le livre blanc Application de l'intégration continue et de la livraison continue sur AWS.

AWS PrivateLink est une technologie hautement disponible et évolutive qui vous permet de connecter de façon privée votre VPC aux services AWS compatibles, aux services hébergés par d'autres comptes AWS (services de points de terminaison VPC) et aux services partenaires compatibles AWS Marketplace. Pour communiquer avec le service, vous n'avez pas besoin d'une passerelle Internet, d'un périphérique NAT, d'une adresse IP publique, d'une connexion AWS Direct Connect ou d'une connexion VPN. Le trafic entre votre VPC et le service ne quitte pas le réseau Amazon.

Les liens privés constituent un excellent moyen d'améliorer l'isolation et la sécurité de l'architecture des microservices. Un microservice, par exemple, peut être déployé dans un VPC totalement séparé, avec un équilibreur de charge en avant-plan, et exposé à d'autres microservices via un point de terminaison AWS PrivateLink. Avec cette configuration, l'utilisation de AWS PrivateLink permet au trafic réseau à destination et en provenance du microservice de ne jamais traverser l'Internet public. La conformité réglementaire pour les services traitant des données sensibles tels que des données PCI, HIPPA et le bouclier de protection des données UE/États-Unis constitue un cas d'utilisation pour ce type d'isolement. En outre, AWS PrivateLink permet de connecter des microservices entre différents comptes et VPC Amazon, sans avoir besoin de règles de pare-feu, de définitions de chemin ou de tables de routage, ce qui simplifie la gestion du réseau. En utilisant PrivateLink, les fournisseurs de logiciels en tant que service (SaaS) et les ISV peuvent également proposer leurs solutions basées sur des microservices avec une isolation opérationnelle complète et un accès sécurisé.