OpenShift vs OpenStack

OpenShift et OpenStack permettent de mettre en place des plateformes Cloud hautement disponibles et évolutives. Les systèmes recouvrent la gamme complète du provisionnement du matériel virtualisé au développement et à l’exploitation d’applications conteneurisées. Leur utilisation pour réaliser des stratégies de Cloud hybride est particulièrement attractive. OpenShift et OpenStack sont particulièrement prisés des grandes organisations opérant à l’échelle mondiale.

Vue d’ensemble d’OpenShift vs OpenStack

Du point de vue historique, OpenStack a vu le jour un peu avant OpenShift. Le développement des deux projets est également un exemple de transition des machines virtuelles vers les conteneurs d’applications. La virtualisation des conteneurs s’est imposée comme la technologie de virtualisation dominante au cours de la dernière décennie.

Quelles sont les dénominateurs communs et les différences entre OpenShift et OpenStack ?

Au départ, OpenShift et OpenStack sont des projets open source qui ont vu le jour en 2010 et 2011. Les deux sont utilisés pour mettre en place des systèmes évolutifs et hautement disponibles dans des environnements de Cloud hybride. Ils sont mis en œuvre par de grandes organisations opérant à l’échelle mondiale et peuvent être utilisés sur une large gamme d’infrastructures informatiques sous-jacentes.

On peut envisager à la fois OpenShift et OpenStack comme une espèce de « système d’exploitation sur le Cloud ». Mais il convient toutefois d’examiner chacun d’eux selon un niveau de considération différent. OpenShift est utilisé pour le développement et l’exploitation d’applications conteneurisées. Les utilisateurs peuvent exercer le provisionnement, l’exploitation et la surveillance des applications et des services de manière autonome. L’accent est mis ici sur des flux de travail optimisés de développement et DevOps.

OpenStack se greffe sur un niveau d’abstraction plus profond. La plateforme permet de mettre en place une infrastructure de Cloud virtualisée sur la base d’un matériel distribué. Les machines virtuelles sont provisionnées par des cœurs de CPU et de la mémoire vive, ainsi que des réseaux virtuels et du stockage de masse distribué. Conformément au modèle de libre-service, les utilisateurs sollicitent eux-mêmes les ressources. Voyons comment le comparatif OpenShift vs OpenStack permet de mettre en évidence leurs différences :

Caractéristique

OpenShift

OpenStack

Éditeur

Red Hat

OpenInfra Foundation

Type de virtualisation

Virtualisation des conteneurs

Machines virtuelles ou matériel virtualisé

Technologie de virtualisation

K8s

Hyperviseur tel que KVM, XEN, ESXi

Niveau de contrôle

Distribué

Centralisé

Modèle de service

Platform-as-a-Service (PaaS)

Infrastructure-as-a-Service (IaaS)

Utilisation des ressources du Cloud

Utilise les ressources du Cloud pour mettre en place la couche d’applications

Fournit des ressources sur le Cloud sur la base du matériel virtualisé

Comment les fonctions OpenShift et OpenStack sont-elles utilisées ?

Avec OpenStack, une organisation peut mettre en place son propre environnement de Cloud suivant le modèle Infrastructure-as-a-Service (IaaS). Ceci crée un Cloud interne, tel qu’AWS et ses alternatives. Le matériel distribué sur le plan géographique est provisionné en tant que ressources du Cloud et mis à disposition via différentes interfaces dans le système.

En revanche, OpenShift assure l’administration centralisée du développement et de l’exploitation des applications. Le logiciel est basé sur Kubernetes (K8s) et pilote les clusters K8s au-delà des frontières du Cloud. Conformément au modèle Platform-as-a-Service (PaaS), les fonctions du système sont gérées via une interface utilisateur Web.

Malgré leur appellation similaire, OpenShift et OpenStack ne sont pas des systèmes apparentés. Ils peuvent être utilisés indépendamment l’un de l’autre. Il est toutefois possible d’utiliser les deux en combinaison. OpenStack permet de mettre en place un Cloud privé dans le cadre d’une stratégie de Cloud hybride. OpenShift utilise les ressources qu’il contient pour fournir et gérer des applications et des services. Il est également possible de déployer des composants OpenStack sur des clusters K8s ou OpenShift.

Examinons ci-dessous les avantages et les inconvénients des deux technologies en détail. Ce faisant, nous nous penchons également sur des scénarios d’utilisation particulièrement intéressants et concluons notre examen par une analyse comparative.

OpenStack : la plateforme de Cloud ouverte

OpenStack permet de disposer d’une plateforme ouverte pour mettre en place des environnements de Cloud évolutifs. Le logiciel est un niveau d’abstraction qui repose sur une infrastructure matérielle décentralisée. La fonctionnalité de base consiste à provisionner et allouer les capacités de calcul, de réseau et de stockage de masse. Conformément au modèle Infrastructure-as-a-Service (IaaS), les utilisateurs sollicitent les ressources dont ils ont besoin de manière autonome. Une interface Web est disponible en plus des API indispensables pour la gestion du système.

Au-delà du provisionnement des ressources, OpenStack inclut un certain nombre de fonctionnalités complémentaires. Il s’agit notamment de la gestion des identités des utilisateurs, gestion des enregistrements DNS, ainsi qu’un service d’image pour la gestion des images VM. En pratique, les différentes fonctions sont encapsulées comme des composants individuels. Il existe plus de trois douzaines de composants dans la version actuelle d’OpenStack ; ils ne sont généralement pas tous mis en œuvre dans un projet. Nous vous proposons un bref aperçu des principaux composants :

Composants OpenStack

Fonctionnalité

Description

Nova

Service Compute

Provisionnement des cœurs de CPU et de la mémoire virtualisés.

Swift

Stockage d’objets

Stockage d’objets de type S3 sur la base d’un stockage de masse virtualisé et redondant.

Glance

Service d’image

Gestion des images VM pour le fonctionnement de la plateforme.

Horizon

Tableau de bord Web

Les utilisateurs se connectent dans le tableau de bord et y gèrent les différents composants du système.

Keystone

Service d’identité

Mise à disposition de l’authentification multi-systèmes et basée sur API et de l’autorisation des utilisateurs.

Cinder

Stockage en bloc

Mémoire de masse hautement disponible et tolérante aux pannes, qui fonctionne comme un disque dur Cloud évolutif.

Neutron

Gestion du réseau

Gestion de l’infrastructure de réseau virtuel (VNI) du système.

Ironic

Provisionnement du « bare metal »

Administration de l’infrastructure bare metal ; englobe le cycle de vie complet des machines nues, y compris la capture, le provisionnement, la gestion et le déclassement.

Trove

Service de base de données

Provisionnement et gestion de bases de données sur le Cloud évolutives et fiables.

Magnum

Orchestration de conteneurs

Déployer des moteurs de conteneurs tels que K8s et alternatives sur la base de machines virtuelles ou sur une infrastructure en bare metal.

Quels sont les avantages d’OpenStack ?

En premier lieu, OpenStack ouvre aux organisations la possibilité de mettre en place leur propre infrastructure de Cloud sur la base de leur technologie opérationnelle. Ceci se traduit par des économies considérables, car il n’est pas nécessaire de partir de zéro. OpenStack est une suite de composants individuels qui sont configurés selon les exigences. Il s’agit d’un logiciel open source libre d’utilisation par tous. La communauté OpenStack encourage le développement continu et la documentation de la plateforme.

Quels sont les inconvénients d’OpenStack ?

L’installation d’OpenStack est vue comme un véritable défi à relever en raison de la complexité du logiciel. L’ensemble comprend une variété de composants individuels qui doivent être configurés au cas par cas. La documentation à laquelle contribue la communauté est elle aussi parfois à la traîne par rapport aux développements réels. Ces deux inconvénients peuvent être contrebalancés en faisant appel à des experts ou à travers une collaboration avec des partenaires technologiques, mais cela entraîne des coûts supplémentaires. Étant donné que OpenStack est utilisé presque exclusivement pour des projets de grande envergure, un budget approprié devrait être disponible dans la plupart des cas.

À quels types d’utilisation OpenStack est-il voué ?

OpenStack convient le mieux pour mettre en place sa propre infrastructure de Cloud sur du matériel informatique décentralisé. Le logiciel est particulièrement puissant dans le domaine des machines virtuelles (VM). On peut exploiter côte à côte des applications basées sur des machines virtuelles et sur des conteneurs en combinaison avec OpenShift ou des solutions de gestion K8s comparables. La virtualisation des conteneurs est désormais intégrée aux fonctionnalités de manière native avec le composant « Magnum ».

OpenShift : la puissante plateforme d’applications et de développement

OpenShift est utilisé pour mettre en place des environnements d’applications et de développement distribués et évolutifs selon le modèle Platform-as-a-Service (PaaS). Le logiciel met à disposition un environnement d’exécution complet dans lequel les conteneurs sont déployés, exécutés, gérés et orchestrés. Les outils intégrés simplifient les flux de travail modernes de développement et de déploiement.

OpenShift utilise comme noyau sous-jacent une distribution Kubernetes dédiée (K8s). Cette solution peut être déployée au-delà des frontières du Cloud et de l’infrastructure, pour favoriser une expérience utilisateur cohérente. La fonctionnalité centrale de K8s est complétée par des fonctionnalités de sécurité et de surveillance et repose sur une gestion centralisée des politiques. Ceci apporte la garantie d’un haut niveau de qualité sur l’ensemble de l’organisation à travers son écosystème logiciel. Les opérateurs OpenShift sont majoritairement utilisés pour la mise en œuvre :

Composants OpenShift

Explication

Serveur d’API OpenShift

Le serveur d’API OpenShift vérifie et configure les ressources OpenShift, telles que les projets, les routes et les modèles.

Gestionnaire de contrôleurs OpenShift

Le gestionnaire de contrôleurs OpenShift surveille dans etcd les modifications apportées aux objets OpenShift, tels que les projets, les routes et les objets de contrôleur de modèle, et utilise l’API pour obtenir l’état souhaité.

Serveur d’API OpenShift OAuth

Le serveur d’API OpenShift OAuth vérifie et configure les données pour l’authentification sur la plateforme de conteneurs OpenShift. Cela inclut les utilisateurs, les groupes et les jetons OAuth.

Serveur OpenShift OAuth

Les utilisateurs interrogent un jeton du serveur OpenShift OAuth pour s’authentifier auprès de l’API.

Quels sont les avantages d’OpenShift ?

OpenShift bride la complexité opérationnelle associée à l’administration de clusters K8s autogérés. Ainsi, plusieurs clusters K8s peuvent être gérés de manière centralisée au-delà des frontières des infrastructures de Cloud publiques et privées. Conformément à l’approche PAAS, les développeurs peuvent demander des ressources de manière autonome pour leurs projets via une interface Web. Des outils et des flux de travail intégrés pour les notions de Continuous Integration et de Continuous Delivery (CI/CD) complètent la palette de fonctions, ce qui réduit considérablement les délais de livraison.

D’une manière générale, OpenShift séduit par les dispositifs de sécurité intégrés. Un registre de conteneurs spécialement sécurisé est proposé avec « Quay ». L’autorisation et l’authentification de bout en bout limitent l’accès des utilisateurs aux différents secteurs du système. La possibilité d’héberger des clusters individuels dans différentes régions géographiques permet d’assurer une meilleure conformité en termes de protection et de souveraineté des données.

Quels sont les inconvénients d’OpenShift ?

OpenShift fonctionne uniquement sur des systèmes d’exploitation spécifiques de Red Hat, tels que « Red Hat Enterprise Linux CoreOS » (RHCOS) et « Red Hat Enterprise Linux » (RHEL). L’installation est considérée comme extrêmement fastidieuse. Une installation pour des projets d’envergure peut ainsi s’étaler sur plusieurs semaines. En raison des dispositifs de sécurité plus sévères, des images de conteneurs spécialement sécurisées provenant du registre de conteneurs de Red Hat « Quay » sont utilisées.

À quels types d’utilisation OpenShift est-il voué ?

Des solutions internes à l’entreprise de Platform-as-a-Service (PaaS), Software-as-a-Service- (SaaS) et Containers-as-a-Service- (CaaS) sont mises en œuvre sur la base d’OpenShift. On s’adresse ici clairement aux grandes organisations. Pour les développeurs individuels, OpenShift est certainement trop grand et trop difficile à manipuler.

OpenShift vs OpenStack : le comparatif direct

Caractéristique

OpenShift

OpenStack

Où se procurer le logiciel

Outre les versions Enterprise proposées par Red Hat, OKD propose une édition communautaire libre d’utilisation.

Le développement d’OpenStack est régi par la communauté, dirigée par la fondation OpenInfra. Outre la version officielle libre d’utilisation, de grands éditeurs informatiques proposent des distributions payantes.

Modèle de déploiement

Les déploiements multicloud et de Cloud hybride sont possibles, mais complexes le cas échéant. Il est utile de recourir à des mécanismes de déploiement standardisés.

OpenStack fonctionne souvent sur sa propre infrastructure informatique « on-premises ». Comme les déploiements sont complexes, des distributions personnalisées de grands éditeurs sont disponibles, ainsi qu’une assistance technique dédiée. Il existe également différentes approches basées sur le Cloud et des solutions gérées.

Plateformes de Cloud prises en charge

En tant que solution autogérée, OpenShift peut fonctionner sur pratiquement toutes les infrastructures. En tant que solution managée, le logiciel fonctionne sur les plateformes de Cloud AWS, Azure, Google Cloud et IBM Cloud.

OpenStack fonctionne sur la quasi-totalité des plateformes de Cloud dans des machines virtuelles, ainsi que sur les machines nues « bare metal » via un hyperviseur. En outre, les composants peuvent être installés dans des environnements de conteneurs de tous les grands fournisseurs.

Installation

Nécessite un cluster ou un environnement de Cloud pour l’installation.

L’installation du contrôleur OpenStack est effectuée soit sur site, soit sur une infrastructure mise à disposition par un fournisseur.

Versions

Jusqu’à trois versions sont publiées chaque année.

Deux versions sont normalement proposées chaque année.

Gestion des mises à jour

Les mises à jour sont simplifiées par le « Cluster Version Operator ».

Les mises à jour sont complexes et dissimulent le risque d’endommager le système. Les mises à jour des différents composants doivent être effectuées dans un ordre spécifique.

Gestion des images

Le registre de conteneurs de Red Hat « Quay » contient des images de conteneurs contrôlées pour détecter les points faibles.

Le composant « Glance » gère les images de machines virtuelles utilisées pour le provisionnement du système.

Utilisation des modèles

Outre les modèles propres à OpenShift, de puissants « opérateurs » sont utilisés pour standardiser le déploiement et l’exploitation des applications.

Des outils métiers tels que Chef, Puppet et Ansible facilitent et permettent de reproduire le déploiement d’OpenStack. Il existe également un outil basé sur Helm ou Charms pour le déploiement dans des conteneurs.

Gestion du réseau

OpenShift prend en charge les réseaux définis par logiciel (SDN), y compris les réseaux superposés via Open vSwitch (OVS).

Le composant « Neutron » d’OpenStack fournit SDN selon le modèle « Networking-as-a-service » (NaaS).

Interface Web

L’interface Web sophistiquée et ergonomique d’OpenShift est considérée comme l’une des meilleures de l’industrie.

Avec le tableau de bord « Horizon », c’est une interface graphique Web « départ usine » qui a fait ses preuves et qui est mise à disposition pour gérer OpenStack.

Pipeline CI/CD intégré

Si les versions plus anciennes utilisent encore le standard industriel « Jenkins », c’est désormais le plus récent « Tekton » qui est utilisé par défaut.

OpenStack étant centré sur le provisionnement des ressources virtualisées, aucune solution CI/CD dédiée n’est intégrée en natif.

Courbe d’apprentissage

OpenShift est considéré comme étant de manipulation plus aisée que K8s « nu ». Le logiciel fait preuve d’une utilisation relativement fluide quand une solution managée est mise en œuvre.

La courbe d’apprentissage est considérée comme assez raide du fait de la complexité d’OpenStack. La multitude de composants individuels peut nécessiter une nouvelle formation lors de la mise à disposition de fonctionnalités supplémentaires.

Fonctionnalités de sécurité

Les fonctionnalités de sécurité étendues comptent parmi les excellents avantages associés à la mise en œuvre d’OpenShift.

Le composant « Keystone » fournit des fonctions de base pour l’authentification et l’autorisation des utilisateurs.

Usage en entreprise

Le logiciel est mis en œuvre par plus de deux mille organisations dans le monde entier. De nombreuses grandes entreprises de services du numérique proposent des solutions OpenShift.

Les grandes entreprises informatiques proposent des distributions spécifiques et une assistance technique spécifique pour OpenStack. Cela englobe, entre autres, Red Hat, VMware, IBM, SUSE, Canonical, OVH, Rackspace, Mirantis et Dell.