La conteneurisation dans les réseaux était, jusqu'à récemment, une technologie relativement obscure qui n'était connue et maîtrisée que par quelques spécialistes hautement qualifiés . Avance rapide jusqu'à aujourd'hui et les choses ont beaucoup changé. La conteneurisation dans les réseaux, à ne pas confondre avec la conteneurisation dans les transports, bien qu'il existe des similitudes évidentes, est désormais devenue courante et chaque professionnel des réseaux doit avoir au moins une compréhension de base de cette technologie étonnante, bien que complexe.
Notre objectif n'est en aucun cas de faire de vous des experts de la conteneurisation mais plutôt de vous fournir suffisamment d'informations pour comprendre quelle est la technologie, comment elle fonctionne, quels produits sont disponibles et comment elle peut être surveillée.
Nous commencerons par décrire brièvement la conteneurisation et en quoi elle diffère de la virtualisation, une autre technologie aux objectifs similaires. Nous discuterons ensuite des avantages et des inconvénients de la technologie et verrons rapidement comment elle peut être utilisée dans les contextes BYOD, Saas et MDM. Ensuite, nous explorerons les logiciels de conteneurisation disponibles avant de passer en revue certains des meilleurs outils que vous pouvez utiliser pour surveiller votre environnement de conteneurisation.
La conteneurisation en bref
La conteneurisation d'applications est une méthode de virtualisation au niveau du système d'exploitation qui est utilisée pour déployer et exécuter des applications distribuées sans avoir besoin de lancer une machine virtuelle entière pour chaque application. Plusieurs applications ou services isolés peuvent ainsi s'exécuter sur un seul hôte et accéder au même noyau du système d'exploitation.
Les conteneurs d'applications incluent les composants d'exécution, tels que les fichiers, les variables d'environnement et les bibliothèques, nécessaires pour exécuter le logiciel souhaité. Les conteneurs d'applications consomment généralement moins de ressources qu'un déploiement comparable sur des machines virtuelles, car les conteneurs partagent des ressources sans avoir besoin d'un système d'exploitation complet pour prendre en charge chaque environnement. L'ensemble complet d'informations à exécuter dans un conteneur s'appelle une image et les moteurs de conteneur déploient ces images sur les hôtes. Les conteneurs peuvent fonctionner sur des systèmes bare metal, des instances cloud et des machines virtuelles, ainsi que sur des systèmes Linux, Windows et Mac OS.
La conteneurisation d'applications, comme on l'appelle souvent, fonctionne avec des microservices et des applications distribuées, chaque conteneur fonctionnant indépendamment des autres et utilisant un minimum de ressources de l'hôte. Chaque microservice communique avec les autres via des interfaces de programmation d'applications, la couche de virtualisation de conteneur étant capable de faire évoluer les microservices pour répondre à la demande d'un composant d'application et répartir la charge.
En quoi la conteneurisation diffère-t-elle de la virtualisation ?
Bien que la conteneurisation et la virtualisation servent toutes deux un objectif similaire, elles sont assez différentes dans leur mode de fonctionnement. Dans la virtualisation, par exemple, l'essence du système d'exploitation est conçue pour fonctionner comme une application tout en apparaissant comme un hôte virtuel distinct. Ce système d'exploitation est, à son tour, disponible pour toute application installée sur l'hôte virtuel. Inversement, les conteneurs regroupent les parties du système d'exploitation avec chaque application et seuls les éléments, bibliothèques et modules nécessaires à chaque application sont fournis avec.
Une autre façon de le voir est que les machines virtuelles configurent des identités distinctes pour un hôte et lui permettent d'apparaître comme s'il s'agissait de plusieurs machines physiques. La virtualisation crée une abstraction du matériel. Avec la conteneurisation, ce sont plutôt les applications qui sont abstraites. Dans l'ensemble, les deux technologies offrent un certain degré d'isolement entre les environnements, mais elles y parviennent de manière très différente.
Dans la conteneurisation, le conteneur et son système d'exploitation forment essentiellement une sorte de réseau, permettant à une application d'être livrée à une machine autrement incompatible. Mais contrairement à ce qui se passe dans la virtualisation, les applications peuvent partager des conteneurs et une seule instance du système d'exploitation est requise.
Les avantages et les inconvénients de la conteneurisation
L'un des principaux avantages de la conteneurisation par rapport à la virtualisation est qu'il n'est pas nécessaire d'installer en permanence cette couche supplémentaire du système d'exploitation virtuel sur la machine de réception. Par conséquent, une application conteneurisée est généralement beaucoup plus portable car elle supprime les exigences relatives aux logiciels, services ou systèmes d'exploitation préinstallés sur l'ordinateur cible. De plus, les applications conteneurisées peuvent être exécutées sur des hôtes bare metal et des serveurs distants ou cloud avec des environnements inconnus.
Un autre avantage de la conteneurisation est que la proximité des services du système d'exploitation avec les applications qui en ont besoin dans le conteneur signifie souvent qu'elle peut offrir des temps de réponse plus rapides aux utilisateurs finaux qu'une machine virtuelle classique. Et il y a aussi beaucoup moins de récupérations sur le réseau nécessaires pour fournir une application conteneurisée que pour faire fonctionner une machine virtuelle accessible à distance. Enfin et surtout, la conteneurisation présente plusieurs avantages par rapport aux logiciels distribués. En fait, c'est cette catégorie de service de réseau qui a été la principale raison du récent boom de la conteneurisation.
Mais les conteneurs n'ont pas que des avantages et il y a quelques cas où vous préférerez peut-être les éviter. Pour commencer, bien que la conteneurisation fonctionne bien pour les systèmes d'exploitation Linux, elle n'est pas aussi bien prise en charge sous Windows. De plus, étant donné que les conteneurs partagent le noyau du système d'exploitation, s'il devient un jour vulnérable, tous les conteneurs le seront également.
La mise en réseau est un autre domaine qui peut rendre difficile le travail avec des conteneurs. Par exemple, vous devez constamment maintenir une bonne connexion réseau tout en essayant activement de garder les conteneurs isolés. De même, le suivi comporte également son lot de défis. Étant donné que la conteneurisation est généralement utilisée pour créer des infrastructures multicouches, avec une application dans un conteneur, vous devez surveiller plus de choses que si vous exécutiez toutes vos applications sur une machine virtuelle.
Conteneurisation et BYOD
Apportez votre propre appareil, ou BYOD est devenu très populaire ces derniers temps et de nombreuses organisations permettent à leurs employés d'utiliser leur propre smartphone ou même des ordinateurs portables dans le cadre de leur travail. La conteneurisation peut aider à cela, car les applications peuvent être mises à disposition sur le réseau pour que les employés puissent y accéder à partir de leurs appareils personnels. Dans ces situations, le conteneur agit comme un « immunisateur », créant une barrière entre l'application d'entreprise et l'appareil appartenant à l'utilisateur. Ceci, cependant, doit être géré avec soin puisque le conteneur a accès au noyau de la machine utilisateur.
Néanmoins, la conteneurisation offre un avantage de sécurité évident pour l'organisation fournissant l'application, car elle supprime le besoin de donner un accès direct au réseau à l'utilisateur, réduisant ainsi le risque d'infection virale pour l'infrastructure de l'entreprise.
Un autre avantage de la conteneurisation par rapport au BYOD concerne le contrôle des licences logicielles. Par exemple, une application peut être facilement retirée de l'utilisation à tout moment. Comme il n'a jamais été installé sur l'appareil de l'utilisateur, il peut être suspendu si le propriétaire de l'appareil quitte l'organisation ou si l'appareil est volé, ce qui permet de réutiliser sa licence.
Et enfin, puisque la communication entre les applications exécutées dans des conteneurs séparés peut être activée via des API, le degré réel d'intégration et de coordination ou, à l'autre extrémité de l'échelle, l'isolement, peut être facilement contrôlé.
Conteneurisation et SaaS
Le logiciel en tant que service (SaaS) est un autre domaine où la conteneurisation peut apporter une valeur évidente. Par exemple, les conteneurs peuvent être limités, ce qui facilite le suivi et le contrôle de l'accès aux logiciels à partir d'appareils distants. Cela peut s'avérer très utile pour les fournisseurs ayant besoin de rendre leur logiciel disponible à partir du cloud sur la base d'un abonnement. Dans de tels cas, le conteneur crée une partition temporaire sur le périphérique hôte et cette partition peut être suspendue à volonté par le fournisseur.
En outre, la possibilité de fournir des logiciels à des appareils incompatibles sans avoir besoin d'installer des services de support est particulièrement utile pour les services cloud car elle étend la méthode de livraison d'une application au-delà de l'utilisation de navigateurs.
Conteneurisation et gestion des appareils mobiles
La gestion des appareils mobiles (MDM) est un autre domaine où la conteneurisation brille. En un mot, le MDM est fondamentalement la même chose que le BYOD, sauf que les appareils mobiles sont détenus et contrôlés par une organisation plutôt que par ses employés. Mais les défis sont les mêmes. Par exemple, la conteneurisation peut être une excellente option pour la livraison d'applications sur des appareils mobiles, car elles peuvent facilement être perdues ou volées.
Logiciel de conteneurisation
Examinons brièvement certains des logiciels de conteneurisation les plus courants actuellement disponibles.
Docker
Docker est, de loin, le système de conteneurisation le plus connu. Contrairement à la plupart des environnements de conteneurisation qui ne fonctionneront que sur la plate-forme Linux, celui-ci fonctionnera également sur Windows. Et pour rendre les choses encore plus intéressantes, il s'agit d'un projet open source qui peut être absolument gratuit à utiliser bien qu'il existe des versions payantes. La version gratuite est connue sous le nom de Community Edition ou Docker CE. Vous pouvez télécharger le code pour Docker CE à partir d'un référentiel GitHub. Le logiciel peut être installé sur Fedora, Ubuntu, CentOS et Debian Linux et il est également disponible pour Mac OS et Windows 10. De plus, si vous avez Windows Server 2016 et supérieur, vous n'aurez même pas besoin d'installer Docker car il est déjà fourni avec le système d'exploitation. Sous Windows et Windows Server, le système Docker s'appuie sur les services d'Hyper-V pour fonctionner.
LXC
Le prochain sur notre liste est LXC, abréviation de Linux Containers, l'un des plus anciens systèmes de conteneurisation qui, à ce jour, reste très influent malgré sa popularité déclinante au profit de Docker, lancé environ trois ans plus tard. Comme son nom l'indique probablement, cette plate-forme n'est disponible que pour Linux. En fait, il est déjà intégré à Ubuntu. En remarque, vous aurez besoin d'un noyau Linux 3.8 ou plus récent pour créer des conteneurs LXC. Ce produit est entièrement gratuit à utiliser. Mais avec rien d'autre qu'un environnement de ligne de commande comme interface de gestion, il n'est pas aussi facile à apprendre et à utiliser que Docker. Cela explique très probablement pourquoi Docker est devenu la star du monde de la conteneurisation.
Kubernetes
En tant que nouveau venu, Kubernetes est probablement la seule alternative à Docker qui pourrait avoir une chance de devenir le système de conteneurisation numéro un. C'est un autre projet open source et il a été créé et est géré par Google. Il fait partie de la famille de produits Google Cloud et vous pouvez compter sur son expérience Google pour aider la plate-forme à atteindre de grands sommets.
Les conteneurs sont créés à l'aide de Google Kubernetes Engine (GKE), un environnement basé sur le cloud. Alternativement, vous pouvez obtenir une version installée à exécuter sur vos propres hôtes. Celui-ci s'appelle GKE On-Prem. Il s'agit également d'un projet open source, le code est donc disponible pour que quiconque puisse créer sa propre version de l'outil. Étonnamment, cela s'est principalement produit via diverses intégrations avec des outils frontaux plutôt que via des fourches du code d'origine dans des plates-formes concurrentes. Il existe, par exemple, le service Azure Kubernetes, qui est disponible sur la plateforme cloud Azure.
CoreOS rkt
CoreOS rkt (prononcé CoreOS rocket) est un autre projet de conteneurisation open source. Celui-ci a été lancé en 2014 dans le but de remplacer Docker dans le système de conteneurisation plus large appelé Container Linux, qui ne doit pas être confondu avec les conteneurs Linux dont nous venons de parler. Le système CoreOS rkt s'installe sur Linux et est conçu comme une méthode de livraison d'applications à partir de services basés sur le cloud. Container Linux s'appelait à l'origine CoreOS Linux. C'est un système d'exploitation léger. Quant à CoreOS rkt, il s'agit d'un système de conteneurisation qui délivre Container Linux sur les réseaux. Cependant, il peut également être utilisé sur ArchLinux, Fedora, NixOS, CentOS, Ubuntu et OpenSUSE.
OpenVZ
Las sur notre liste est OpenVZ, abréviation d'Open Virtuozzo. Ce système a été introduit en 2005, le rendant encore plus ancien que LXC. Il s'agit d'un package de conteneurisation qui fonctionne sous Linux. La partie Virtuozzo du nom vient du précurseur de ce système qui est toujours disponible aujourd'hui. Virtuozzo a été développé par une entreprise privée et sorti en 2000. C'était la première véritable implémentation de conteneurs. Quelques années plus tard, une version gratuite et open source de la technologie a été rendue disponible sous le nom d'OpenVZ et elle est toujours disponible aujourd'hui.
Surveillance des systèmes conteneurisés
La surveillance des systèmes conteneurisés diffère légèrement de la surveillance des machines virtuelles, mais les mêmes outils peuvent souvent être utilisés. Après tout, un système conteneurisé est, à sa base, une application s'exécutant sur un serveur
1. SolarWinds Server & Application Monitor (ESSAI GRATUIT)
Le SolarWinds Server and Application Monitor a été conçu pour aider les administrateurs à surveiller les serveurs, leurs paramètres opérationnels, leurs processus et les applications qui y sont exécutées. Il peut facilement passer de très petits réseaux à de grands avec des centaines de serveurs, à la fois physiques et virtuels, répartis sur plusieurs sites. L'outil peut également surveiller les services hébergés dans le cloud comme ceux d'Amazon Web Services et de Microsoft Azure, ainsi que la plupart des variantes des plateformes de conteneurisation.
Ce produit est particulièrement bien adapté pour surveiller les implémentations Docker. La solution est conçue pour surveiller toute application utilisant l'architecture de conteneur Docker afin de mieux comprendre sa disponibilité et ses performances. Vous pouvez utiliser la surveillance Docker du produit pour valider que l'application fonctionne comme prévu et que les services nécessaires disposent des ressources appropriées. Il peut également vous aider à corréler et à gérer les métriques de performances des applications avec la surveillance des conteneurs Docker et les métriques de l'hôte pour visualiser les performances qui peuvent vous aider lors du dépannage des problèmes de performances.
Le serveur et le moniteur d'application SolarWinds sont très faciles à installer et sa configuration initiale est tout aussi facile à faire à l'aide de son processus de découverte automatique. C'est un processus en deux étapes. La première passe découvrira les serveurs, et la seconde trouvera les applications. Cela peut prendre du temps mais peut être accéléré en fournissant à l'outil une liste d'applications spécifiques à rechercher. Une fois l'outil opérationnel, l'interface graphique conviviale facilite son utilisation. Vous pouvez choisir d'afficher les informations sous forme de tableau ou de graphique.
Les prix du serveur SolarWinds et du moniteur d'application commencent à 2 995 $ et varient en fonction du nombre de composants, de nœuds et de volumes surveillés. Une version d'essai gratuite de 30 jours est disponible en téléchargement, si vous souhaitez essayer le produit avant de l'acheter.
2. Gestionnaire d'applications ManageEngine
ManageEngine n'est peut-être pas aussi connu que SolarWinds, mais c'est encore un autre nom qui jouit d'une excellente réputation parmi les administrateurs de réseaux et de bases de données. Le gestionnaire d'applications ManageEngine s'occupe de la gestion des applications. Vous l'aviez probablement compris par vous-même. C'est cependant un nom quelque peu trompeur car il s'agit autant d'une plate-forme de surveillance que d'un outil de gestion.
Cet outil offre une surveillance intégrée des performances des applications pour tous vos besoins de surveillance de serveurs et d'applications. Il peut également le faire pour les composants d'infrastructure sous-jacents tels que les serveurs d'applications, les bases de données, les composants middleware et de messagerie, les serveurs Web, les services Web, les packages ERP, les systèmes virtuels et les ressources cloud. En quelques mots, il s'agit d'une plate-forme globale.
Le gestionnaire d'applications ManageEnginea une extension spécifique pour surveiller les conteneurs Kubernetes et Docker. Par exemple, la gestion Docker de l'outil offre non seulement un aperçu de la santé et des performances des conteneurs Docker, mais elle permet également la surveillance de l'hôte Docker grâce à un moteur de surveillance, d'alerte et d'analyse robuste. Quant à ses capacités de surveillance de cluster Kubernetes, elles vous permettront de découvrir automatiquement les parties et de mapper les relations entre les objets dans les nœuds cluster-Kubernetes, les espaces de noms, les déploiements, les jeux de réplicas, les pods et les conteneurs. Il surveillera également les statistiques du cluster Kubernetes et identifiera facilement les défauts et leurs sources. En l'utilisant, vous gagnerez en visibilité sur les données opérationnelles telles que le nombre de ressources utilisées, les espaces de noms par cluster et par pod et suivrez la capacité et l'utilisation des ressources de votre cluster et explorerez des parties spécifiques du cluster.
Le gestionnaire d'applications ManageEngine est disponible en plusieurs éditions. Il existe une édition gratuite limitée en fonctionnalités ainsi qu'une version payante professionnelle et une version entreprise . Le prix commence à 945 $ et les détails peuvent être obtenus en contactant ManageEngine. Une version d'essai gratuite de 30 jours est également disponible.
3. Moniteur réseau PRTG
Le moniteur réseau PRTG de Paessler AG est un autre excellent produit. Bien qu'il s'agisse, à la base, d'un outil d'analyse de réseau SNMP, il contient beaucoup plus de fonctionnalités, comme nous allons en discuter. Sa rapidité d'installation est un autre point fort du produit. D'après Paessler, il peut être configuré en quelques minutes. Et bien que votre expérience puisse varier, l'installation est généralement plus rapide que celle de la plupart des concurrents, en partie grâce au moteur de détection automatique de l'outil. Le produit offre également un choix d'interfaces utilisateur. Vous pouvez choisir entre une console d'entreprise Windows native, une interface Web basée sur Ajax et des applications mobiles pour Android et iOS. Les alertes et les rapports sont excellents et le produit propose une large gamme de rapports pouvant être consultés au format HTML ou PDF ou exportés au format CSV ou XML pour être traités en externe.
Grâce à un concept assez unique appelé capteurs, un type de plug-ins de fonctionnalités déjà intégrés au produit, des métriques supplémentaires peuvent être surveillées avec PRTG Network Monitor . Il y a environ deux cents capteurs disponibles avec le produit pour surveiller pratiquement n'importe quel paramètre de réseau. Lorsqu'il s'agit de surveiller les conteneurs, notamment Docker, PRTG a tout ce qu'il vous faut dans son Docker Container Status Sensor qui, sans surprise, surveille l'état d'un conteneur Docker. Ce capteur affichera plusieurs paramètres tels que l'état général du conteneur (création, exécution, pause, redémarrage, sortie), son temps de fonctionnement, le code de sortie, l'utilisation du processeur et la mémoire disponible à la fois en octets et en pourcentage.
Le PRTG Network Monitor est disponible dans une version gratuite qui se limite à la surveillance de 100 capteurs maximum. Chaque paramètre que vous souhaitez surveiller compte pour un capteur. Par exemple, la surveillance de la bande passante sur chaque interface d'un routeur à 4 ports utilisera jusqu'à 4 capteurs et la surveillance du processeur et de la mémoire sur ce même routeur en utilisera 2 de plus. Chaque capteur supplémentaire que vous installez compte également. Pour plus de 100 capteurs, dont vous aurez probablement besoin, vous aurez besoin d'une licence. Leurs prix commencent à 1 600 $ pour un maximum de 500 capteurs, y compris la première année de maintenance. Une version d'essai gratuite de 30 jours est également disponible.
4. Dynatrace
Dynatrace est une autre offre de logiciel en tant que service (SaaS) basée sur le cloud. Il peut détecter, résoudre et optimiser automatiquement les applications. Pour découvrir et cartographier un écosystème d'applications complexe, il suffit d'installer Dynatrace OneAgent . Le service vous donnera une vue haute fidélité de l'ensemble de votre pile d'applications, des performances des applications, de l'infrastructure cloud et de l'expérience utilisateur. Il vous aidera à détecter sans effort les problèmes ainsi que leurs impacts commerciaux et leur cause première.
Dynatrace also claims to have the broadest coverage of any monitoring solution in terms of languages supported, application architectures, cloud, on-premise or hybrid, enterprise apps, SaaS monitoring, containerization, and more. The tool automatically discovers and monitors dynamic microservices running inside containers. It shows you how they’re performing, how they communicate with each other and it helps you quickly detect poorly performing microservices. Once it has finished discovering your infrastructure, you’ll be able to view the containerized processes through the tool’s dashboard in real-time. The software can also monitor the performance of applications and microservices located within the containers.
Log analytics is another useful feature provided with Dynatrace. You can view all the log messages associated with an application inside one log file. Every log entry provides you with additional information that can be used to filter your search. For example, log entries will show the container image, ID that logged the message, and the output used.
Pricing for Dynatrace is not readily available but it can be obtained by signing up for the free 15-day trial. Once you register for the trial, it’s only a matter of installing the agent on your servers and you could start monitoring within 5 minutes.
5. Sumo Logic
Sumo Logic is an application and log monitoring solution that’s compatible with containerization platforms such as Docker. The product was created to aggregate large volumes of log data from pretty much any source. But gathering log data is only the beginning. The service can also help you use the collected data to monitor performance, improve applications, and potentially even address security issues and compliance.
Sumo Logic can monitor containers in real-time. Its dashboard view is broken down into metric boxes and graphs. In one dashboard you can view a graph on the Top 10 Containers by CPU Consumption or the Top 10 Containers by Traffic Sent and Received as well as the number of containers created and the number of hosts. Advanced analytics is another feature that makes this a particularly strong product. Its analytics capability can automatically detect anomalies in your containerizing infrastructure and thereby automate the process of identifying performance issues.
Sumo Logic is available under three different plans. There’s the free plan which is targeting individuals and teams looking to try out Sumo Logic for smaller projects, for an unlimited period of time. Next is the Professional plan at $90/month per 1GB average daily log data. And at the top, you have the full-featured Enterprise plan at $150/month per 1GB average daily log data. Note that a 30-day trial is available on both paid plans.
Wrapping Up
La conteneurisation peut être quelque peu difficile à conceptualiser. Cependant, il pourrait très bien être la réponse à vos besoins d'infrastructure pour la fourniture de services aux appareils distants. Nous espérons avoir pu faire la lumière sur ce sujet compliqué. Bien que nous n'ayons peut-être pas fait de vous des experts, notre objectif était de vous fournir suffisamment d'informations de base pour vous permettre de mieux comprendre la technologie lorsque vous commencez à l'explorer.