Logo Synapsys Services managés d’orchestration de containers sur AWS
6 mins de lecture

Services managés d’orchestration de containers sur AWS

« Question de Richard Container : je voudrais avoir un service managé chez AWS sur de l’orchestration decontainers…

Eh bien Richard, c’est très simple ! Pas de spécialiste Kub chez vous ? Le Cloud Provider est ton ami. »

Parmi les nombreux services que proposeAWS, je vous propose un focus sur la partieorchestration decontainers.

Quels sont les services disponibles ? Lequel choisir correspondant à vos besoins et à la maturité de vos équipes ?

Rappel : les containers

Le plus classique est de faire un comparatif avec une solution de virtualisation :

comparaison entre virtualisation et containerisation

La containerisation part du même principe que la virtualisation : mutualiser et rationaliser l’infrastructure pour baisser les coûts, gagner en agilité par une technologie amenant de la portabilité aux applications.

Le point central de la virtualisation est l’hyperviseur, celui des containers est l’OS hôte : on enlève donc une surcouche à l’infrastructure.

Voici un exemple de comparatif (source Azure , un peu modifié )

comparaison entre virtualisation et containerisation

L’un des intérêts majeur de la containerisation est de permettre une approche modulaire au niveau applicatif :

illustration application monolithique par rapport à de nouveaux services en débit

Ici un comparatif entre une application monolithique et une approchemicroservice(chaque composant de l’application est containerisé.)

Nous pourrions évoquer ici la différence entre lestatefuld’une VM et lestatelessd’un container (donnée persistante ou non) mais ce n’est pas le sujet central ?

Les services managésAWS :

Il existe deux orchestrateurs de containers chezAWS : ECS et EKS. A ceux-ci on peut « greffer » une partieserverlessou non.Il existe également un service deRegistryfourni parAWS(ECR)

présentation des services managés AWS

ECS :

Amazon ECS (AmazonElasticContainer Service) est un service d’orchestration de conteneurs rapide, hautement évolutif et entièrement géré qui permet aux utilisateurs d’exécuter et de mettre à l’échelle facilement des applications conteneurisées surAWS.

Contrairement à Amazon EKS, qui est le service géré parAWSpour Kubernetes,Amazon ECS est le propre service d’orchestration d’AWSqui prend en charge les conteneurs Docker.

Présentation des Services ECS

On parlera donc sur ce service deTaskset de services (plutôt quepodset service pour faire simple)

Ci-dessous un exemple d’architecture répartie sur deux zones de disponibilité :

Exemple de cluster ECS

Comme on peut le voir, ECS est un service managé, le clientAWSne gère pas la partie Cluster de la solution pour se consacrer à la partie application.

Le cluster peut être constitué d’instances « classiques » EC2 mais peut également faire tourner des containers en mode « serverless » :Fargatedont on reparlera un peu plus loin..

EKS :

Amazon EKS (AmazonElasticKubernetes Service) est un service géré qui facilite l’exécution de Kubernetes surAWSsans avoir besoin d’installer, d’exploiter et de gérer votre propre plan de contrôle Kubernetes(control plane). De plus, Amazon EKS s’intègre de manière transparente à une suite d’autres servicesAWS, et toute application exécutée sur Amazon EKS est compatible avec les applications déjà exécutées dans votre environnement Kubernetes existant.

Présentation d'EKS
Présentation des avantages d'EKS

De la même manière qu’ECS, nous sommes sur un service managé, pas de gestion de la couche Cluster Kubernetes (ci-dessous la différence entre managé et non managé):

différence entre un cluster Kub et EKS

Depuis peu,AWSa mis à disponibilité le code d’EKS (EKSdistro :https://github.com/AWS/eks-distro)

Cette release permet d’installer et d’utiliser EKS on-premise :

EKS distro

Avec donc une visibilité depuis la consoleAWSdes différents clusters qu’ils soient on-premou dans le cloud public.Ceci amène également une hybridation facilitée par une expérimentation dans ses datacenters avant migration.

Fargate :

AWSFargateest un moteur de calcul sans serveur qui fournit une capacité de calcul à la demande de bonne taille pour les conteneurs cloud.

En réduisant la charge opérationnelle liée à la mise à l’échelle, à l’application de correctifs, à la sécurisation et à la gestion des serveurs,FargatepermetauxDevOps de se concentrer sur ce qui lesintéresse le plus: la création d’applications.Fargatefonctionne à la fois pour Amazon EKS et ECS.

présentation de AWS Fargate

Voici un exemple de Cluster mixte entre EC2 etFargatesous EKS :

Exemple de cluster EKS mixte

Dans quel cadre ne peut-on pas utiliserFargate ?

  • ReservedInstances et instances spots
  • Containerswindows
Cas de non utilisation de Fargate

Quel service AWS choisir ?

Arbre de décision sur services managés AWS

C’est en fonction de plusieurs critères :

  • Compatibilité avec un existant (par ex. Kubernetes en place on -premise)
  • Besoin de gestion des instances ou non (Fargateou non)
  • Le coût (à déterminer surAWScostexplorer !)
  • Utilisation ou non d’EKSdistroon-premise

Environnement technique  AWS:

Ces servicesAWSsont souvent associés à d’autres pour la gestion et la mise à l’échelle par ex.

Services Annexes AWS

Voici par exemplesur ECSune utilisation liée aux services DevOps natifsAWS :

AWS Exemple CI/CD

Simplement :

Le repository de code (CodeCommit)détecte un ajout de nouveau code qui génère uneventsurcloudwatchet permet àCodeBuildde détecter la nouvelle release.

CodeBuildva donc générer la nouvelle image docker et la poser sur le service deregistry(ECR).

Uneventde génération de nouvelle image est généré surcloudwatch(avec l’ID de release)qui permet àCloudFormation(Infra as Code) de mettre les nouvelles versions en production sur ECS.

Conclusion :

Comme l’on peut le constater, il existe plusieurs possibilités d’orchestration de containers chezAWSqui seront à choisir en fonction des besoins et des coûts. Par la sortie d’EKSdistroon pourrait tendre à penser que Kubernetes sort son épingle du jeu…Asuivre !

Date de publication : 25 février 2021

Vous avez aimé lire cet article ?
Partagez le !