Mis à jours 9 septembre 2020 Vous utilisez déjà des outils de gestion open-source pour les systèmes locaux traditionnels. Mais si vous déplacez les charges de travail vers le cloud, vous aurez besoin d’analogiques open-source, et il est probable que vos outils existants ne prennent pas en charge cette fonctionnalité. Alors, quels outils valent la peine d’être considérés et comment choisissez-vous ?
Le point de départ est une définition claire du terme « outils de gestion ». Ici, on parle d’outils open-source axés sur la gestion des ressources : stockage, calcul, instances machine, et même des conteneurs. Des outils compatibles avec le cloud reposant sur des ensembles d’outils open-source existants commencent à apparaître et leurs communautés respectives sont prêtes à passer au niveau supérieur.
Choisir le bon outil open-source
Chacune des sept technologies de gestion du cloud open-source ci-dessous a sa propre approche de la gestion du cloud. De ce fait, elle doit être recommandée en fonction du besoin de chaque entreprise.
En effet, il n’existe pas de solution unique et universelle. Certains, tels que les outils de gestion de conteneur, sont très orientés sur les applications. D’autres sont orientés sur DevOps ou se concentrent uniquement sur l’infrastructure cloud et non-cloud. Vous aurez besoin de faire quelques études pour savoir ce qui est bon pour vous. Plus précisément, vous devez comprendre vos propres exigences en détail avant d’aborder ce problème.
Et pour certaines situations, l’open source n’est peut-être pas la solution : un outil de gestion propriétaire pourrait bien être le meilleur choix. Bien que vous deviez acheter des outils commerciaux, ils pourraient coûter moins cher à long terme. Envisagez de vous adapter à votre objectif si un outil donné correspond à vos besoins. Par exemple, les utilisateurs de nombreux types de cloud différents ont constaté que les outils open source ne sont pas adaptés parce que ces outils se concentrent généralement sur un seul type de cloud, tel que OpenStack. D’autres ont déjà investi dans des outils propriétaires qu’ils utilisent pour les systèmes traditionnels et trouvent qu’il est plus rentable d’utiliser ceux-ci pour les plates-formes cloud.
Avec ces mises en garde, voici la courte liste des sept principaux outils de gestion du cloud open-source que vous devriez considérer :
1. OneOps de Walmart
OneOps, publié par Walmart Labs sous la licence Apache 2.0, est construit autour du concept de DevOps, ou d’une « plate-forme de gestion de cloud et de gestion du cycle de vie des applications », comme le décrit Walmart. En tant que tel, il est en concurrence directe avec Chef, Puppet, Ansible, et des technologies similaires.
OneOps fonctionne avec tous les types de cloud (public, privé et hybrides qui exploitent les environnements cloud OpenStack. Mais il fonctionne également avec Microsoft Azure et Amazon Web Services (AWS). Il peut configurer, dimensionner et réparer automatiquement les applications qui existent sur plusieurs fournisseurs de cloud.
La plate-forme OneOps peut créer et gérer des instances de machines virtuelles, ainsi que gérer les paramètres de sécurité. Cependant, la meilleure caractéristique est sa capacité à déplacer des applications d’un nuage à l’autre, à la demande, afin de trouver l’environnement d’hébergement cloud avec le coût le plus bas et les meilleures fonctionnalités. Cela la met en conformité avec des outils propriétaires similaires sur le marché. Cela lui vaut la peine d’être considérée si vous utilisez le multi-cloud comme architecture de cloud de votre choix.
2. Fleet de CoreOS
CoreOS, Google et Docker offrent des outils de gestion qui permettent aux personnes qui déploient des conteneurs de gérer efficacement un ensemble de conteneurs s’exécutant dans un cloud. Pour CoreOS, cet outil est nommé fleet. Fleet est conçu pour traiter une grappe de serveurs CoreOS comme une unité unique, un paradigme partagé avec Google Kubernetes et Docker Swarm.
Une base de données clé-valeur (key-value store) d’inter-cluster gère la gestion des périphériques et prend en charge la découverte de service appelé etcd. Si un nœud échoue, etcd peut le restaurer à la volée en utilisant le service de mise à jour automatique de CoreOS. Cet outil prend en charge Docker ainsi que la plate-forme conteneur de CoreOS.
3. Machine, Compose et Swarm de Docker
Docker est de loin la technologie de conteneur open-source la plus populaire et devient rapidement la référence en matière de développement et de déploiement de conteneurs.
Du côté de la gestion des conteneurs, Docker fournit Machine, Swarm et Compose. Ils sont tous open source.
Machine vous permet d’automatiser l’approvisionnement des conteneurs Docker et fournit l’intégration avec Apache Mesos pour des fonctionnalités à plus grande échelle.
Swarm peut gérer le problème de gestion de cluster, y compris la planification. Comme Kubernetes et fleet, il vous permet de créer un pool d’hôtes de conteneur afin que vous puissiez mettre à l’échelle vos applications prises en charge par le conteneur.
Enfin, Compose définit les dépendances de l’application, ce qui vous permet de lier les conteneurs entre eux afin qu’ils fonctionnent en tant que groupe. Il peut fonctionner sur plusieurs plates-formes, ce qui vous permet également de gérer des clusters de conteneurs largement distribués.
4. Kubernetes de Google
Kubernetes de Google fournit plusieurs fonctionnalités similaires à celles de fleet et de Swarm, mais c’est aussi le leader dans l’espace de gestion des conteneurs sur les cloud publics et privés. Kubernetes prend en charge un framework open-source qui a été adopté par Microsoft et bien d’autres. La technologie de Google est conçue pour gérer et exécuter les conteneurs Docker ou CoreOS, ce qui vous permet de distribuer vos conteneurs sur un cluster de machines cloud, et traite les problèmes de mise à l’échelle et de gestion des services à votre place.
Kubernetes alimente le propre moteur de conteneur de Google et fonctionne également sur une gamme d’autres services de cloud et de centre de données, notamment AWS et Azure, ainsi que vSphere et Mesos. Les conteneurs peuvent être couplés de manière lâche ou étroite, et la technologie prend en charge le déploiement rapide des applications sur un cluster, ce qui vous donne un point de terminaison pour un processus DevOps.
5. Apache Mesos
Apache Mesos, comme les autres outils open-source répertoriés ici, vous permet de gérer des cloud publics, privés et hybrides, et même du matériel et des logiciels traditionnels, comme s’il s’agissait d’un seul ordinateur. Mesos traite la gestion et la planification des ressources et est souvent décrit comme un « noyau de systèmes distribués » qui vous permet de gérer des milliers de serveurs en utilisant les conteneurs pour héberger des applications.
Mesos fournit un ensemble de démons qui exposent les ressources à un planificateur centralisé. Cela permet aux tâches d’être réparties entre les nœuds, et l’équilibrage de charge s’effectue donc sur les différentes ressources du cloud ou des systèmes traditionnels. Mesos est une solution naturelle pour les grandes bases de données distribuées telles que Hadoop et Cassandra.
6. SmartOS et SmartDataCenter de Joyent
SmartDataCenter de Joyent est le logiciel qui exploite le cloud public de Joyent. Il fournit également une plate-forme de gestion en complément de SmartOS de Joyent (OS de serveur mince). Vous pouvez utiliser SmartOS pour déployer un ensemble de serveurs légers pouvant être gérés par un ensemble d’API de JSON.
Alors, comment SmartDataCenter et SmartOS se relient-ils ?
SmartDataCenter fonctionne sur les serveurs SmartOS. Un serveur fonctionne comme un nœud de gestion dédié, et le reste sont des « nœuds de calcul ». Vous déployez des services en tant qu’images et les composants existent dans une bibliothèque d’objets.
Ces deux technologies open-source vous apportent le meilleur du cloud public de Joyent et vous permettent de gérer ou de construire un cloud. Bien que ce soit un ensemble d’outils de niche, il est important de savoir au moins qu’il est disponible si vous en avez besoin.
7. Ansible
En tant qu’outil de gestion des configurations de serveur sur les cloud, Ansible est un produit open-source avec une excellente réputation. Il est conçu pour fournir des outils de gestion de la configuration qui peuvent simplifier la gestion du système cloud et fournir des capacités de mise à l’échelle.
Le noyau de cette technologie est un service de gestion qui utilise SSH pour gérer les nœuds Unix et PowerShell afin que les deux puissent s’entendre avec les serveurs Windows. Également un autre noyau : Ansible Playbook, qui fournit des informations sur l’état des serveurs ou des services qui utilisent le langage de sérialisation des données YAML. Cela vous permet d’orchestrer des tâches ou des applications selon vos besoins pour prendre en charge vos charges de travail.
Vous pouvez également utiliser Playbook dans le cadre d’un processus de livraison continue de DevOps. Bien sûr, vous avez besoin d’outils de construction qui fourniront des déploiements et des configurations automatisés. Playbook peut extraire des informations depuis les fournisseurs de services cloud publics, privés et hybrides, ce qui simplifie considérablement la gestion des machines virtuelles et des réseaux. Il existe également des outils de surveillance natifs qui peuvent pousser automatiquement les nouveaux déploiements, contrôlant ainsi les services cloud ou les autres tâches de gestion des ressources.
Quels outils vous conviennent ?
Avant de vous précipiter pour choisir un outil de gestion de cloud, vous devez penser à ces petits détails :
- Déterminez les exigences, y compris les couches que vous devez gérer. Il y a des couches de données, des couches d’application, des couches de conteneur, des couches de réseau, des couches de stockage, des couches de calcul, etc., et chacune a ses propres exigences de gestion.
- Toutes les technologies open-source ne sont pas adaptées au travail. Dans certains cas, il vaut mieux payer pour des fonctionnalités de gestion de cloud commercial que de les télécharger depuis GitHub. Bien que cela soit moins souhaitable pour de nombreuses entreprises, il pourrait vous faire économiser de l’argent à long terme.
- Gardez à l’esprit que vos exigences en matière de gestion du cloud évolueront au fil du temps et que vos besoins en outils devront peut-être également changer. Vous évoluerez dans des déploiements plus complexes au cours des années, et les types ainsi que le nombre d’outils deviendront également plus complexes.
- N’oubliez pas la sécurité et la performance ; vous devez également relier les deux dans votre infrastructure de gestion. Considérez-les comme des concepts systémiques, en ce qui concerne la gestion du cloud.
- Tenez compte de l’environnement traditionnel et existant de votre entreprise lorsque vous choisissez les outils. La voie de la moindre résistance consiste à utiliser des outils capables de gérer vos plates-formes cloud et non-cloud. Dans la plupart des cas, ce n’est tout simplement pas possible. Mais si vous pouvez trouver des outils capables de gérer les deux environnements, ce sera le chemin le plus facile.
Le cloud computing est en constante évolution. Attendez-vous à voir de nouvelles approches et de nouvelles technologies émerger au cours des prochaines années, y compris de nouvelles options open source.
L’open source fera toujours partie du cloud computing, mais les outils de gestion du cloud sont très différents et la complexité de l’outil ne fera qu’augmenter avec le temps. Mais vous ne pouvez certainement pas attendre. Alors armez-vous de connaissances, comprenez les problèmes que vous devez résoudre et préparez-vous à aller de l’avant.