Présentation
L'ingénierie de plateforme est une branche du développement logiciel dont le but est d'améliorer la productivité, d'accélérer le cycle des applications et de réduire le délai de mise sur le marché. Son principal objectif consiste à identifier les difficultés que rencontrent les équipes de développement et à les éliminer grâce à des outils courants et réutilisables, à partir d'une plateforme de développement interne.
L'ingénierie de plateforme doit être considérée comme une approche multidisciplinaire qui vise à renforcer la culture du travail et la productivité, tout en ayant un effet positif sur les résultats. D'un point de vue métier, les programmes d'ingénierie de plateforme raccourcissent le délai de mise sur le marché des applications, optimisent l'exploitation et améliorent l'efficacité du développement, du déploiement, de la gestion et de la maintenance des applications. D'un point de vue culturel, ils facilitent la collaboration et réduisent la charge cognitive en offrant aux équipes de développement les outils et l'assistance nécessaires pour concentrer leurs efforts sur les tâches prioritaires.
Rôle
L'ingénierie de plateforme doit offrir aux entreprises un meilleur niveau de cohérence et d'efficacité. Elle favorise la collaboration et accélère la prise en main des technologies pour les nouveaux membres en facilitant la coopération entre les équipes. L'ingénierie de plateforme peut se concrétiser sous la forme d'un rôle spécifique, d'une discipline ou d'une méthode adoptée par une équipe entière.
Cette pratique vise principalement à accélérer les tâches administratives susceptibles de freiner la productivité des équipes de développement et de créer des goulets d'étranglement au cours du cycle de vie des applications.
Rôle de l'ingénierie de plateforme dans le développement
Les équipes d'ingénierie de plateforme sont chargées de gérer l'infrastructure et de créer un ensemble d'outils qui guident les équipes de développement au moyen d'un modèle de référence, conçu pour répondre à leurs besoins.
L'ensemble personnalisé d'outils et de processus ainsi sélectionnés répond aux besoins uniques d'une entreprise, en mettant à disposition des fonctionnalités en libre-service et une infrastructure automatisée qui facilitent le développement de logiciels. Au lieu de se limiter aux solutions standards, les équipes de développement peuvent compter sur cette capacité d'adaptation pour travailler avec les outils convenant aux exigences de leur projet. Et parce qu'elles n'ont pas besoin de se familiariser avec de nouvelles solutions ni d'effectuer du travail superflu, elles peuvent concentrer leur attention sur ce qu'elles font de mieux : coder.
Les équipes d'ingénierie de plateforme assurent aussi la mise en place de frameworks de gouvernance robustes afin de contrôler les ressources, la sécurité et la conformité dans tous les environnements. De cette manière, les entreprises peuvent prendre plus facilement part à la surveillance des performances, au suivi des coûts et à l'identification des risques ou des vulnérabilités.
Vidéo sur le rôle des équipes d'ingénierie de plateforme (durée : 2 min 31 s)
Une plateforme d'applications, qu'est-ce que c'est ?
Plateforme de développement interne
Une plateforme de développement interne est constituée d'un ensemble standardisé d'outils et de technologies en libre-service qui permettent de rédiger, déployer et gérer du code tout au long du cycle de vie d'une application. Grâce aux chaînes d'outils intégrées, il est possible d'améliorer le workflow de développement et d'augmenter sa productivité, de mettre l'accent sur des facteurs tels que la sécurité et l'évolutivité, ainsi que d'aider les entreprises à générer plus de valeur pour les clients.
Ingénierie de plateforme et DevOps
Le DevOps est une approche de développement logiciel que les entreprises adoptent pour associer les fonctions de développement et d'exploitation informatique au sein de workflows itératifs. L'ingénierie de plateforme concerne davantage la création des plateformes et outils internes qui vont permettre l'exécution de ces workflows.
Cette pratique permet de standardiser un ensemble d'outils, de connaissances, de services et de processus, que de nombreuses équipes de développement dans l'entreprise peuvent exploiter. La sélection d'une plateforme leur donne la possibilité d'assembler, de déployer et de prendre en charge leurs propres composants, tandis que l'équipe qui gère la plateforme assure ces mêmes fonctions pour les composants de la plateforme.
Les pratiques DevOps encouragent les spécialistes du développement à trouver des logiciels, à les prendre en main, à les déployer et à les gérer par eux-mêmes, pour mieux les comprendre et les contrôler en production.
L'adoption du DevOps et de la distribution continue a rallongé les pipelines et les chaînes d'outils. De plus, la tendance à l'intégration de la sécurité en amont (c'est-à-dire sécuriser le workflow de bout en bout à chaque étape lors de la création et de la maintenance d'une application) a obligé les équipes de développement à comprendre de plus en plus de subtilités des applications qu'elles assemblent.
Cette autonomie implique parfois des responsabilités et une charge cognitive trop lourdes pour le personnel et l'entreprise.
L'ingénierie de plateforme est une stratégie plus axée sur l'empathie et le parcours utilisateur. Elle s'appuie sur le DevOps pour automatiser la distribution des applications, améliorer la collaboration et la communication, réduire le risque d'erreurs ainsi que renforcer la sécurité, la conformité et l'efficacité. En particulier, cette stratégie recentre les équipes de développement sur les tâches essentielles de leur rôle.
Avantages pour les équipes de développement
Grâce à l'ingénierie de plateforme, les équipes de développement ne sont plus responsables de l'infrastructure. Il s'agit d'un avantage particulièrement intéressant dans les environnements hybrides et multicloud.
Habituellement, il revenait aux équipes de développement de trouver l'outil adapté à leurs besoins ou de l'assembler elles-mêmes. Si les précédentes versions de technologies, plus élémentaires, permettaient de le faire, aujourd'hui, les spécialistes du développement en entreprise ont remarqué que l'assistance aux utilisateurs et la mise à l'échelle efficace deviennent des tâches de plus en plus complexes et fragmentées à mesure que l'activité prend de l'ampleur.
Pour créer une plateforme de développement interne efficace, il faut chercher activement les points de friction dans l'expérience de développement, puis sélectionner un ensemble d'outils et de technologies capables de les atténuer ou de les éliminer. Au début, les entreprises peuvent aller au plus simple et n'intégrer que des outils qui apporteront forcément des avantages à l'équipe de développement. Ensuite, en se basant sur les commentaires de celle-ci, elles peuvent étendre progressivement les capacités pour évoluer en fonction de ses besoins.
Ingénierie de plateforme et ingénierie de la fiabilité des sites
Les spécialistes de l'ingénierie de la fiabilité des sites doivent gérer l'infrastructure informatique sous-jacente ainsi que développer et automatiser les processus pour en garantir l'intégrité et la disponibilité. Si elles ont des objectifs communs, les équipes d'ingénierie de la fiabilité des sites concentrent leurs efforts sur les performances logicielles, la fiabilité et la mise à l'échelle, tandis que les équipes d'ingénierie de plateforme s'intéressent aux systèmes conçus pour optimiser l'expérience de développement.
L'ingénierie de plateforme et l'ingénierie de la fiabilité des sites sont deux pratiques qui visent à créer des systèmes et à en assurer le bon fonctionnement. Elles se différencient par leurs priorités.
Principaux défis
Pour réussir la mise en œuvre de cette pratique, la plateforme doit être considérée comme un produit et les équipes de développement internes comme des clients. Les entreprises qui considèrent l'ingénierie de plateforme comme un impératif informatique strict plutôt qu'un produit conçu pour leurs équipes internes ne parviennent généralement pas à l'adopter. Si une équipe d'ingénierie assemblait une plateforme de développement interne sans comprendre les vraies difficultés des équipes de développement, celles-ci la laisseraient probablement de côté pour éviter tout ralentissement.
Certaines entreprises peuvent créer des plateformes trop complexes ou, au contraire, trop élémentaires. L'ingénierie de plateforme ne se limite pas à la création d'une interface utilisateur pour un portail de développement (comme Backstage). Pour mettre en place des fonctionnalités en libre-service utiles, il est nécessaire d'automatiser et orchestrer davantage l'infrastructure. La création d'une plateforme qui contient une multitude de fonctions pour tous les cas d'utilisation potentiels entraînera une complexité accablante et une prise en main plus difficile.
Les responsables de la plateforme font également face à un lourd défi technique : regrouper les outils fragmentés et les processus complexes de l'entreprise dans des workflows rationalisés et automatisés. La simplification du développement d'applications nécessite des efforts continus d'abstraction et de maintenance, ce qui peut rapidement submerger les équipes aux ressources insuffisantes.
Pour surmonter ces obstacles, il faut envisager la plateforme comme un produit uniquement et lancer une plateforme de type TVP (Thinnest Viable Platform) qui va d'abord résoudre l'un des goulets d'étranglement pesant le plus sur l'ingénierie. Les entreprises peuvent s'associer à un groupe test de développeurs chargés de les aider à concevoir les workflows initiaux, afin de créer des modèles de référence transparents et en libre-service que les équipes d'ingénierie choisissent activement d'utiliser. La plateforme se présente alors comme l'option la plus simple, et l'adoption interne permet d'étendre progressivement l'automatisation de l'infrastructure à l'ensemble de l'entreprise.
Nos solutions
Avec Red Hat® OpenShift® et Red Hat Advanced Developer Suite, les entreprises disposent d'une solution complète d'ingénierie de plateforme pour l'ensemble du cycle de développement logiciel. Red Hat OpenShift met à disposition une base solide pour le déploiement, la gestion et la mise à l'échelle des applications en production, tandis que Red Hat Advanced Developer Suite permet aux responsables de la plateforme d'améliorer la productivité des équipes de développement, de réduire les risques et de mettre en place le développement alimenté par l'IA. Ces avantages génèrent des gains immédiats au niveau de l'exploitation et favorisent la transformation à long terme. L'offre Red Hat Advanced Developer Suite enrichit encore Red Hat OpenShift avec un portail de développement interne et une chaîne d'approvisionnement des logiciels de confiance, pour fournir une plateforme de développement interne complète.
État de l'ingénierie de plateforme à l'ère de l'IA
Cette présentation détaillée offre une analyse complète de l'enquête « État de l'ingénierie de plateforme à l'ère de l'IA », menée par Illuminas. Découvrez la présentation détaillée.