Les conteneurs et Kubernetes font partie intégrante du paysage informatique moderne. Aujourd’hui, il existe des plateformes intégrées qui simplifient la vie des développeurs et des opérationnels en permettant la mise en place et le déploiement de ces infrastructures complexes. C’est là qu’intervient OpenShift, la distribution Kubernetes de Red Hat certifiée par la Cloud Native Computing Foundation.
Une plateforme complète pour les développeurs et les entreprises
OpenShift est bien plus qu’un simple orchestrateur de containers. C’est un catalogue de services conçu pour faciliter la vie des développeurs. Il offre une plateforme clé en main pour les entreprises, incluant la gestion des logs, le monitoring, l’authentification et la sécurité. OpenShift est une solution open source, avec le projet communautaire OKD. Elle peut être déployée sur des serveurs locaux, dans un environnement VMware, sur le Cloud IBM ainsi que sur tous les principaux clouds publics du marché.
Une architecture claire et des outils pour les développeurs
La figure 1 présente l’architecture limpide d’OpenShift : une infrastructure de déploiement et d’exécution, un système d’exploitation (Red Hat Enterprise Linux ou CoreOS), l’orchestrateur Kubernetes, une couche d’automatisation des tâches et des opérations, ainsi que de nombreux services CaaS, PaaS et FaaS.
On pourrait penser qu’une telle plateforme pourrait effrayer les développeurs. Mais au contraire, OpenShift est conçu pour les aider. Les conteneurs et les images supportés permettent de déployer tous les principaux frameworks et langages du marché tels que Java, Ruby, PHP, Go, Python, etc. De plus, les développeurs bénéficient d’une vue spéciale grâce à la console développeur. En quelques minutes, ils peuvent visualiser l’architecture des applications déployées via les conteneurs, les composants et les dépendances. La console offre un accès rapide aux métriques nécessaires pour comprendre les ressources utilisées et les variables de l’environnement.
OpenShift propose également un IDE en ligne, Codeready Workspace. Il permet de reproduire l’environnement de son application-conteneur afin de pouvoir inspecter et corriger le code.
Pour faciliter le travail des développeurs, une marketplace donne accès à plus de 300 operators Kubernetes. Ces packages préconfigurés pour des usages spécifiques (machine learning, sécurité, base de données, etc.) peuvent être déployés en quelques minutes. Les operators évitent aux développeurs de devoir tout coder et tout déployer par eux-mêmes. De plus, plus de 300 services applicatifs sont disponibles et déployables dans une application OpenShift.
Et pour ceux qui privilégient le serverless, OpenShift propose également une solution avec Knative.
Des réponses aux inquiétudes des développeurs
On parle beaucoup de Kubernetes et de la nécessité d’avoir un orchestrateur, mais cela peut parfois effrayer les développeurs. Pourquoi ? Comme pour toutes les nouveautés, cela peut susciter des craintes. Il y a notamment un changement de paradigme avec le développement en microservices et l’utilisation des containers. Les développeurs doivent maintenant fournir une image plutôt que simplement du code. Il est donc important de comprendre ce changement et d’en voir tous les avantages. C’est exactement ce que nous aborderons dans cet article.
OpenShift est un “super orchestrateur Kubernetes” doté de nombreux modules et services. Comment peut-on le définir en quelques mots ? Kubernetes est l’orchestrateur de containers qui permet de gérer une multitude de containers dispersés. OpenShift ajoute de nombreux services supplémentaires, tels qu’une interface graphique complète et intuitive, le routage externe des services, ainsi que de nombreux autres à découvrir. Pour les développeurs, je mettrai en avant le service S2I (Source To Image) qui permet de passer du code à une image et même de la déployer très simplement.
Pour quels usages et quels types de développements OpenShift peut-il être intéressant du point de vue des développeurs ? OpenShift est intéressant pour tous les usages et tous les types de développement. Tout comme j’ai assisté il y a 20 ans à l’arrivée et à la généralisation de la virtualisation, la conteneurisation est en train de devenir la nouvelle norme. Contrairement à la virtualisation, elle a un impact profond sur les développeurs avec le développement en microservices. OpenShift est donc particulièrement adapté aux projets basés sur les microservices, qui sont en train de devenir la norme. Quant aux développements plus “monolithiques”, OpenShift intègre la possibilité de gérer des machines virtuelles (VM) afin de regrouper tous les éléments nécessaires aux applications au sein d’une seule plateforme.
Une plateforme universelle et facile d’utilisation
L’un des atouts majeurs d’OpenShift est sa capacité à être installée partout. Pourquoi cette nécessité d’être présente sur tous les fronts ? Comme nous l’avons mentionné, la conteneurisation est en passe de devenir la norme en matière de gestion des applications. Les exécutables sont progressivement remplacés par des containers contenant des images. OpenShift permet donc de gérer ces containers de manière transparente, qu’ils se trouvent localement ou dans le cloud, avec comme objectif ultime le cloud hybride. Par exemple, le développement peut être réalisé localement, les tests effectués sur un cloud privé et la production déployée sur un cloud public. Tout cela est rendu possible grâce à OpenShift et à RHACM (RedHat Advanced Cluster Management).
Comment un développeur peut-il démarrer en douceur avec OpenShift ? Tout d’abord, il est important de souligner qu’OpenShift devrait être transparent pour les développeurs. La puissance d’OpenShift réside dans l’automatisation de la plupart des opérations. Cependant, pour déboguer une application, il peut être utile d’avoir accès aux logs afin de mieux comprendre ce qui se passe. Pour commencer en douceur, il est essentiel de comprendre ce qu’est OpenShift. J’ai réalisé une présentation à ce sujet, disponible ici. Vous trouverez également une démonstration du déploiement de code source grâce à S2I, ainsi qu’un lien pour tester cela directement sur la plateforme Red Hat. Enfin, pour aller plus loin, de nombreuses démos sont disponibles pour vous montrer comment utiliser OpenShift et développer rapidement. Je continue moi-même à développer et j’apprécie énormément ce qu’OpenShift apporte en termes de gestion de l’infrastructure. Grâce à S2I, si mon code source change sur GitHub, il est automatiquement recompilé et redéployé sur mon cluster OpenShift. Je prépare une série de présentations sur ce sujet, donc suivez-moi sur LinkedIn pour rester informé et n’hésitez pas à me poser des questions si vous avez besoin d’aide pour démarrer.
Pour en savoir plus : learn.openshift.com
Lisez le grand dossier spécial OpenShift paru dans Programmez ! n°241