Ces dernières années, la transformation digitale des entreprises s'est accélérée entraînant une généralisation du cloud dans la plupart des entreprises. Cette évolution s’accompagne de nouveaux défis : sécurité, IA, standardisation, mais aussi gestion des talents. Selon Gartner, d’ici à 2026, 80 % des entreprises d’ingénierie logicielle mettront en place des équipes de plateforme en tant que fournisseurs internes de services, de composants et d’outils réutilisables pour la distribution d’applications. Quid de ce qui se cache réellement derrière le platform engineering ?
Le cloud a mis en exergue la nécessité d'aligner le développement d'applications aux contraintes de déploiement pour aller chercher plus d'efficience opérationnelle et plus de performance applicative. Les Dev et les Ops doivent travailler de concert tout au long du cycle de vie de l’application. C’est le grand principe du Devops.
Pour autant, l’adoption d’un cloud public encourage une autonomie très forte des équipes projets. En partant de cinq à dix Business Unit pre-cloud, on peut arriver à une bonne centaine de projets, chacun évoluant sur des environnements dev / staging / prod cloisonnés, soit au final 300 comptes ou groupes sur un clouder.
Autre difficulté : les plateformes Cloud public proposent une galaxie de services spécialisés, qui doivent être agrégés pour fournir une solution utilisable pour un projet ; calcul, Load balancing, serverless, DNS, Certificats, stockage, base de données, IAM, administration, observabilité, tracing… Le nombre de services que les équipes doivent configurer explose et en devient contre productif. Quelques initiatives sont lancées pour proposer des modules inter projets, mais dans les faits ils ne sont que peu utilisés, souvent par manque de diffusion “organique”.
Et côté sécurité, lorsqu’un projet doit passer une validation cyber-sécurité avant une mise en ligne, les voyants rouges s’allument : failles dans le code, gestion défaillante des mécanismes d’authentification, dépendances obsolètes, gestion de données personnelles hasardeuse… Il faut revoir sa copie. Et pendant ce temps le compteur défile : budget, ressources, planning s’envolent.
Autre constat, certaines tâches paraissent insurmontables. L'authentification des APIs en interne ou encore le changement de configuration TLS est une véritable épreuve pour l’équipe cloud/devops.
Dans ce contexte, vouloir proposer une plateforme commune qui implémente les standards de l’entreprise prend du sens avec à la clé de belles promesses pour les équipes de développement mais plus globalement pour l’entreprise avec un delivery plus fluide et des « produits » à meilleure valeur ajoutée commerciale.
Et si la solution tenait au platform engineering ? C’est à dire :
Les équipes plateform n’ont alors qu’un seul objectif : délivrer un socle plate-forme utilisable par l’ensemble des développeurs pour moderniser les applications métiers.
On parle d’une approche “Platform-as-a-Product”.
Les utilisateurs de la plateforme sont divers, à la fois clients mais aussi designers :
Cette pratique permet d’optimiser l’expérience des développeurs et d’accélérer la création de valeur commerciale. Elle améliore l’expérience et la productivité des développeurs et leur capacité à exécuter, gérer et développer des applications de manière indépendante, tout en garantissant fiabilité et sécurité. C’est aussi un facteur de rétention des talents clés, un point hautement stratégique quand on sait combien il est complexe aujourd’hui de consolider les équipes face à la multiplication des projets.
Le but est de construire un PaaS basé sur des technologies non propriétaires. Aujourd’hui, les implémentations sont principalement centrées autour de Kubernetes avec une intégration de projets OpenSource de l’éco-système CNCF auxquels s'ajoutent souvent des services Cloud. Il est indispensable de choisir les bonnes briques, de les intégrer entre elles, de les maintenir et proposer les golden paths qui permettront une “autonomie contrôlée”.
Voici un panorama des technologies applicables :
https://platformengineering.org/platform-tooling
Qui dit plateforme dit souvent ressources partagées. Il est important de pouvoir rapprocher des ressources technologiques d’entités organisationnelles, à des fins d’optimisation, de sécurisation, voire de rationalisation.
L’une des solutions à ce type de problème est de mettre en place une politique de tags. Nous ne reviendrons pas sur l'intérêt des tags ; tout est dit dans cet article.
En revanche, nous constatons fréquemment que les politiques de tags sont rarement appliquées sur les ressources créées ou de manière inefficace (casse non respectée, valeurs multiples non tolérées, défaut de mise à jour…).
Le taggage des ressources de facto, le contrôle de conformité a priori, associé à un contrôle en temps réel permettent aux équipes projet de constater et mesurer leur impact propre sur la plateforme et les coûts inhérents. Les pilotes disposent ainsi d'une vision centralisée pour définir et mettre en place une politique de gouvernance forte et efficace.
La construction d’une plateforme est un enjeu majeur qui, au-delà de structurer votre SI, va offrir à votre entreprise les moyens des ses ambitions ! Car au final, c’est bien de la valeur commerciale ou valeur d’usage dont il s’agit !
Récemment, WeScale a accompagné le ministère de l’Intérieur et des outre-mer dans son projet de platform engineering. Dans chaque projet, il est essentiel de prendre en considération les métriques en lien avec la valeur que doit apporter la plateforme mais aussi de porter une attention particulière à l’approche produit, pour une parfaite adoption par les utilisateurs et au succès de la plateforme.
Pour aller plus loin sur les pratiques pour adopter le platform engineering, indiquons le modèle de maturité platform engineering de la CNCF.