enanuchit - stock.adobe.com
Après Microsoft, Docker se rapproche d’AWS pour simplifier les déploiements sur ECS
Docker a annoncé un partenariat avec AWS pour simplifier les déploiements de containers avec Docker Compose depuis les outils Desktop et CLI, sur Amazon Elastic Container Service et ECS sur Fargate
Avec Compose, Desktop et Hub, Docker a mis au point des outils appréciés pour développer et déployer des applications containerisées. À la fin du mois de mai, l’éditeur racheté par Mirantis avait présenté une intégration plus étroite de sa chaîne d’outils avec les services cloud de Microsoft. Deux mois plus tard, Docker tend la main à AWS au nom des développeurs.
Il faut dire que de manière générale, passer des développements locaux au déploiement dans le cloud s’avère parfois complexe. Comme avec Microsoft Azure Container Instances, le déploiement des containers sur Amazon ECS avec les outils Docker repose sur une procédure contraignante.
S’il n’y a pas de véritable problème avec Desktop et Docker CLI, les outils pour développer localement des containers, Docker Compose, un service de configuration multicontainer n’était pas réellement compatible avec le service AWS. Une recherche rapide sur le web permet de se rendre compte des difficultés rencontrées par les développeurs avec ECS et ECS sur Fargate. Par exemple, le fichier de configuration YAML de Compose comprend une option pour définir des volumes persistants, ce que Fargate ne prend pas en charge en tant que service serverless. L’explication est donnée officiellement par AWS et Docker. Les constructions dans ECS « ne faisaient pas partie de la spécification Docker Compose, mais étaient essentielles pour que les applications puissent fonctionner sur AWS ».
Docker et AWS veulent masquer « la plomberie » aux développeurs
« Par exemple, pour exécuter un simple fichier Compose et le déployer sur Amazon ECS, un développeur doit d’abord quitter ses outils Docker et configurer un VPC Amazon, un cluster Amazon ECS et une Task Definition, pour ne citer que quelques-unes des ressources AWS nécessaires », écrit Carmen Puccio, Principal Solutions Architect chez AWS, dans un article de blog.
Docker et AWS se sont donc rapprochés pour simplifier cette étape et accélérer le déploiement des containers développés à l’aide de Docker CLI, puis déployés avec Compose. Les deux acteurs ont automatisé ces préconfigurations nécessaires et les ont résumées en une commande via Docker Compose : « docker ecs compose up ».
Cette dernière automatise l’appel et la configuration des ressources AWS. Avant cela, le développeur précise ses identifiants AWS depuis un frontend NGINX (reposant sur un backend Go), le nom du cluster ECS et la région cloud. La fonctionnalité est pour l’instant en bêta et l’on comprend entre les lignes qu’il ne faut pas encore l’utiliser en production.
Carmen Puccio semble conseiller d’attendre la disponibilité générale qui n’est pas encore datée. Le principal solution architect espère obtenir des retours d’expérience de la part des développeurs.
Ce plugin pour Docker CLI ne transforme pas pour autant l’architecture de Compose. En clair, il n’y a pas de compatibilité native entre l’outil de déploiement et ECS. Docker Compose ne supporte pas les services multicontainers dont les pods Kubernetes ou les sidecars, selon la documentation. Pour ce faire, les développeurs d’AWS et de Docker ont mis au point une extension personnalisée afin d’intégrer Compose avec ECS et ECS sur Fargate, dans le but de masquer « la plomberie » aux utilisateurs.
Enfin, pour que les déploiements fonctionnent, il faut que les containers déployés résident au sein d’un même groupe de sécurité commun au sein d’un VPC Amazon (qui peut contenir cinq de ces firewalls virtuels). C’est Compose qui paramètre ces groupes.
Une opération séduction en bonne voie
Scott JohnsonCEO, Docker
De fait, le couple Desktop-Compose est particulièrement apprécié des développeurs. Selon l’éditeur, des millions d’entre eux l’utiliseraient déjà.
« C’est un grand pas en avant pour donner aux développeurs la meilleure expérience de création, de partage et d’exécution d’applications cloud natives avec Docker et Amazon ECS », vante Scott Johnson, CEO de Docker dans un communiqué de presse. « Cela permet aux développeurs de travailler localement et d’appliquer la même approche à un service lors de la mise en production avec Amazon ECS, réduisant ainsi l’étendue des connaissances nécessaires et le temps de mise en production ».
Deepak Singh, vice-président, Compute Services, chez AWS, le confirme : un grand nombre de containers reposant sur les technologies Docker sont déployés avec ECS.
La filiale de Mirantis qui s’est recentrée sur les développeurs, après avoir perdu la bataille de l’orchestration face à Kubernetes, poursuit ici son entreprise de séduction. Pour gagner en importance auprès des organisations, elle doit à la fin convaincre les développeurs et les fournisseurs de cloud, fournisseurs avec qui elle a des intérêts communs. Et ces opérations semblent être en bonne marche.