Camptocamp – Actualités

Une vue générale de l’écosystème de containers

13 mars 2018

Chez Camptocamp, nous utilisons des containers depuis maintenant des années et les avons intégrés avec les outils que nous utilisons depuis une décénie pour automatiser notre infrastructure.

La stack d’infrastructure technologique de Camptocamp en 2018

Il nous a fallu beaucoup de temps pour nous habituer à cette stack et nous l’avons vue grandir. Pour la plupart de nos clients par contre, les containers sont une nouvelle approche à la résolution de leurs problèmes informatiques.

Visualiser la stack

Il y a une telle quantité de technologies dans l’écosystème de containers aujourd’hui qu’il est aisé de s’y perdre. Quel est le lien entre Docker et Kubernetes? Ai-je besoin d’Openshift pour les utiliser? Où se place la couche IaaS dans cette nouvelle stack?

Commençons par l’IaaS

Il y a dix ans, il était très courant de gérer la virtualisation manuellement. Les administrateurs système démarraient des machines virtuelles selon les demandes sur un hôte physique qu’ils sélectionnaient. L’IaaS a fourni un moyen de provisionner des machines virtuelles dynamiquement, sans avoir besoin de choisir soi-même un hyperviseur. Le système d’IaaS gère un cluster d’hyperviseurs et communique avec eux afin de démarrer de nouvelles machines virtuelles à la demande. Cette grande révolution dans l’administration système a ouvert de nouvelles voies à l’automatisation du déploiement des nœuds.

L’Infrastructure as a Service a revolutionné le provisioning des VM il y a 10 ans

Puis vinrent les Container Runtimes

Il y a environ 5 ans, lorsque les Container Runtimes tels que Docker ont commencé à émerger comme solutions au déploiement d’applications, il s’agissait de systèmes individuels qui pouvaient être utilisés localement pour démarrer des containers sur le nœud sur lequel ils tournaient.

Les Container Runtimes peuvent démarrer des containers sur leur hôte local

Les orchestrateurs de Containers

Tout comme pour l’IaaS avec les hyperviseurs, les orchestrateurs de containers peuvent prendre le contrôle de plusieurs instances de Container runtimes pour former un cluster et déployer dynamiquement des containers sur les nœuds.

Les orchestrateurs fonctionnent habituellement avec des runtimes spécifiques. Docker est devenu un standard et est supporté par la majorité des orchestrateurs, tandis que d’autres comme rkt ou cri-o sont spécifiques à Kubernetes.

Un orchestrateur de containers peut contrôler plusieurs container runtimes sur plusieurs hôtes

Les plateformes de containers font le lien

Les orchestrateurs de containers fournissent la brique de base pour déployer des applications sur plusieurs nœuds à l’aide de containers. Des orchestrateurs tels que Kubernetes sont des systèmes hautement qualifiés et prêts à la production, qui supportent des modes de déploiements complexes et des fonctionnalités de scheduling avancées. Cependant, ils ne possèdent pas toujours toutes les fonctionnalités nécessaires.

Les plateformes de containers offrent une distribution d’un orchestrateur de containers, avec des fonctionnalités additionnelles, telles que le support avancé du RBAC (gestion des utilisateurs et des droits), l’intégration avec des CI/CI (déploiement d’applications à l’aide de code ou mises à jour de sécurité des images) ou encore le routage (routage dynamique des services par nom ou chemin).

De plus, elles peuvent servir de proxies pour provisionner dynamiquement de nouveaux nœuds du cluster en utilisant la couche IaaS sous-jacente.

IaaS, orchestration de containers et plateformes de containers

Un exemple simple

Prenons un exemple simple, en utilisant Rancher comme plateforme de containers, avec Kubernetes comme orchestrateur. Imaginons que nous souhaitons ajouter un nœud au cluster existant. L’animation qui suit montre les étapes nécessaires:

Ajout d’un nœud au cluster Rancher

Mais attendez, ce n’est pas fini !

C’est très pratique de tout rassembler dans les plateformes de containers, mais il manque encore une chose: l’Infrastructure as Code. Une fois que tous les composants sont présents et orchestrés, nous voulons être capables de contrôler la stack complète d’une manière reproductible et bien documentée. Là où Puppet nous a grandement aidé à automatisé le provisionning des nœuds, Terraform est devenu une référence dans la gestion des ressources cloud, en particulier dans le contrôle des systèmes d’IaaS. Afin de tout rassembler, Camptocamp a commencé à utiliser Terraform pour contrôler ses stacks complètes, depuis l’IaaS jusqu’aux plateformes de containers.

Êtes-vous en étude de migration de vos applications vers les containers? Souhaitez-vous savoir comment OpenShift et Rancher peuvent vous aider à mettre en place des workflows de production à base de containers? Notre équipe est disponible pour répondre à vos questions !

  1. *
  2. *
  3. *
  4. *