Les conteneurs et Kubernetes sont devenus des outils incontournables pour les développeurs et les opérationnels. Toutefois, pour faciliter la mise en place et le déploiement de ces infrastructures, des plateformes intégrées ont vu le jour. OpenShift, la distribution Kubernetes de Red Hat, est bien plus qu’une simple plateforme. Certifiée par la Cloud Native Computing Foundation, elle offre un large éventail de services pour les développeurs et constitue une solution clé en main pour les entreprises, comprenant la gestion des logs, le monitoring, l’authentification et la sécurité.
Une architecture transparente et des outils pour les développeurs
OpenShift présente une architecture limpide, comme le montre la figure 1 : une infrastructure de déploiement/exécution, un système d’exploitation (Red Hat Enterprise Linux ou CoreOS), l’orchestrateur Kubernetes, une couche d’automatisation des tâches et opérations, ainsi que des services CaaS, PaaS et FaaS.
Bien que cette plateforme puisse sembler intimidante pour les développeurs, elle est en réalité conçue pour les accompagner. Elle prend en charge tous les principaux frameworks et langages du marché (Java, Ruby, PHP, Go, Python, etc.) grâce à une variété de conteneurs et d’images. De plus, les développeurs bénéficient d’une vue détaillée de l’architecture des applications déployées, des composants et des dépendances, grâce à une console spécialement conçue pour eux. Cette console permet également un accès rapide aux métriques nécessaires pour comprendre l’utilisation des ressources et les variables de l’environnement.
OpenShift propose également un IDE en ligne, appelé Codeready Workspace, qui permet de reproduire l’environnement d’une application-conteneur afin d’inspecter le code, de le corriger et de gérer la pile technique.
Pour faciliter le travail des développeurs, OpenShift met à leur disposition une marketplace comprenant plus de 300 operators Kubernetes. Ces packages préconfigurés pour des cas d’utilisation spécifiques (apprentissage automatique, sécurité, bases de données, etc.) peuvent être déployés en quelques minutes. Les operators évitent aux développeurs d’avoir à tout coder ou à tout déployer eux-mêmes. La plateforme propose également plus de 300 services d’applications, qui peuvent être utilisés et déployés dans une application OpenShift.
Et si vous êtes adepte du serverless, ne vous inquiétez pas, OpenShift propose également du serverless grâce à Knative.
Les avantages d’OpenShift pour les développeurs
Les développeurs peuvent parfois être intimidés par l’utilisation de Kubernetes et la nécessité d’un orchestrateur. Ronan Bourlier, Data & AI Tech Sales Engineer, Infrastructure Architect et Developer Advocate chez IBM, nous explique que ce sentiment est souvent dû à un changement de paradigme lié au développement en microservices et à l’utilisation des conteneurs. Les développeurs doivent désormais fournir une image et non seulement du code. Cependant, il est important de saisir tous les avantages que cela apporte. C’est précisément ce dont traite ce dossier.
OpenShift peut être défini comme un “super orchestrateur Kubernetes” doté de nombreux modules et services supplémentaires. En plus de l’orchestration des conteneurs, OpenShift propose une interface graphique complète et intuitive, un routage externe des services et de nombreux autres services à découvrir. Parmi ces services, on peut notamment mettre en avant le service S2I (Source to Image), qui permet de passer du code à une image et de la déployer facilement.
OpenShift est intéressant pour tous les types de développement. Alors que la virtualisation a révolutionné le monde de l’informatique il y a 20 ans, la conteneurisation est en train de faire de même. Les projets basés sur des microservices deviennent la norme, et OpenShift offre un environnement idéal pour leur développement. De plus, pour les développements plus traditionnels, OpenShift permet également de gérer des machines virtuelles (VM) et de regrouper tous les éléments nécessaires au sein d’une même plateforme.
La portabilité d’OpenShift
L’un des principaux avantages d’OpenShift est sa capacité à être installé n’importe où. Comme nous l’avons mentionné précédemment, la conteneurisation est en train de devenir la norme pour la gestion des applications. Au lieu de gérer des machines virtuelles avec des exécutables, nous gérons désormais des nœuds contenant des conteneurs, eux-mêmes contenant des images. OpenShift permet donc de gérer ces conteneurs partout, que ce soit localement ou dans le cloud, avec une vision à long terme vers le cloud hybride. Par exemple, vous pouvez développer localement, tester sur un cloud privé et déployer en production sur un cloud public, le tout grâce à OpenShift et à RHACM (RedHat Advanced Cluster Management).
Comment démarrer en douceur avec OpenShift
Pour les développeurs qui souhaitent commencer à utiliser OpenShift, il est important de comprendre que la plateforme devrait être transparente pour eux. La puissance d’OpenShift réside dans son automatisation des opérations. Si vous souhaitez déboguer une application, il est conseillé d’accéder aux logs pour mieux la comprendre. Pour commencer en douceur, il est essentiel de bien comprendre ce qu’est OpenShift. Une présentation sur le sujet est disponible ici. Une démonstration du déploiement de code source via S2I et un lien pour tester directement la plateforme Red Hat sont également disponibles. De nombreuses autres démonstrations sont disponibles pour vous aider à développer rapidement avec OpenShift. Ronan Bourlier prépare une série de présentations sur le sujet, alors suivez-le sur LinkedIn pour rester informé et poser vos questions si vous avez besoin d’aide pour démarrer.
Pour en savoir plus, rendez-vous sur learn.openshift.com.
Lisez le grand dossier spécial OpenShift paru dans Programmez ! n°241.