Cet article vous a plu?
0
Cet article vous a plu?
0

Container-as-a-Service : comparaison des offres CaaS

Vous vous intéressez à des scénarii de virtualisation basés sur des conteneurs au niveau du système d’exploitation ? Vous voulez cependant économiser du temps et de l’argent pour la mise en place des composants matériels et logiciels nécessaires ? Pas de problème. Avec un Container-as-a-Service, le dernier modèle de service sur le marché de l’informatique Cloud, les plateformes de conteneurs sont disponibles sous forme de solutions complètes hébergées sur le Cloud. Nous vous présentons les trois plateformes CaaS les plus populaires avec Google Container Engine (GKE), Amazon EC2 Container Service (ECS) et Microsoft Azure Container Service (ACS). Nous vous expliquons ensuite comment utiliser les services de conteneurs Cloud dans le cadre de l’entreprise. 

Qu’est-ce que CaaS ?

CaaS, abréviation pour Container-as-a-Service, est un modèle d’affaires dans lequel les fournisseurs de Cloud Computing proposent des services liés à la virtualisation basée sur les conteneurs en tant que services évolutifs en ligne. Ceci permet aux utilisateurs finaux d’utiliser des services de conteneurs sans avoir à fournir l’infrastructure dont ils auraient besoin pour cela. Il s’agit d’un terme marketing qui se réfère à des modèles de services Cloud existants tels que les services IaaS (Infrastucture as a Service), PaaS (Platform as a Service) et SaaS (Software as a Service).

Que sont les services de conteneurs ?

Un service de conteneur est un service de fournisseur de cloud computing, qui permet aux utilisateurs de développer, tester, exécuter ou distribuer des logiciels à travers des conteneurs dits d’application dans des infrastructures informatiques.

Les applications de conteneurs sont un concept du domaine de Linux. La technologie permet la virtualisation au niveau du système d’exploitation. Les applications individuelles, y compris toutes les dépendances comme les bibliothèques et les fichiers de configuration, sont exécutées sous la forme d’instances encapsulées. Ceci permet le fonctionnement en parallèle de plusieurs applications avec des exigences différentes sur un même système d’exploitation, ainsi que le déploiement sur une large gamme de systèmes.

CaaS inclut généralement un environnement de conteneur complet, comprenant des outils d’orchestration, un catalogue d’images (appelé registre), un logiciel de gestion de cluster et un ensemble d’outils de développement et d’API (interfaces de programmation d’application). La facturation est utilisée dans le modèle de location.   

Distinction des autres services Cloud

Depuis le milieu des années 2000, les entreprises et les utilisateurs privés du Cloud Computing sont devenus une alternative pour obtenir les ressources informatiques dans leurs propres locaux. En général, on distingue trois modèles de service : IaaS, PaaS et SaaS.

  • IaaS : Infrastructure-as-a-Service inclut des ressources matérielles virtuelles telles que la puissance de calcul, l’espace de stockage et la capacité réseau. Les fournisseurs IaaS incluent ces éléments de base de l’infrastructure informatique sous la forme de machines virtuelles (VM) ou de réseaux locaux virtuels (VLAN). Les utilisateurs du Cloud accèdent à Internet via des API. IaaS représente le niveau le plus bas de modèle de Cloud Computing.
  • PaaS : le niveau intermédiaire du modèle de Cloud Computing est appelé Platform-as-a-Service. Dans le cade de PaaS, les fournisseurs de Cloud fournissent des plateformes de programmation et des environnements de développement sur Internet. En règle générale, PaaS couvre l’ensemble de la gestion du cycle de vie, du développement aux tests en passant par la livraison et l’exploitation. PaaS est basé sur IaaS.
  • SaaS : le niveau supérieur du modèle de Cloud Computing est un niveau d’application pur. Software-as-a-Service correspond à la mise à disposition de logiciels d’applications sur Internet. Les programmes fournis s’exécutent sur ce modèle de service sur le serveur du fournisseur, et non sur le matériel du client. SaaS est basé sur IaaS et PaaS. L’accès s’effectue via le navigateur Web ou un logiciel Agent.

L’objectif de l’approche des services de mise à disposition de ressources informatiques est de permettre aux utilisateurs finaux de se concentrer pleinement sur leur activité principale. Un développeur qui utilise PaaS pour tester des applications, par exemple, charge simplement son code autoprogrammé dans le Cloud. Toutes les exigences techniques pour le processus de construction, ainsi que pour la gestion et le déploiement de l’application sont fournies par le fournisseur de la plateforme PaaS.

Dans cette répartition classique des trois modèles établis du Cloud Informatique, CaaS pourrait être situé entre IaaS et PaaS. Parmi ces modèles de service, Container as a Service se distingue toutefois par une approche fondamentalement différente de la virtualisation : la technologie des conteneurs.

CaaS offre également aux utilisateurs une gestion complète du cycle de vie des applications logicielles. CaaS offre également aux utilisateurs une gestion complète du cycle de vie des applications logicielles. Contrairement à IaaS et PaaS, la mise à disposition de ressources virtualisées n’est pas basée sur l’hyperviseur de machines virtuelles séparées avec leur propre système d’exploitation. Au lieu de cela, on utilise les fonctions natives du noyau Linux, ce qui permet d’isoler des processus individuels au sein du même système d’exploitation. La technologie de conteneur établit un niveau d’abstraction, qui encapsule les applications, y compris le système de fichiers du système sous-jacent, permettant ainsi le fonctionnement sur n’importe quelle plateforme qui prend en charge la technologie de conteneur respective. Mais qu’est-ce que cela signifie exactement pour l’utilisateur ?

Les développeurs de logiciels qui souhaitent tirer parti d’un environnement de développement basé sur le Cloud doivent s’appuyer sur les technologies apportées par le fournisseur, telles que les langages de programmation ou les frameworks du modèle PaaS. Au contraire, le Container-as-a-Service propose aux utilisateurs une plateforme de programmation relativement libre dans laquelle les applications encapsulées dans des conteneurs peuvent être mises à l’échelle sur des infrastructures informatiques hétérogènes, quelles que soient leurs exigences et exigences technologiques.

En résumé

Définition de CaaS : les Containers-as-a-Service constituent une forme de virtualisation basée sur un conteneur qui fournit l’environnement d’exécution, les outils d’orchestration et les ressources d’infrastructure sous-jacentes via un fournisseur de Cloud Computing.

Comment fonctionne CaaS?

Un Container-as-a-Service est un cluster d’ordinateurs disponible via le Cloud et renégocié par les utilisateurs pour télécharger, créer, gérer de manière centralisée et exécuter des applications de conteneurs sur la plateforme Cloud. L’interaction avec l’environnement de conteneur basé sur le Cloud se fait via une interface utilisateur graphique (GUI) ou sous forme d’appels d’API. Les technologies de conteneurs disponibles pour les utilisateurs diffèrent selon le fournisseur. Cependant, le noyau de chaque plateforme CaaS est un outil d’orchestration (aussi appelé orchestrator), qui permet la gestion d’architectures de conteneurs complexes.

Les applications de conteneur utilisées dans des environnements de production consistent généralement en un cluster de plusieurs conteneurs répartis sur différents systèmes physiques et virtuels. On parle d’une application multi-conteneurs. Le fonctionnement massif de telles applications ne peut pas être géré manuellement. Au lieu de cela, on utilise des outils d’orchestration qui organisent l’interaction des conteneurs exécutés, et permettent un fonctionnement automatisé. Les fonctions suivantes sont importantes :

  • Répartition de conteneurs sur plusieurs hôtes
  • Regroupement de conteneurs en unités logiques
  • Mise à l’échelle des conteneurs
  • Répartition de charge (load balancing)
  • Distribution des capacités de stockage
  • Interface de communication entre les conteneurs
  • Service-Discovery

L’orchestrateur utilisé dans le cadre de CaaS a une influence directe sur les fonctions disponibles pour les utilisateurs du service Cloud. Aujourd’hui, le marché de la virtualisation en conteneur est dominé par trois outils d’orchestration :

  • Docker Swarm : Swarm est un outil de gestion et d’orchestration de cluster multi source commercialisé par Docker en tant qu’outil natif pour la gestion des clusters dockers et la gestion des opérations de conteneur. L’orchestrator est la base du produit Dockers On-Premises-CaaS Docker Datacenter (DDC), qui permet aux entreprises de déployer un environnement de conteneur comme service autogéré dans leur propre centre de données, dans le cadre de Docker Entreprise Edition (EE) ou de Cloud privé (Docker Datacenter sur AWS/Azure). Le développement individuel de Docker est connu pour son installation et sa manipulation faciles, et il est étroitement intégré à l’environnement d’exécution du conteneur du leader du marché. L’outil d‘orchestration utilise l’API Docker standard, assurant la comptabilité avec les autres outils docker qui communiquent via l’API Docker. L’administration de clusters et de conteneurs s’effectue à l’aide des commandes Docker classiques.
  • Kubernetes : Kubernetes est un outil open source pour l’approvisionnement, la mise à l’échelle et la gestion automatisée d’applications de conteneur sur des infrastructures informatiques. L’outil a initialement été développé par Google, et il est maintenant géré par la Cloud Native Computing Foundation (CNCF). Contrairement à Swarm, Kubernetes ne prend pas uniquement en charge les conteneurs docker. Grâce à une interface de conteneur (IRC), l’orchestrateur fournit des interfaces à divers environnements d’exécution de conteneurs conformes à la norme OCI et à l’hyperviseur, ainsi qu’au principal concurrent de Docker, rkt de CoreOS. Comparé à Docker Swarm, l’installation et la configuration de Kubernetes est significativement plus complexe.
  • DC/OS : DC/OS est la suite du développement du gestionnaire de cluster open source Apache Mesos, fourni par Mesosphere, une start-up de la Sillicon Valley, en tant que système d’exploitation pour les centres de données sous licence open source. DC/OS se distingue avant tout de Docker Swarm et Kubernetes car le gestionnaire de cluster ne se limite pas à la gestion des applications du conteneur. Différentes charges de travail telles que conteneurs, microservices et systèmes Big Data peuvent en effet être exploités en parallèle sur demande.

Une description détaillée des outils d’orchestration Swarm, Kubernetes et DC/OS fournit une vue d’ensemble des outils Docker les plus populaires.

Aperçu des fournisseurs CaaS

La technologie des conteneurs est en plein essor. La gamme de services CaaS est également importante. Les services de virtualisation au niveau du système d’exploitation se trouvent dans le portefeuille de presque tous les fournisseurs Cloud publiques. Amazon, Microsoft et Google, qui comptent actuellement parmi les acteurs les plus influents sur le marché des CaaS, ont étendu leurs plateformes Cloud avec une solution de conteneur basée sur docker au cours des dernières années. Nous vous présentons les produits suivants :  

  • Google Container Engine (GKE)
  • Amazon EC2 Container Service (ECS)
  • Azure Container Service (ACS)
Note

Docker est la plateforme de conteneur la plus populaire du marché. Le format de conteneur développé par Docker, un développement ultérieur du conteneur Linux (LXC), est largement utilisé et pris en charge par tous les fournisseurs CaaS.

Lors du choix d’un service CaaS pour une utilisation en entreprise, les utilisateurs doivent être guidés par les questions suivantes :

  • Quels outils d’orchestration sont disponibles ?
  • Quels formats de fichiers sont pris en charge pour les applications de conteneur ?
  • Est-il possible d’utiliser des applications multi-conteneurs ?
  • Comment les clusters sont-ils gérés pour le fonctionnement du conteneur ?
  • Quelles fonctions réseau et stockage sont prises en charge ?
  • Le fournisseur offre-t-il un registre privé pour les images de conteneurs ?
  • Dans quelle mesure l’environnement d’exécution du conteneur est-il intégré à d’autres services Cloud ?
  • Quels sont les modèles de facturation disponibles ?

Amazon EC2 Container Service (ECS)

Depuis avril 2015, le revendeur en ligne Amazon fournit des solutions de virtualisation conteneurisées sous le nom d’Amazon EC2 Container Service (ECS) dans le cadre de la plateforme Cloud Computing AWS (Amazon Web Service).

Amazon ECS propose aux utilisateurs différentes interfaces qui permettent d’exploiter des applications isolées d’Amazon Elastic Compute Cloud (EC2) :

  • Instances Amazon-EC2 (Instances d‘Amazon Elastic Compute Cloud) : Amazon EC2 consiste en une capacité de calcul évolutive du service Informatique Amazon Cloud, sous la forme d’instances.
  • Amazon S3 (Amazon Simple Storage) : Amazon S3 est une plateforme de stockage basée sur le Cloud.
  • Amazon EBS (Amazon Elastic Block Store) : Amazon EBS fournit des volumes de stockage en blocs de haute disponibilité pour les instances EC2.
  • Amazon RDS (Amazon Relational Database Service) : Amazon RDS est un service de base de données pour la gestion des moteurs de bases de données relationnelles Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle et Microsoft SQL Server.

ECS ne prend en charge que les conteneurs au format Docker.

La gestion des conteneurs se fait par défaut avec ECS à l’aide d’un orchestrateur propriétaire, qui agit en tant que maître et communique avec un agent sur chaque nœud du cluster à gérer. Autrement, un module open source est proposé avec Blox. Ce dernier permet de relier un outil de planification auto-développé ainsi que des logiciels de fournisseurs tiers tels que Mesos à ECS.  

L’un des points forts d‘Amazon EC2 Container Service consiste à pouvoir être associé avec d’autres services Amazon tels que :

  • AWS Identity- et Access-Management (IAM) : AWS Identity- et Access-Management vous permettent de définir des rôles d’utilisateurs et de groupes, ainsi que de gérer les accès aux ressources AWS à l’aide d’autorisations.
  • Elastic Load Balancing : l‘Elastic Load Balancing est un répartiteur de charge en Cloud, qui distribue automatiquement le trafic des applications entrantes sur plusieurs instances EC2.
  • AWS CloudTrail : AWS CloudTrail est un service qui enregistre toute l’activité de l’utilisateur et les chargements API au sein d’un cluster. Ceci permet aux utilisateurs de comprendre et analyser leurs processus dans le cadre de la gestion des ressources et de l’analyse de sécurité.
  • Amazon CloudWatch : CloudWatch, le service d’Amazon pour la surveillance des ressources et applications Cloud, est également disponible pour les utilisateurs AWS pour faire fonctionner des conteneurs d’application.  
  • AWS CloudFormation : Avec CloudFormation, Amazon fournit aux utilisateurs d’AWS un service permettant de définir des modèles pour le déploiement de ressources AWS. On y trouve des services de conteneurs sous la forme d’un modèle JSON réutilisable. Ceci inclut le schéma directeur de l’application, y compris les instances et les capacités de stockage requises pour l’exécution, ainsi que leurs interactions avec d’autres services AWS.  

Pour l’administration centrale des images de conteneur, Amazon fournit aux utilisateurs d’AWS des référentiels Docker privés dans le cadre de l’EC2 (EC2 Container Registry). L’accès au registre peut être géré via AWS IAM au niveau des ressources.

L’un des inconvénients du service de conteneur Amazon EC2 est la restriction sur les instances EC2. Le service CaaS d’Amazon ne prend pas en charge les infrastructures informatiques en dehors d’AWS, ni physiquement ni virtuellement. Les scénarii de Cloud hybrides, dans lesquels les applications multi-conteneurs sont parfois exploitées sur site, sont donc tout aussi impossibles qu’une combinaison de ressources informatiques de différents fournisseurs de Cloud publics (multi-Cloud). Ceci est probablement dû au modèle d’entreprise dans lequel Amazon propose son service CaaS : le service de conteneur Amazon EC2 est essentiellement disponible gratuitement via AWS. Les utilisateurs paient simplement pour la mise à disposition de l’infrastructure Cloud, par exemple pour un cluster d’instances EC2, qui sert de base à l’exploitation des applications de conteneur.

Le service de conteneurs Amazon EC2 en un coup d’œil

Disponibilité générale

Avril 2015

Orchestration

Outils d’orchestration propriétaires

Les planificateurs auto-développés et les outils tiers peuvent être intégrés via Blox

Gestion de la plateforme conteneur

ECS-GUI et CLI

Format conteneur

Docker-Container

Les conteneurs Windows sont uniquement pris en charge avec le statut bêta (la mise en place de systèmes productifs n’est pas recommandée).

Fonctions réseau

La superposition réseau via Libnetwork n’est pas prise en charge

Intégration avec les systèmes de stockage externes

Docker-Volume-Support (avec des pilotes limités)

 

Registry

Docker Registry und et EC2 Container Registry

Intégration avec d’autres services Cloud

AWS IAM

Elastic Load Balancing

AWS CloudTrail

Amazon CloudWatch

AWS CloudFormation

Coûts

ECS est un service gratuit. Les utilisateurs ne paient que pour les ressources de la plateforme Cloud sous-jacente, AWS.

La vidéo suivante montre un didacticiel de cinq minutes sur le service de conteneur Amazon EC2 en anglais.

Avantages Inconvénients  
✔ Intégration complète avec d’autres produits AWS ✘ Le déploiement de conteneur est limité aux instances AmazonEC2  
  ✘ Orchestrateur propriétaire : les outils open source courants tels que Kubernetes ne sont pas pris en charge  

Google Container Engine (GKE)

Google a également intégré un service de conteneur hébergé avec Google Container Engine (GKE) dans le cloud public. L’élément central du service CaaS est l’outil d’orchestration Kubernetes.

GKE recourt aux ressources du Google Compute-Engine (GCE) et permet aux utilisateurs d‘exécuter des applications conteneurisées sur des clusters Google Cloud Platform (GCP). Les utilisateurs du GKE ne se limitent toutefois pas à l’infrastructure de Google Cloud : le système de fédération de clusters de l’orchestrateur Kubernetes permet de combiner des ressources de différents clusters d’ordinateurs en une fédération informatique logique, et, si nécessaire, en scénarii hybrides et multi-cloud.

Chaque cluster créé avec GKE se compose d’un nœud final principal Kubernetes sur lequel s’exécutent le serveur d’API Kubernetes et un nombre quelconque de nœuds de travail qui traitent les demandes REST vers l’API Serveurs, le support des conteneurs Docker.

Tandis que le nœud maître surveille l’utilisation des ressources et l’état du cluster, les applications conteneurisées sont exécutées sur le nœud de travail. En cas d’échec d’un nœud de travail, le nœud maître distribue les tâches requises pour l’opération d’application aux autres nœuds.

GKE prend également en charge le format de conteneur docker largement utilisé. Pour mettre à disposition des images Docker, les utilisateurs disposent d’un registre de conteneurs privé. Une syntaxe basée sur JSON offre la possibilité de définir des services de conteneur en tant que modèles.

L’intégration de Kubernetes dans GKE offre aux utilisateurs les fonctions suivantes pour l’orchestration d’applications de conteneur :

  • Automatic Binpacking : Kubernetes place automatiquement les conteneurs en fonction des contraintes et des ressources nécessaires pour que le cluster soit chargé de manière optimale. Ceci empêche de compromettre la disponibilité des applications de conteneur.
  • Fonction Health-Checks avec Auto-Repair : Kubernetes s’assure que tous les comptes et conteneurs fonctionnent correctement grâce à des bilans de santé automatiques. Les nœuds ou conteneurs qui ne répondent pas sont terminés et remplacés par de nouveaux.
  • Échelle horizontale : avec Kubernetes, les applications peuvent être étendues à la hausse ou à la baisse, soit manuellement via la ligne de commande, soit via l’interface utilisateur graphique, soit automatiquement en fonction de l’utilisation du processeur.
  • Service-Discovery et Load-Balancing: Kubernetes propose deux modes de découverte de services : les services peuvent être détectés via des variables d’environnement et des enregistrements DNS. L’équilibrage de charge entre différents conteneurs est réalisé via des adresses IP et des noms DNS.
  • Orchestration du stockage : Kubernetes permet le stockage automatique de différents systèmes de stockage, qu’il s’agisse de stockage local, de stockage en Cloud public (par exemple via GCP ou AWS) ou de systèmes de stockage réseau tels que NFS, ISCSI, Gluster, Ceph ou Flocker.

A l’instar d’ECS dans AWS, GKE est directement intégré à la plateforme Google Cloud, de sorte que les utilisateurs du moteur de conteneur disposent de diverses fonctionnalités du Cloud public en plus du spectre de la fonction d’orchestration :

  • Gestion des identités et des accès : le module IAM de GKE est implémenté à l’aide des comptes Google et prend en charge les autorisations utilisateurs basées sur les rôles  respectifs.
  • Stackdriver Monitoring : l’outil de surveillance de Google informe les utilisateurs des performances, du temps de fonctionnement et de l‘état des applications Cloud. Pour ce faire, Stackdriver collecte les mesures de surveillance, les évènements et les métadonnées, et les prépare sous la forme d’un tableau de bord clair. En tant que source de données, l’outil prend en charge Google Cloud Platform, Amazon Web Services et diverses applications telles que Cassandra, Nginx, Apache http Server et Elasticsearch.
  • Stackdriver Logging : l’outil d’enregistrement de Google permet aux utilisateurs de stocker, de surveiller et d’analyser les données de journal et les évènements. Stackdriver Logging est compatible avec Google Cloud Platform et Amazon Web Services.
  • Container Builder : avec le générateur de conteneurs, Google fournit un outil pour créer des images docker, qui peuvent être créées directement dans le Cloud. Le code source de l’application doit être chargé dans Google Cloud Storage.

La conception du prix du service CaaS de Google est abordée autrement que par celle d’Amazon. Une gestion de conteneurs de clusters avec jusqu’à cinq instances de moteur de calcul (nœuds) est disponible gratuitement pour les utilisateurs. Seule la mise à disposition des ressources Cloud (CPU, mémoire, etc.) est payante. Si les utilisateurs souhaitent exécuter des conteneurs sur des clusters plus importants (six instances ou plus), Google facture également des frais d’utilisation pour le moteur de conteneur : pour un cluster, la facturation se fait à l’heure.

Aperçu de Google Container Engine

Disponibilité générale

Août 2015

Orchestration

Kubernetes

 

Gestion de la plateforme Conteneur

Cluster-Management via Google Cloud

Container-Management via Kubernetes UI

Container-Format

Docker-Container

Fonctions réseau

Networking sur la base de  Kubernetes

Intégration à un système d‘enregistrement externe

Kubernetes Persistent Volume

Registry (enregistrement)

Docker Registry et Google Container Registry

Intégration avec d’autres Services Cloud du fournisseur (au choix)

Cloud IAM

Stackdriver Monitoring

Stackdriver Logging

Container Builder

Coûts

Exploitation de conteneur via GKE sur des clusters standard avec jusqu’à cinq nœuds : gratuit

Opération de conteneur via GKE sur les clusters standard avec six nœuds ou plus : facturation forfaitaire par cluster et par heure

Dans la vidéo suivante, le responsable des produits Google, Dan Paik, donne un aperçu du déploiement des conteneurs avec GKE et Kubernetes.

Avantages Inconvénients  
✔ Intégration complète avec d’autres produits Google ✘ Dans le cas de clusters de 6 nœuds+, Google facture des frais d’utilisation pour le moteur de conteneurs en plus des coûts pour les instances arithmétiques  
✔ Possibilité de déploiement de conteneurs sur Cloud hybride et multi-Cloud    

Microsoft Azure Container Service (ACS)

Azure Container Service (ACS) est un environnement d’hébergement optimisé pour la plateforme Microsoft Cloud Computing, Azure, qui permet aux utilisateurs de développer des applications conteneurisées et de les déployer en clusters d’ordinateurs évolutifs. ACS s’appuie sur une version Azure optimisée open source d‘outils de conteneurs et permet l’utilisation de conteneurs Linux au format Docker. Les conteneurs Windows ne sont aujourd’hui pris en charge que dans une version d‘aperçu.

Les composants de base du service CaaS de Microsoft est Azure Container Engine, dont le code source est disponible sous licence open source sur GitHub. Le moteur de conteneur Azure agit comme un générateur de modèles pour le gestionnaire de ressources Azure Ressource Manager (ARM). Ceux-ci peuvent être gérés via une API avec l’un des outils d’orchestration suivants : Docker Swarm, DC/OS et Kubernetes (depuis février 2017).

Les fonctions disponibles pour les utilisateurs ACS dans l’exploitation des applications conteneurisées dans le Cloud Azure dépendent du choix de l’orchestration.

Le gestionnaire de cluster DC/OS de Mesosphere est utilisé dans le cadre du service de conteneur Azure en combinaison avec la plateforme d’orchestration Marathon. Une telle structure fournit aux utilisateurs l’ensemble des fonctions suivantes :

  • Interface utilisateur basée sur le Web : l’administration des clusters de conteneurs s’effectue via l’interface utilisateur Web de l’orchestrateur Marathon.
  • Haute disponibilité : Marathon est géré en tant que cluster actif/passif. Pour chaque nœud actif se trouve un nœud passif entièrement redondant qui, en cas de défaillance du nœud actif, prend en charge ses tâches.
  • Service-Discovery et Load-Balancing : DC/OS, avec Marathon-LB, fournit un équilibreur de charge basé sur HAProxy et un DNS Mesos, un outil de découverte de services basé sur DNS.  
  • Contrôles de santé : le statut des applications peut être demandé avec Marathon via http ou TCP. Les fonctions de surveillance sont disponibles via une API REST, la ligne de commande ou l’interface utilisateur Web.
  • Métriques : Marathon fournit des mesures détaillées de JSON via une API, qui peut être transmise à des outils de surveillance tels que Graphite, statsD ou Datadog.
  • Service de notifications : les utilisateurs de DC/OS avec Marathon dans le Cloud Azure ont la possibilité de réserver un point de terminaison http pour les notifications liées aux événements.
  • Groupes d’applications : sur demande, les conteneurs peuvent être regroupés en « Pods », qui peuvent être gérés en tant qu’unités autonomes.
  • Déploiement basé sur des règles : les restrictions vous permettent de définir précisément où et comment les applications sont distribuées dans le cluster.

Dans la version Docker-Swarm, ACS s’appuie sur la Suite Docker, utilisant les mêmes technologies open source que le Dockers Universal Control Plane (composant de base du Docker Datacenter). Implémenté dans Azure Container Service, Docker Swarm offre les fonctionnalités suivantes pour l’orchestration et la mise à l‘échelle des applications de conteneur.

  • Docker Compose : la solution de Docker pour les applications multi-conteneurs permet de relier plusieurs conteneurs entre eux, et de les gérer de manière centralisée avec une seule commande. Dans ce cas, un nombre quelconque de conteneurs, y compris toutes les dépendances, sont définis dans un fichier de contrôle basé sur le langage d’attribution YAML.
  • Contrôle via la ligne de commande : le docker CLI (interface de ligne de commande ou Command Line Interface) et l’outil multi-conteneurs Docker Compose permettent l’administration directe des clusters de conteneurs via la ligne de commande.

  • REST API : l’API Docker Remote permet d’accéder à divers outils d’écosystème docker tiers.
  • Déploiement basé sur des règles : la distribution des conteneurs docker dans le cluster peut être gérée via des étiquettes et des contraintes.
  • Service-Discovery : Docker Swarm propose aux utilisateurs diverses fonctions de découverte de services.

Depuis février 2017, les utilisateurs d’ACS ont également pu accéder à l’orchestrateur Kubernetes pour automatiser l’administration des applications de conteneur, ainsi que le déploiement et la mise à l’échelle des clusters Azure. En outre, en tant qu’implémentation ACS, Kubernetes fournit toutes les fonctions de base répertoriées dans la section Google Container Engine.

ACS peut aussi être intégré dans le service Cloud Azure :

  • Azure Portal et Azure CLI 2.0 :les utilisateurs configurent des clusters de conteneurs via le portail Azure, l’interface utilisateur centrale de la plateforme Cloud, ou l’interface de ligne de commande Azure CLI 2.0.
  • Azure Container Registry : Azure Container Registry fournit également aux utilisateurs Microsoft un référentiel Repository privé pour déployer des images Docker.
  • Operations Management Suite (OMS) : les fonctionnalités de surveillance et de journalisation des services de conteneur sont fournies par la Microsoft Operations Management Suite (OMS).
  • Azure Stack : une opération de conteneur dans des environnements Cloud hybrides peut être réalisée avec l’ajout d’Azure Stack.

Par ailleurs, Microsoft présente des fonctions CI/CD (intégration continue de déploiement) avec ACS pour les applications multi-conteneurs, développées avec Visual Studio Team Services ou l’outil open source Visual Studio Code.

La gestion des identités et accès chez Azure est pilotée par Active Directory, dont les fonctions de base sont gratuites pour les utilisateurs jusqu‘à 500 000 répertoires d’objets. Comme pour Amazon ECS, le service Azure Container Service n’implique aucun frais pour l’utilisation des outils de conteneur. Des frais ne sont facturés que pour l’utilisation de l’infrastructure sous-jacente.  

Aperçu du service Microsoft Azure Container Service

Disponibilité générale

Avril 2016

Orchestration

Outil open source de votre choix :

- Mésosphère DC/OS

- Docker Swarm

- Kubernetes (depuis février 2017)

Gestion de plateformes de conteneurs

Gestion des clusters via Azure Portal ou Azure CLI 2.0

Gestion des conteneurs via l’interface native de l’orchestrateur sélectionné :

- Marathon UI

- Docker CLI

- Kubernetes UI

Format du conteneur

Conteneurs dockers

Les conteneurs Windows sont pris en charge dans une version de prévisualisation

Fonctions réseau

Réseau superposé (Overlay-Networking) via libnetwork et modèle de réseau de conteneurs, ou Container Network Model en anglais (CNM)

Intégration avec des systèmes de stockage externes

Pilote Docker-Volume via Azure File Storage

Registre

Docker Registry et Azure Container Registry

Intégration avec d’autres services Cloud du fournisseur (au choix)

Azure Portal

Azure Resource Manager (ARM)

Azure Active Directory

Azure Stack

Microsoft Operations Management Suite (OMS)

Coûts

L’utilisation d’ACS est gratuite. Les utilisateurs ne paient que pour les ressources utilisées par la plateforme de Cloud Computing sous-jacente Azure.

La vidéo suivante montre le fonctionnement des conteneurs dockers sur la plateforme Azure.

Avantages Inconvénients  
✔ ACS est entièrement intégré à la plateforme de Cloud Computing Azure ✘ Nouveau sur le marché en comparaison avec la concurrence  
✔ ACS est compatible avec tous les outils d’orchestration standard : Docker Swarm, Kubernetes et DC/OS (Marathon)    
✔ L’exploitation de conteneurs sur des environnements Cloud hybrides est possible via la suite Azure.    

Container-as-a-Service: comparaison des fournisseurs

Pour faciliter la comparaison des fournisseurs de CaaS présentés, nous les avons comparés dans le tableau suivant en fonction des critères de sélection habituels des utilisateurs.

Critère de sélection

Amazon EC2 Container Service (ECS)

Google Container Engine (GKE)

Microsoft Azure Container Service (ACS)

General Availability (GA)

Avril 2015

Août 2015

Avril 2016

Base technique (performance)

Instances EC2

Noeuds et clusters de Google Compute Engine (GCE)

Machines virtuelles et groupes d’échelles pour les machines virtuelles

Mémoire des objets

Amazon S3 (Simple Storage Service)

Google Cloud Storage

Blob Storage

Outil standard pour l‘orchestration

Outil de gestion propriétaire

 

Kubernetes

Outils open source au choix :

- Mesosphere DC/OS

- Docker Swarm

- Kubernetes

Administration de la plateforme de conteneurs

ECS-GUI et CLI

Gestion de clusters via Google Cloud

Gestion des conteneurs via le tableau de bord de Kubernetes

Gestion des clusters via Azure

Gestion des conteneurs via Docker-Tools

Formats de conteneurs pour les systèmes de production

Docker-Container

Docker-Container

Docker-Container

Fonctions réseau

Un Overlay-Networking via libnetwork n’est pas pris en charge

 

Réseau basé sur Kubernetes

Overlay-Networking via libnetwork et Container Network Model (CNM)

Intégration avec des systèmes de stockage externes

Assistance Docker-Volume (avec des pilotes limités)

Kubernetes Persistent Volume

Docker Volume Driver via Azure File Storage

Registry

Docker Registry

Amazon EC2 Container Registry

Docker Registry

Google Container Registry

Docker Registry

Azure Container Registry

Gestion des identités et des accès

Oui

Oui

Oui

Prise en charge Cloud hybride

Non

Oui

Oui

Enregistrement et surveillance

Oui

Oui

Oui

Mise à l’échelle automatique

Oui

Oui

Oui

Intégration avec d’autres services Cloud

Elastic Load Balancing

Elastic Block Store

Virtual Private Cloud

AWS IAM

AWS CloudTrail

AWS CloudFormation

Cloud IAM

Stackdriver Monitoring

Stackdriver Logging

Container Builder

Azure-Portal

Azure Resource Manager (ARM)

Azure Active Directory

Azure Stack

Microsoft Operations Management Suite (OMS)

Coûts

ECS est un service gratuit. Les utilisateurs ne paient que les ressources utilisées par la plateforme Cloud AWS.

Exploitation de conteneurs sur des clusters standard jusqu’à cinq nœuds : gratuit

Opération conteneurisée sur des clusters standard avec six nœuds ou plus : facturation forfaitaire par cluster par heure

L’utilisation d’ACS est gratuite. Les utilisateurs ne paient que pour les ressources utilisées par la plateforme de cloud computing sous-jacente Azure.

CaaS vs solutions On premises (sur site)

Comme alternative au CaaS, on trouve les outils de conteneurs sur site (on premises), c’est à dire au sein des locaux de l’entreprise. Les deux possibilités présentent leurs avantages et inconvénients.

Les réserves concernant les services de Cloud Computing sont généralement basées sur des questions de sécurité. Les entreprises disposant d’un environnement de conteneurs dans leurs propres centres de données disposent du plus haut niveau de contrôle possible. Ceci inclut une flexibilité maximale dans le choix des composants matériels et logiciels (serveurs de base, systèmes d’exploitation, environnement d’exécution et outils de gestion) ainsi que la certitude que toutes les données sont traitées et stockées exclusivement dans l’entreprise dans le cadre de l’exploitation des conteneurs.

Toutefois, ce gain de liberté de décision s’accompagne d’un surcroît de travail et de coûts liés à la mise en place et à la maintenance de l’environnement de conteneurs. Les installations complexes dans votre propre centre de données exigent souvent des investissements élevés. Il n’est pas encore clair si ces mesures seront payantes. D’autre part, un environnement de conteneurs basé sur le Cloud permet d’offrir rapidement et à moindre coût de nouvelles applications et fonctions logicielles. Dans le cadre d‘un CaaS, les utilisateurs ne paient que les services et ressources qu’ils utilisent réellement. Les paiements anticipés ne sont pas nécessaires. Ceci est particulièrement utile pour les petites entreprises, les start-ups, les fondateurs et les indépendants qui doivent réaliser leurs projets avec des budgets gérables.

Comme d’autres services Cloud, le CaaS marque des points en externalisant son infrastructure informatique auprès de fournisseurs de services spécialisés, qui veillent à ce que les bases techniques soient à jour et fonctionnent parfaitement. Un Container-as-a-Service, associé au modèle de facturation basé sur le niveau d’utilisation, s’adresse aux entreprises connaissant un fort développement et un haut degré d’innovation. Les entreprises qui choisissent une solution sur site ne tirent pas profit de la flexibilité et de l’évolutivité que les fournisseurs de Cloud offrent à leurs clients.

Par ailleurs, il est faux de penser que les données soient stockées de manière plus sécurisée dans votre propre centre de données que sur le Cloud. En règle générale, les petites et moyennes entreprises ne sont pas en mesure de fournir une infrastructure informatique qui puisse concurrencer l’offre des fournisseurs de clouds publics établis en termes de disponibilité, de sécurité des données et de conformité.

Avantages et inconvénients du modèle CaaS

Avantages Inconvénients  
✔ Faible coût d’installation, de configuration et de fonctionnement ✘ Selon le fournisseur, il peut y avoir des limites en matière de technologies disponibles  
✔ La maintenance de la base technique est prise en charge par le fournisseur d‘hébergement ✘ Externaliser les données d’entreprise vers le Cloud pose un risque de sécurité  
✔ Facturation liée à l‘utilisation    
✔ L’étendue des services est évolutive    
✔ Les pertes de données à court terme sont absorbées    

Avantages et inconvénients des plateformes de conteneurs auto-hébergées

Avantages Inconvénients  
✔ Contrôle total de la configuration technique ✘ Investissement élevé  
✔ Toutes les données restent dans l’entreprise ✘ Effort d’installation important, ainsi que pour la configuration et la maintenance  
  ✘ Nécessite une compréhension de base des technologies de conteneurs concernées, autant pour le matériel que l’administration  

Lexique Cloud Système de Stockage