OpenShift : la plateforme de conteneurs certifiée

François Tonic (Programmez!)

Conteneurs et Kubernetes, vous les utilisez. Aujourd’hui, il existe des plateformes intégrées pour faciliter la vie des développeurs et des opérationnels afin de mettre en place et déployer ces infrastructures. OpenShift est la distribution Kubernetes de Red Hat et bien plus que cela. Elle est certifiée par la Cloud Native Computing Foundation.

Comment résumer OpenShift ? C’est tout d’abord un catalogue de services pour les développeurs. C’est une plateforme clé en main pour les entreprises avec gestion des logs, monitoring, authentification, sécurité. C’est une solution open source, avec le projet communautaire, OKD. La plateforme peut être déployée sur des serveurs en local, dans VMware, sur le Cloud IBM et tous les principaux clouds publics du marché.

Une architecture limpide et des outils pour les développeurs

OpenShift expose une architecture limpide comme le montre la figure 1 : une infrastructure de déploiement / d’exécution, l’OS (naturellement on aura Red Hat Enterprise Linux ou CoreOS), l’orchestrateur Kubernetes, la couche d’automatisation des tâches et des opérations puis tous les services CaaS, PaaS et FaaS.

Le développeur pourrait être effrayé par une telle plateforme, mais au contraire, OpenShift est là pour les aider. Tout d’abord, les conteneurs et images supportés autorisent de déployer tous les principaux frameworks et langages du marché (Java, Ruby, PHP, Go, Python, etc.). Le développeur bénéficie aussi d’une vue spéciale grâce à la console développeur. En quelques minutes, on visualise l’architecture des applications déployées via les conteneurs, les composants, les dépendances. La console donne un accès rapide aux métriques nécessaires pour comprendre les ressources utilisées et les variables de l’environnement.

OpenShift propose un IDE en ligne : Codeready Workspace. Il permet de reproduire l’environnement de son application-conteneur pour introspecter le code, patcher son code ou la pile technique.

Pour faciliter le travail des développeurs, une marketplace donne accès à plus de 300 operators Kubernetes. Ce sont des packages préconfigurés selon un usage précis (machine learning, sécurité, base de données, etc.) que l’on peut déployer en quelques minutes. L’operator évite aux développeurs de tout coder, de tout déployer par lui-même. Même chose côté services applications. Plus de 300 services sont disponibles et déployables dans une application OpenShift.

Et si vous êtes adepte du serverless, pas de souci OpenShift fait aussi du serverless avec Knative.

Ronan Bourlier (Data & AI Tech Sales Engineer / Infrastructure Architect / Developer Advocate chez IBM LinkedIn : linkedin.com/in/ronanbourlier nous parle d’OpenShift et aborde plusieurs points précis de la plateforme.

On parle beaucoup de Kubernetes et de la nécessité d’avoir un orchestrateur, mais parfois cela fait un peu peur aux développeurs. Pourquoi ?

Comme toutes les nouveautés, cela peut faire peur. Il y a surtout un changement de paradigme avec le développement en microservice et l’utilisation des containers qui vont de pair. Un développeur fournit maintenant une image et plus seulement du code. Il faut donc appréhender cela et y voir tous les avantages qui y sont afférents. C’est ce qui est abordé dans ce dossier.

OpenShift est un « super orchestrateur Kubernetes avec de nombreux modules et services. Comment le définir en quelques mots ?

Kubernetes est l’orchestrateur de containers, pour gérer la multitude de containers que l’on trouve rapidement éparpillés. OpenShift apporte de nombreux services en plus : Interface graphique complète et intuitive, routage externe des services, et une multitude d’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 à son déploiement de façon très simple.

Pour quels usages, quels types de développement, OpenShift peut être intéressant, du point de vue du développeur ?

Tous les usages, tous les types de développement. De la même façon que j’ai assisté il y a 20 ans à l’arrivée de la virtualisation et à sa généralisation, la contenairisation va être la même lame de fond qui va tout emporter sur son passage et devenir la norme. A la différence de la virtualisation, il y a un impact fort sur les développeurs avec le développement en microservice. OpenShift est donc intéressant pour tous les projets en microservice, qui sont en train de devenir la norme. Pour les développements « monolithiques » OpenShift intègre la possibilité de gérer des VM et ainsi regrouper au sein d’une même plateforme tout ce qu’il faut pour les applications.

Un des intérêts de cette plateforme est la possibilité d’être installable partout. Pourquoi cette nécessité d’être présent partout ?

Comme nous l’avons vu, la contenairisation va devenir la norme de gestion des applications. Nous n’allons plus gérer des VM avec des exécutables, mais des nœuds avec des containers, contenant eux-mêmes des images. OpenShift permet donc de gérer des containers où qu’ils soient, en local ou dans un cloud, avec en ligne de mire le cloud hybride. Par exemple le développement en local, les tests sur un cloud privé et la production dans un cloud public, tout cela de façon simple grâce à OpenShift et RHACM (RedHat Advanced Cluster Management)

Comment un développeur peut-il démarrer en douceur avec OpenShift ?

Tout d’abord j’aimerais préciser qu’OpenShift devrait être transparent pour un.e développeur.se. La puissance d’OpenShift tient au fait que la plupart des opérations sont automatisées. Ensuite pour déboguer une application, le mieux est tout de même de pouvoir accéder aux logs afin de comprendre. Pour commencer tout doucement, il faut déjà comprendre ce qu’est OpenShift. J’ai fait une présentation sur ce sujet accessible ici. Il y a aussi une démo du déploiement de code source grâce à S2I ainsi qu’un lien pour aller tester cela directement sur la plateforme Red Hat. Ensuite pour aller plus loin, il y a de nombreuses démos disponibles sur comment utiliser OpenShift pour développer rapidement. Je continue à faire du développement et j’adore ce qu’apporte OpenShift dans la gestion de l’infrastructure. Grâce à S2I, si mon code source change dans GitHub, il est automatiquement recompilé et redéployé dans mon OpenShift. Je prépare une série de présentation sur le sujet, suivez-moi sur LinkedIn pour vous tenir au courant. C’est aussi un moyen de 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