Jump to section

L'ingénierie de plateforme, qu'est-ce que c'est ?

Copier l'URL

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é.

Il s'agit d'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 se concentrer sur les tâches prioritaires.

L'objectif principal de l'ingénierie de plateforme consiste à identifier les difficultés que rencontrent les équipes de développement et à les éliminer grâce à des outils et capacités courants et réutilisables, à partir d'une plateforme de développement interne.

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.

Dans tous les cas, elle offre aux entreprises un meilleur niveau de cohérence et d'efficacité. L'ingénierie de plateforme 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.

Cette discipline vise principalement à accélérer les tâches administratives susceptibles de freiner la productivité du développement et de créer des goulets d'étranglement au cours du cycle de vie des applications. Les équipes d'ingénierie de plateforme sont ainsi chargées de gérer l'infrastructure et de créer un ensemble d'outils qui guident les équipes de développement à travers un workflow de référence conçu pour répondre à leurs besoins.

Toutes les équipes de développement ont des besoins différents (même au sein d'une même entreprise). Par conséquent, chaque plateforme de développement présente ses propres caractéristiques. Conscientes de ce fait, les équipes d'ingénierie de plateforme sélectionnent et personnalisent un ensemble d'outils et de processus qui répondent aux besoins uniques d'une entreprise ou d'un service. Elles créent des capacités en libre-service et une infrastructure automatisée qui facilitent le développement logiciel.Au lieu de se limiter aux solutions standard, les équipes de développement peuvent compter sur cette capacité d'adaptation pour travailler avec les outils qui répondent 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, ces équipes peuvent se concentrer 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. 

Origine de l'ingénierie de plateforme

L'ingénierie de plateforme a vu le jour en réaction à l'apparition d'une nouvelle thèse dans le monde des technologies : l'infrastructure ne devrait pas peser sur les équipes de développement, surtout dans les environnements hybrides et multicloud. 

Habituellement, il revenait aux équipes de développement de trouver l'outil adapté à leurs besoins ou de le créer elles-mêmes. Si les précédentes versions de technologies, plus élémentaires, permettaient de le faire, aujourd'hui, les développeurs en entreprise ont remarqué que l'assistance aux utilisateurs et la mise à l'échelle efficace deviennent de plus en plus complexes et fragmentées à mesure que l'activité prend de l'ampleur.

De nouveaux outils et de nouvelles fonctions émergent en permanence, et l'identification des outils adaptés pour une tâche passe par un long processus d'évaluation et de sélection. L'acquisition de nouvelles compétences, la veille technologique, les demandes de services d'infrastructure et d'applications et l'examen des dernières menaces pour la sécurité représentent une perte d'énergie, de ressources et de temps qui pourraient être consacrés à l'amélioration du produit vendu et à la réalisation des priorités métier. 

Dans le domaine de l'ingénierie de plateforme, les équipes de développement sont les clients et les plateformes de développement interne sont les produits.

Configurées par des équipes d'ingénierie de plateforme, ces plateformes se composent d'un ensemble d'outils et de technologies internes 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. Les chaînes d'outils qui y sont intégrées améliorent le workflow de développement et augmentent sa productivité, mettent l'accent sur des facteurs tels que la sécurité et l'évolutivité, et aident les entreprises à générer plus de valeur pour les clients.

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, allez au plus simple : intégrez seulement des outils qui apporteront forcément des avantages à votre équipe. Ensuite, en vous basant sur ses commentaires, étendez progressivement les capacités pour évoluer en fonction de ses besoins. 

À l'instar du DevOps, l'ingénierie de plateforme a pour but de mieux répondre aux besoins du développement et de l'exploitation en renforçant l'automatisation et la collaboration. Ces deux pratiques se complètent, car l'ingénierie de plateforme contribue à relever les défis liés à la mise à l'échelle du DevOps au sein de l'entreprise.

En règle générale, les pratiques DevOps encouragent les équipes de développement à trouver des logiciels, les prendre en main, les déployer et les gérer par elles-mêmes, pour qu'elles connaissent et contrôlent mieux les logiciels en production. Cependant, cette méthode n'a pas toujours des effets positifs sur les résultats. Parfois, elle augmente au contraire la charge de travail administrative ainsi que la charge cognitive.

Il arrive qu'une équipe souhaite proposer une fonction sans avoir les compétences nécessaires, et inversement. Parfois, même si les deux conditions sont réunies, elle est freinée par des problèmes de sécurité et de rentabilité. Tous ces obstacles s'aggravent lorsque les entreprises évoluent et se développent.

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 créent.

Malgré le sentiment de liberté qu'offre cette autonomie, elle implique également des responsabilités et une charge cognitive parfois trop lourdes, ce qui finit par nuire à la fois au personnel et à l'entreprise.

L'ingénierie de plateforme constitue 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. 

L'ingénierie de plateforme et l'ingénierie de la fiabilité des sites (SRE) sont deux pratiques qui visent à créer des systèmes et à en assurer le bon fonctionnement. Elles se différencient par leurs priorités. L'ingénierie de la fiabilité des sites se concentre sur les équipes d'exploitation informatique. Elle les aide à utiliser des logiciels pour gérer des systèmes, résoudre des problèmes et automatiser des tâches liées à l'exploitation.

L'ingénierie de plateforme, quant à elle, s'intéresse davantage aux équipes de développement. Elle les aide à créer des plateformes pour gérer des systèmes, résoudre des problèmes et automatiser des tâches liées au développement. 

Red Hat® OpenShift® offre un ensemble complet de fonctions et de capacités telles que les builds, Pipelines, GitOps, Serverless et Service Mesh.

En association avec Red Hat Developer Hub, OpenShift offre aux équipes d'ingénierie les modèles de projets, la documentation et les workflows nécessaires pour créer et gérer efficacement une plateforme de développement interne unique et spécifiquement conçue pour les besoins et objectifs de l'entreprise.

Via un tableau de bord unifié, cette solution donne accès à une sélection d'outils, des modèles logiciels, de la documentation variée et d'autres ressources qui permettent aux équipes de développement de créer des logiciels de qualité plus efficacement. Developer Hub regroupe également les informations et ressources dont les équipes de développement ont besoin pour participer à un projet existant, ce qui permet d'écourter l'intégration.

Axée sur l'innovation Open Source, la plateforme offre de la flexibilité et de l'indépendance vis-à-vis des fournisseurs. Comme toutes les solutions Red Hat, elle offre aussi la stabilité, l'assistance et la fiabilité nécessaires pour l'utiliser en toute sérénité. Avec son évolutivité et sa capacité d'intégration de nouveaux outils et services via des plug-ins, cette solution vous permettra en outre de répondre à vos besoins de développement futurs.

Les équipes d'ingénierie de plateforme peuvent concevoir et créer des chaînes d'outils et des workflows intégrés en s'appuyant sur les solutions OpenShift, Red Hat Developer Hub, Trusted Software Supply Chain, Advanced Cluster Security (ACS), Advanced Cluster Management (ACM) et Ansible, pour offrir une expérience de développement plus fluide et efficace. 

Pour aller plus loin

ARTICLE

Le DevSecOps, qu'est-ce que c'est ?

Si vous souhaitez tirer pleinement parti de l'agilité et de la réactivité d'une approche DevOps, vous devez également intégrer la sécurité informatique au cycle de vie complet de vos applications.

ARTICLE

L'approche CI/CD, qu'est-ce que c'est ?

L'approche CI/CD garantit une automatisation et une surveillance continues tout au long du cycle de vie des applications, des phases d'intégration et de test jusqu'à la distribution et au déploiement.

ARTICLE

Un ingénieur DevOps, qu'est-ce que c'est ?

Un ingénieur DevOps possède un ensemble unique de compétences et de connaissances qui favorisent la collaboration, l'innovation et le changement culturel au sein d'une entreprise.  

En savoir plus sur le DevOps

Produits

Stage intensif et spécialisé auprès d'experts Red Hat ayant pour objectif de vous former à l'utilisation d'une méthode agile et d'outils Open Source en vue de résoudre les problèmes métier de votre entreprise.

Contrats avec des conseillers stratégiques qui prennent en considération tous les tenants et les aboutissants de votre entreprise, analysent les défis auxquels vous êtes confrontés et vous aident à les relever avec des solutions complètes et économiques.

Ressources