Docker
Bien comprendre les conteneurs d’AWS EC2 Container Service
Certaines entreprises se jettent la tête la première dans les conteneurs, mais la technologie a ses détracteurs et ses supporters.
La conteneurisation, poussée par un engouement évident, est aujourd’hui la nouvelle norme du Cloud. Les utilisateurs se tournent de plus en plus vers les conteneurs pour accroitre la portabilité de leurs applications Cloud et améliorer leur efficacité. Et dans ce contexte, Docker en est le chef de file.
La virtualisation bâtie sur les conteneurs n’est toutefois pas une nouvelle technologie. Docker a contribué à replacer le principe sur le devant de la scène. Toutefois, la dernière génération de conteneurs comporte quelques défauts. Comme avec les autres technologies, les administrateurs IT doivent évaluer les coûts, la sécurité et leurs besoins spécifiques avant de prendre le train Docker.
Voici quelques points clé à retenir, et des réponses aux questions les plus courantes que se posent les entreprises. De quoi les accompagner dans leur décision.
Qu’est-ce que sont les conteneurs et à quoi cela servent-ils ?
La virtualisation bâtie sur les conteneurs permet d’exécuter plusieurs applications sur le même OS, partageant ainsi ses ressources. En ce sens, un conteneur diffère d’une VM qui opère comme un OS. Les conteneurs Linux Docker peuvent répondre plus rapidement aux pics de demandes en calcul, en démarrant en une fraction de seconde et en s’appuyant sur le noyau de l’OS hôte. Cette possibilité intéresse particulièrement les équipes de développeurs, pour tester par exemple leur code.
En plus de se lancer rapidement, les conteneurs, avec leur poids plume, peuvent s’exécuter sur un serveur hôte par centaine en même temps, à condition toutefois que les ressources soient disponibles. De plus, les conteneurs sont très portables grâce à leur capacité à fonctionner sans hyperviseur. Si le serveur de destination dispose du même OS que celui du serveur original, les conteneurs peuvent migrer facilement
Avec tout cela, les professionnels du secteur restent très attentifs, au fur et à mesure que la technologie évolue, mais déjà, elle transforme le paysage des datacenters et du Cloud.
Comment AWS exploite les conteneurs ?
Les utilisateurs AWS ont le choix entre exécuter leurs instances sur EC2 ou se mettre aux conteneurs. Amazon EC2 Container Service (ECS) prend en charge les conteneurs Docker dans AWS, permettant aux utilisateurs de dimensionner (scale up et down), d’évaluer et de contrôler l’usage CPU. Ces conteneurs AWS s’exécutent sur un cluster managé d’instances EC2, ECS automatisant l’installation et les opérations du cluster. AWS y ajoute son expertise, en matière de load balancing, auto-scaling, gestion des identités et des accès, et toutes autres fonctions associées aux services AWS, via ECS.
Les utilisateurs définissent des tâches avec ECS pour relier les conteneurs à des services dédiés ou micro-services, utiles pour des workloads tant simples que complexes. Puis, ils créent un service qui prend la forme d’un auto-scaler pour leur tâche. Autrement dit, ECS élimine la gestion des applications conteneurisées en les ajustant aux besoins CPU et mémoire.
Conteneurs et ECS : quels sont les désavantages
Même si les conteneurs reposent essentiellement sur de la virtualisation de Type 2, leurs dernières incarnations sont encore en développement. La sécurité est le premier problème associé aux conteneurs Docker. Les processus Docker ont en effet un accès root au système de fichiers.
AWS atténue certains problèmes de sécurité et de réseau liés à Docker, en permettant aux utilisateurs de par exemple mettre en place une Virtual Private Cloud (VPC) ou un groupe de sécurité pour limiter les accès aux ressources. Toutefois, cela n’élimine pas le dilemme autour de l’accès root ; le VPC agit davantage comme une couche d’isolation.
ECS offre des fonctions de sécurité plus avancées que Docker, mais pas de quoi écarter les inquiétudes des utilisateurs Cloud les plus sensibles à la sécurité. Les clients AWS semblent également préférer les schedulers tiers à ceux disponibles dans ECS ; AWS a donc du travail à faire dans cette partie.
Conteneurs : quelle est la prochaine étape dans AWS ?
Il est difficile de prédire les prochaines évolutions chez AWS, même si les clients font clairement part de leurs besoins. La promesse de portabilité est alléchante, mais avoir la possibilité d’exécuter des conteneurs identiques sur toutes les machines pourrait être plus facile à dire qu’à faire. Question sécurité, les conteneurs Docker ne proposent pas le même niveau d’isolation qu’une VM, même si installer un conteneur au-dessus peut contribuer à réduire certains risques.
Mais toutes les limites des technologies de conteneurs ne sont pas encore connues. Pouvoir isoler certains composants applicatifs dans des microservices protège davantage l’application, mais les inquiétudes semblent pour le moment dépasser la confiance.
Amazon ECS a été le premier service Cloud à supporter Docker, mais d’importantes améliorations sont encore nécessaires. Avec ECS, le reporting se limite au log. L’AWS Management Console ainsi que des outils tiers peuvent faire du reporting sur les taux d’usage de compute et les coûts. Mais ils peuvent aussi échapper à tout contrôle si l’on ne s’y attarde pas.
Certains clients ont aussi relevé les problèmes avec Elastic Beanstalk et ECS. Mais avec l’intérêt grandissant des conteneurs, Docker et AWS combleront ces lacunes pour répondre positivement à la demande des clients.