Qu’est-ce que le Platform Engineering et comment le mettre en place dans son SI ?

Si vous êtes familiers au monde du développement, le terme DevOps ne doit pas vous être inconnu. Cependant, les pratiques liées aux DevOps n’étant pas sans failles, nous nous tournons de plus en plus vers la notion de Platform engineering. Mais à quoi ça sert ? Et comment le mettre en place ? C’est ce que nous allons voir dans cet article. Bonne lecture !
thomasD.jpg
Thomas DA ROCHAMis à jour le 29 Avr 2024
Illustration de l'article d'AXOPEN sur le Plateform Engineering, et comment le mettre en place

Le Platform Engineering, pourquoi ?

Avant le Platform Engineering, il y avait le DevOpsEnsemble de techniques permettant l'intégration, les tests et le déploiement d'une application. ! Non pas que le DevOps n'existe plus, mais disons que le Platform Engineering vient colmater les problématiques du DevOps.

Pour rappel, le DevOps a pour but de rapprocher les équipes de développement de la partie opérations (intégration, déploiement), ce qui permet de réduire les temps d'attente entre ces deux équipes. Décliné concrètement à l’aide de différents outils, le DevOps fait gagner beaucoup de temps aujourd’hui sur les projets de développement, mais apporte également son lot de limites.

C'est à partir de ce postula que le Platform Engineering a été imaginé.

Les limites du DevOps

Les limites du DevOps ne viennent pas de sa philosophie, mais plutôt du fait qu'il n'y ait pas d'explication concrète sur “comment le mettre en place”.

Le but du devOps étant que ce soit les développeurs qui réalisent la partie opérations (intégration, déploiement, etc.), si chaque équipe DevOps fait les choses à sa façon et utilise des outils différents, cela à tendance à augmenter la complexité pour comprendre son système d’informations. C’est généralement pour cela que ça devient complexe au fil du temps !

De plus, les équipes DevOps dans les entreprises sont généralement celles qui doivent mettre en place les outils, les maintenir, les administrer, mais aussi les utiliser. Aussi, au-delà de la charge de travail que cela nécessite, il faut pas mal de connaissances techniques !

Le Platform Engineering, c'est quoi ?

L’idée principale derrière le Platform Engineering est que, le fait de donner plus de droits aux équipes DevOps a certes, fait gagner du temps, mais en contrepartie, a augmenté la charge de travail des équipes pour livrer les applications. Des équipes qui restent des développeurs et qui ne sont pas des experts en infrastructure.

Le Platform Engineering, se veut de penser la solution à ce problème via la mise en place d’une plateforme interne pour les développeurs (d’où son nom) pour aider les développeurs. Cette plateforme regrouperait plein de fonctionnalités qui permettraient de simplifier les tâches répétitives, simplifier la mise en place de l’infrastructure, créer des templates qui suivraient des règles de l’organisation (de sécurité, des bonnes pratiques) et de centraliser toutes les données DevOPS à un seul endroit.

Les avantages à mettre en place le Platform Engineering dans son entreprise

Mettre en place le Platform Engineering dans son entreprise, et plus précisément dans ses projets informatiques, a plusieurs intérêts majeurs à nos yeux :

  • Focaliser le développeur sur ses compétences de développement: un développeur n'est pas la personne la plus compétente pour concevoir une infrastructure. Si on simplifie et standardise ce sujet pour lui, il pourra se focaliser davantage sur le développement.
  • Simplifier son SI : de la normalisation, vient l'uniformisation. Le fait de définir une façon de faire permet de simplifier la compréhension globale de son SI et ainsi entre deux projets informatiques ("si tout le monde parle la même langue, on se comprend mieux").
  • Sécuriser son SI : on redonne la main pour administrer des outils à des personnes qui savent le faire, mais aussi, on crée des templates pour simplifier l'application des bonnes pratiques de sécurité.
  • Réduire les outils : le mouvement DevOps, a apporté son lot d'outils. Le Platform Engineering, de par sa normalisation, fait qu'au sein de son SI, ce nombre d’outils diminuera. Et chacun le sait, moins d'outils à gérer et maintenir, c’est moins de charge de travail et moins de connaissances à gérer sur le long terme.
  • Réduire la charge des équipes DevOps : les ingénieurs Platform Engineering se chargent de l'administration des outils, et les équipes DevOps de leur utilisation. Aussi, les équipes DevOps n’auront plus à maintenir ces outils.

Comment mettre en place le Platform Engineering au sein de son SI ?

Étape 1 : Préparation des équipes et de l’objectif

Il faut voir le Platform Engineering comme un produit. Aussi, dans la gestion de la mise en place, on peut l’assimiler à un projet informatique.

Pour mettre en place le Plateform Engineering au sein de votre SILe SI désigne le système d'informations d'une organisation., on vous recommande ainsi de créer une équipe en charge du sujet, et qui aura pour rôle, la création, la mise en place, et le maintien d’outils.

Cela dit, avant de constituer son équipe, il faut déjà se mettre d'accord sur l'objectif du Platform Engineering au sein de son organisation ! Et c’est pour cela qu’on parle de plateforme interne. Le but n’est pas de créer une plateforme standard, comme tout le monde, mais de créer sa propre plateforme qui répond à ses besoins.

Pour ce faire, avant de démarrer les travaux, il faut donc se poser quelques questions au regard de notre organisation ! Par exemple :

  • Nos développeurs manquent-ils de compétences en infrastructure ?
  • Est-ce qu’on perd beaucoup de temps pour mettre en place de l’intégration et du déploiement continu ?
  • On crée régulièrement le même type de projet informatique. Tout l’équipe utilise-t-elle les mêmes pratiques ?

Il faut également avoir bien conscience que la mise en place de cette pratique vient, dans la majorité des cas, modifier les habitudes des développeurs.

Comme tout changement, il y a parfois de la résistance au sein des équipes ! Aussi, soyez pédagogues pour expliquer ce que les développeurs vont gagner à terme avec ce projet, écoutez-les pour bien identifier ce dont ils ont besoin, et allez-y petit à petit avec un accompagnement rapproché.

Etape 2 : Préparation de l’opérationnel

Une fois cette étape de préparation passée, on rentre dans le dur du sujet, la réalisation !

Bien souvent, le Platform Engineering se traduit par la création d'une application qui centralise les outils et fournit un niveau d'abstraction permettant de simplifier l'usage des outils pour les développeurs.

Cela peut passer par la réalisation de :

  • Documentation
  • Template
  • Tableau de bord
  • Script

Quels outils pour mettre en place le Platform Engineering dans son organisation ?

La majorité des outils du Platform Engineering sont les mêmes que le DevOps ! On retrouve donc les outils :

  • De gestion de source (GitHub, Gitlab)
  • De CI/CD (Gitlab CI, Jenkins, Github action, Azure DevOps)
  • De conteneurisation (Docker, Podman)
  • D’infrastructure as code (Terraform)
  • D’orchestration de conteneur (Kubernetes)
  • D’observabilité (Elastic, New Relic)

À cela, il faut rajouter tout ce qui permettra de construire les liens entre ces outils, mais aussi, les liens entre les équipes et ces outils (par exemple : documentation, scripts, templates, etc.).

Pour mettre en place le platform engineering au sein du SI d’une entreprise, on met généralement en place un portail développeur (justement pour faire le lien entre équipes et outils).

Son but est de :

  • Centraliser les informations des projets et des outils
  • Automatiser les processus récurrent (comme l’initialisation des projets)
  • Documenter les bonnes pratiques et les projets

Notons tout de même que la mise en place d’un tel portail en interne n’est pas si simple ! Amenée à être utilisée dans la durée au sein de l’entreprise, il faut imaginer cette application pour son besoin actuel et celui des prochaines années. Car oui, ce type d’application doit pouvoir évoluer en fonction des besoins futurs de l’organisation, mais aussi des modifications en lien avec les outils utilisés.

A ce jour, sachez qu’il existe des outils sur le marché qui fournissent des solutions de portail développeur, mais qu’elles ne sont, à l’heure où on se parle, peu adaptées au besoin de chacun. C’est notamment pour cela que des outils comme Backstage de Spotify existent. Au lieu d’être un véritable portail, cet outil fournit une base et des outils pour simplifier la réalisation d’un portail développeur.

Retour d’expérience

Depuis plusieurs années chez AXOPEN, nous appliquons les principes DevOps. Au fil du temps, et des différents projets informatiques, nous nous sommes heurtés aux problématiques de mauvaises utilisations et pratiques liées au DevOps. Pour pallier à ça, nous avons conçu en interne notre propre solution.

Lorsque nous avons découvert le Platform Engineering, et que nous avons commencé à étudier le sujet, cela nous a tout d’abord conforté sur le fait que nous étions parti dans la bonne direction avec notre solution, mais cela nous a surtout permis de nous ouvrir à de nouveaux aspects que nous avions négligés et d’enrichir nos process internes !

Aujourd’hui, nous avons une équipe responsable de maintenir nos outils et simplifier leur usage notamment via :

  • la mise en place de templates de scripts CI/CD
  • la standardisation de nos outils, via la mise en place d’analyse Sonar, l’analyse de failles de sécurité connues sur les librairies utilisées dans nos projets
  • la mise en place de templates d’infrastructure via Terraform.

Aujourd’hui encore, nous faisons évoluer notre package interne en l’étoffant et en le rendant plus simple à utiliser ! Et vous, vous vous êtes lancés dans le Plateform Engineering en entreprise ? Si vous voulez poursuivre la discussion sur le sujet, n’hésitez pas à nous appeler.