GP - Fotolia

Gestion de containers : quelle solution choisir (1)

En matière d’outils de gestion de containers, le choix d’un bon fournisseur relève généralement du parcours du combattant. Cet article, 1er d’une série de 2, s’intéresse aux offres d’AWS, Azure, CoreOS, et Docker Swarm sans oublier Apache Mesos.

Il existe une règle dans l’IT : sans bon fournisseur, peu de chance de récupérer les gains escomptés. Cette règle s’applique aussi à la gestion des containers. L'évaluation des fournisseurs peut être un processus complexe car les couches à prendre en compte sont nombreuses.

Si l'hébergement virtualisé est un domaine dynamique, l'orchestration l’est peut-être encore davantage. Les produits changent rapidement, et l’on s’éloigne de plus en plus des modèles  simples de déploiement de containers pour se positionner sur un terrain intermédiaire, où se combinent Docker et Kubernetes.

Même si les entreprises peinent à basculer leurs infrastructures de containers en production, le besoin d’administration, de contrôle, de monitoring ne s’est jamais autant fait ressentir. Cet article, en deux parties, vise à proposer une cartographie exhaustive des différentes solutions de gestion de containers du marché, cloud ou pas.

Les solutions d’AWS, Azure et  Docker Swarm sont ici listées, accompagnées d’outils Open Source CoreOS et Mesos. 

Amazon Web Services 

Amazon étant le n°1 du cloud public, il est indispensable de prendre en compte ses capacités d'hébergement de containers. Chaque entreprise qui planifie la mise en place d’applications containerisées se doit de considérer cette option - même si elle n’utilise pas les services spécifiques d'Amazon, ni même n’a recours au cloud public.

Amazon propose deux services de containers : Elastic Container Service (ECS) et Elastic Container Service for Kubernetes (EKS). Les deux vous permettent de déployer des containers avec le logiciel de votre choix sur des instances Elastic Compute Cloud (EC2). Les deux peuvent utiliser la technologie Fargate d'Amazon (la disponibilité de Fargate pour EKS est prévue pour 2018). Cela apporte aux containers la même facilité de gestion que celle pour les machines virtuelles (VM) - l'utilisateur ne gère donc pas les instances EC2 sous-jacentes. Fargate simplifie le déploiement des containers sur EC2 - une tâche qu’en général les utilisateurs trouvent compliquée. Il s'agit d'un composant distinct et séparé du reste.

Le choix des options peut certes être ardu, mais pour un hébergement classique de Docker, sans avoir à gérer des instances EC2, ECS avec Fargate est encore le meilleur choix. Si vous avez besoin de vous reposer sur EKS pour le support de Kubernetes, Fargate peut aussi constituer une option intéressante pour gérer de la même manière vos containers, à la fois dans le cloud et dans votre datacenter. 

Méfiez-vous toutefois : si vous appréciez les services de containers d'Amazon pour son intégration aux autres services AWS, cela peut limiter votre portabilité entre votre datacenter et le cloud – vous avez dit lock-in ?. En matière de containers, l'approche d'Amazon n'est pas Open Source en soi.  Sa version de Kubernetes peut ne pas être totalement à jour. Donc, assurez-vous de vérifier ceci. 

Licences/prix : EC2 est disponible pour un essai gratuit. Une fois la période d'essai terminée, il y a quatre façons de payer : 

  • A la demande : on paie à la capacité de calcul par heure ou par seconde, selon le type d’instances. Cette méthode est la meilleure pour les utilisateurs qui ne veulent pas être liés par un engagement sur le long terme et qui veulent réduire les coûts, avec moins de flexibilité.
  • Instances réservées : cela exige un engagement de un à trois ans. Ces instances offrent aux utilisateurs un rabais allant jusqu'à 75 % par rapport à la tarification à la demande (ci-dessus). Elle s’appuie sur la réservation de capacité. Il s’agit d’une bonne option pour les utilisateurs qui ont besoin d'une capacité de stockage spécifique et ont des applications utilisées en continu.
  • Spot Instances : une bonne option pour les utilisateurs qui ont besoin d'une plus grande flexibilité dans leurs horaires de début et de fin, et d’une disponibilité rapide de capacité importante et à un prix plus bas. Les utilisateurs peuvent demander une capacité de calcul de réserve, allant jusqu'à 90% de réduction sur le prix à la demande.
  • Hôtes dédiés : le serveur physique EC2 peut également être utilisé avec la licence liée au serveur de l'utilisateur ; ce qui réduit les coûts globaux. Il peut être acheté sur demande ou sous forme de réservation, allant jusqu'à 70% de réduction sur le prix à la demande.

Amazon ECS a deux modèles de tarification :

  • Fargate : Vous payez la quantité de CPU virtuel et de mémoire que votre application containerisée demande par seconde.
  • EC2 (voir le détail des prix ci-dessus).

Amazon EKS est pour le moment disponible en preview. A la rédaction de cet article, les prix n’avaient pas encore été communiqués.

Apache Mesos 

Mesos est en fait un noyau pour systèmes distribués qui traite les applications containerisées de la même manière que Linux traite les applications traditionnelles. Conçu pour la répartition à travers de grands pools de ressources, Mesos crée une abstraction d’un point d'hébergement que vous pouvez ensuite mapper vers n'importe quel datacenter ou service de cloud public, hôte physique ou virtuel, ou enfin OS. Ce style de déploiement est ambitieux - et difficile. Mesos est Open Source. Si la documentation en ligne n’est pas suffisante pour vous, vous avez besoin soit de services professionnels, soit d'une approche différente.

Mesos est le cœur d'un projet plus vaste appelé Mesosphere DC/OS. Celui-ci prend non seulement en charge l'abstraction de l'hébergement de containers, mais s'intègre également à Docker et Kubernetes. Mesosphere DC/OS est disponible en version Open Source et en version Entreprise (avec support). La plupart des utilisateurs de Mesos ont un intérêt pour Mesosphere DC/OS.  C'est aussi un choix intelligent pour les grandes entreprises pour des raisons de déploiements hybrides à grande échelle ou multi-cloud. Pour les applications Big Data, en particulier les clusters Hadoop, Mesosphere DC/OS est aussi un bon point de départ tant que vous avez les compétences techniques pour le déployer et le maintenir. Si Mesos ou Mesosphere vous intéressent, vous devriez également évaluer l'outil d'orchestration de la société, Marathon.

Licences/prix : le prix de l'abonnement est calculé sur le nombre de nœuds (physiques ou virtuels). Les abonnements peuvent inclure le support Premium (24/7) ou Standard. 

Azure Container Service 

Microsoft est un autre fournisseur d’outils pour les containers qui font aussi usage de Kubernetes. Azure Container Service (AKS) est un outil de cluster managé, qui ressemble à Google Kubernetes Engine ou Amazon EKS avec Fargate. Vous pouvez toujours utiliser AKS avec votre propre orchestrateur, mais cela pourrait changer à l'avenir car Microsoft semble s’orienter vers une version cloud public.

Comme les outils de containers de Google et Amazon, Microsoft intègre son service de containers à d'autres services web pour faciliter la prise en charge des applications mobiles  ou des front-office web, par exemple. Le grand atout de Microsoft est certainement Azure Service Fabric. Il s’agit d’un outil d'orchestration de composants particulièrement apprécié des entreprises. Azure est populaire auprès des PME adeptes de Windows Server et des applications du fournisseur. AKS est généralement compatible avec toutes ces applications.

Licences/prix : AKS est un service gratuit. Les utilisateurs ne paient que pour les machines virtuelles, le stockage associé et les ressources réseau consommées. Microsoft tient à disposition un calculateur. 

CoreOS/CNCF Rkt 

CoreOS , qui fait aujourd’hui partie de Red Hat,  a développé Rkt, un moteur de container construit pour la sécurité, permettant aux utilisateurs d'industrialiser leur déploiement. CoreOS Rkt excelle dans la portabilité des containers, la sécurité, la flexibilité et ses possibilités d’évolution. Mais parce qu'il n'est pas aussi populaire que Docjer, la documentation de Rkt et le support sont loin derrière ceux de Docker. Le logiciel a été ouvert par CoreOS et est hébergé désormais par la Cloud Native Computing Foundation (CNCF) - qui héberge également Kubernetes.

À moins que vous ne disposiez d'un soutien technique en interne, il est préférable de choisir Docker plutôt que Rkt. Si vous voulez déployer Rkt mais sans être un gourou du code, il vaut mieux réfléchir à Tectonic de CoreOS. Cet outil est la version commerciale de CoreOS et s'appuie sur Kubernetes. Certaines PME préfèrent Tectonic pour le support, même si elles n'ont pas de besoins spécifiques en matière de sécurité des containers. 

Licences/prix : Tectonic est gratuit pour un maximum de 10 nœuds. Après 10 nœuds, la société fixe les prix avec les clients.

Docker Swarm

Docker représente le choix par défaut quand on évoque les formats de containers, et de leur hébergement. Et il en sera probablement ainsi dans un avenir prévisible. Il augmente le support des containers Linux pour inclure les fonctionnalités de base nécessaires au déploiement des applications.

Le runtime (environnement d'exécution) de Docker est disponible directement depuis le site Web de Docker pour les principales distributions Linux. Vous pouvez compiler votre propre image Docker à partir du code source si vous avez des besoins particuliers. Si besoin, il est possible d’utiliser Swarm pour disposer des fonctions d’orchestration. Docker a également décidé d’inclure à sa plateforme Enterprise le support de Kubernetes – qui cohabite donc avec Swarm.

Vous pouvez obtenir une image Docker directement depuis « Docker for public cloud providers », comme Amazon et Microsoft - une bonne idée si vous prévoyez d'utiliser à la fois un datacenter et des containers dans le cloud public. Si vos besoins s’orientent uniquement vers le cloud public, obtenez Docker directement auprès du fournisseur cloud. Le nombre de paquets pour Docker est bien supérieur que pour tout autre produit - à l'exception de Kubernetes.

Licences/prix : Docker est un logiciel libre, mais la société Docker offre des produits commerciaux. L'édition Entreprise coûte 750 $ par nœud. Il y a aussi une option de support personnalisé et une édition communautaire, disponible gratuitement.

Pour approfondir sur Virtualisation de serveurs

Close