Développeurs de logiciels au travail

Qu’est-ce qu’une plateforme interne de développement (IDP) ?

Définition de la plateforme interne de développement

Une plateforme interne de développement (IDP) est un ensemble centralisé d’outils, de services et de workflows internes qu’une entreprise met en place pour aider les développeurs à créer, déployer et exploiter des logiciels plus facilement, sans avoir à gérer eux-mêmes toute l’infrastructure sous-jacente. 

Au lieu de laisser chaque équipe de développement trouver sa propre manière de configurer les serveurs, les réseaux, les protocoles de sécurité et les déploiements logiciels, les équipes peuvent utiliser des « parcours de référence » prêts à l’emploi, déjà conformes aux règles et bonnes pratiques de l’entreprise. Les développeurs suivent simplement ces parcours, par exemple pour « lancer un nouveau microservice » ou « provisionner un environnement de prévisualisation », et la plateforme se charge du reste grâce à l’automatisation en arrière-plan.

L’IDP permet de rapprocher des processus disparates afin que toutes les équipes de développement d’une entreprise suivent globalement les mêmes règles. Elle prend aussi en charge les décisions d’infrastructure sous-jacentes, afin que les développeurs n’aient pas besoin d’une expertise approfondie en infrastructure pour livrer du code.

Les IDP sont généralement conçues et maintenues par une équipe dédiée DevOps, opérations ou ingénierie de plateforme, mais leurs principaux utilisateurs sont les développeurs d’applications. La plateforme réunit plusieurs toolchains et technologies, comme l’orchestration de conteneurs, l’Infrastructure as Code (IaC), l’intégration continue et la livraison continue (CI/CD) et les outils d’observabilité, au sein d’un écosystème cohérent.

Avantages d’une IDP

Une IDP apporte de l’ordre et de la cohérence à des capacités d’ingénierie logicielle, de livraison et de développement qui seraient autrement fragmentées au sein de l’entreprise. Elle aide les entreprises à gérer la complexité de leurs environnements et pratiques de développement logiciel, en les simplifiant et en les rationalisant pour produire de nombreux bénéfices.

Changements de contexte limités

La capacité d’un ingénieur à entrer et rester dans un état de concentration profonde, propice à un travail de codage utile, représente une valeur considérable pour une entreprise qui veut innover dans le logiciel. Dans cet état, l’attention est entière et la progression semble continue. Les ingénieurs peuvent décomposer des problèmes plus complexes, car ils disposent du temps ininterrompu nécessaire pour s’y consacrer.

Mais cet état de concentration est fragile. Les développeurs doivent parfois passer d’un type de problème à un autre, et ce basculement mental peut interrompre leur progression sur le premier problème, les obligeant à repartir de zéro lorsqu’ils y reviennent finalement. Imaginez par exemple un développeur qui cherche à résoudre un problème signalé dans un rapport de bug : un utilitaire de réservation d’hôtel n’affiche pas les heures et les dates dans le bon fuseau horaire de l’utilisateur. Le problème est complexe, car il touche à la manière dont JavaScript gère le temps à un niveau fondamental. Il ne s’agit pas d’un simple problème de formatage. Le développeur retrace le parcours des horodatages entre le backend, le frontend et l’interface utilisateur. Il réfléchit aux paramètres locaux du navigateur et au comportement des objets de date dans différentes conditions. Cela représente beaucoup d’informations à garder en tête, mais il est proche de trouver la solution.

Puis il doit quitter son éditeur, ouvrir un outil CI/CD, chercher le bon pipeline pour le service, se rappeler comment ce projet particulier gère les déploiements, modifier une configuration, attendre l’exécution du pipeline, ouvrir un outil de monitoring distinct pour vérifier le comportement…

Il a dû s’éloigner du raisonnement sur le problème pour passer à un autre mode de travail, centré sur l’infrastructure, les outils et les processus. Et lorsqu’il revient au bug, la compréhension fine qu’il avait construite autour du problème s’est dissipée. Il doit alors repartir de zéro. Pour l’entreprise, c’est une perte de temps ; pour l’ingénieur, une source de frustration. Une IDP réduit cette perte en prenant en charge les préoccupations périphériques, ce qui raccourcit le délai de mise sur le marché, augmente la productivité des développeurs et améliore l’expérience développeur.

Workflows standardisés

À mesure que les entreprises grandissent, leurs environnements de développement deviennent de plus en plus complexes. Certaines équipes peuvent adopter un outil, tandis que d’autres choisissent un outil concurrent différent pour accomplir une tâche similaire. Les équipes peuvent développer des workflows disparates et prendre des décisions en matière d’infrastructure, de déploiement ou de sécurité qui sont utiles individuellement pour leur cas d’utilisation, mais qui créent des conflits ou des inefficacités à l’échelle de l’entreprise. Dans des environnements incohérents, les goulots d’étranglement se multiplient. Ces incohérences s’accumulent avec le temps et rendent les systèmes plus difficiles à faire évoluer. À l’inverse, l’IDP transforme un ensemble fragmenté et incohérent de pratiques en workflows développeur et processus de livraison logicielle cohérents et reproductibles.

Conventions de nommage, pratiques de sécurité, pipelines CI/CD : une IDP réduit la variabilité en fournissant des modèles et en établissant des workflows cohérents grâce à un scaffolding réutilisable. Ainsi, les développeurs n’ont pas besoin de repartir de zéro : ils peuvent sélectionner un modèle qui provisionne automatiquement un dépôt, configure les pipelines de build et de déploiement, et intègre le monitoring et la sécurité.

Sécurité et conformité intégrées

Une IDP intègre directement les fonctionnalités de sécurité et de conformité dans ses workflows. Par exemple, elle peut s’assurer que tous les services incluent les mécanismes d’authentification appropriés et respectent les configurations réseau approuvées. Le développeur n’a donc pas à perdre du temps à déterminer si une approche donnée respectera les exigences. Les protocoles appropriés sont suivis, car les contrôles sont appliqués de manière cohérente : ils sont intégrés à la plateforme elle-même.

Collaboration améliorée

Lorsque toutes les équipes suivent les mêmes modèles, les développeurs comprennent plus facilement des bases de code qu’ils ne connaissent pas et peuvent y contribuer plus facilement. Les conventions partagées réduisent la charge cognitive liée au passage d’un projet à l’autre, et les nouveaux développeurs peuvent être intégrés plus rapidement.

Évolutivité

Sans cadre cohérent, la croissance de l’entreprise peut entraîner le chaos, chaque nouveau service introduisant davantage de variations et de complexité. Une IDP fournit une base stable, de niveau entreprise, qui favorise l’évolution à grande échelle et contribue à optimiser l’allocation des ressources. Les bonnes pratiques peuvent être propagées automatiquement dans l’ensemble des systèmes, et même de petites équipes de platform engineering peuvent influencer les pratiques de développement d’une grande entreprise.

Développement d’applications

Rejoignez-nous : développement d’applications d’entreprise dans le cloud

Dans cette vidéo, Dr Peter Haumer explique à quoi ressemble actuellement le développement d’applications d’entreprise modernes dans le cloud hybride en présentant divers composants et différentes pratiques, notamment IBM Z Open Editor, IBM Wazi et Zowe. 

Composants de l’IDP

L’IDP n’est pas un simple outil : c’est un ensemble de capacités qui fonctionnent ensemble pour répondre à des besoins précis des développeurs et offrir une expérience développeur plus fluide. Les implémentations varient, mais voici les composants les plus courants.

Portail développeurs : souvent appelé portail interne pour développeurs, ou « Developer portal », il constitue l’interface principale avec laquelle les développeurs interagissent. Souvent conçu à l’aide d’outils open source comme Backstage, il fournit un tableau de bord central, un catalogue de services, de la documentation, des modèles, des plugins et des workflows. C’est le panneau de pilotage en libre-service de la plateforme pour les développeurs.

Catalogue de services : le catalogue de services est un inventaire structuré de tous les services, systèmes et ressources. Il définit les responsabilités, les dépendances et d’autres métadonnées, afin que chacun sache qui est responsable de quoi et comment les services interagissent entre eux.

Scaffolding et modèles : il s’agit de blueprints prédéfinis pour créer de nouveaux services, qui permettent aux utilisateurs de créer rapidement des référentiels GitHub, de configurer des pipelines CI/CD, d’appliquer des configurations standard, d’intégrer la journalisation et le monitoring, et plus encore. Les pipelines sont préconfigurés et réutilisables, avec les bonnes pratiques déjà intégrées, ce qui évite aux développeurs de les concevoir de zéro.

Provisionnement de l’infrastructure : cette couche prend en charge la création et la gestion des environnements, des ressources et des workloads applicatifs dans des architectures hybrides ou multicloud, auprès de différents fournisseurs cloud, souvent en s’appuyant sur les principes GitOps pour automatiser les opérations.

Gestion des environnements : dans de nombreuses entreprises, les environnements de développement, de staging et de production finissent par diverger au fil du temps en raison d’écarts de configuration, de dépendances incompatibles et de données incohérentes. Une IDP y remédie en favorisant l’homogénéité des environnements, en levant les ambiguïtés et en rendant les environnements plus prévisibles.

Observabilité : la visibilité sur le comportement du système est prévue par défaut, avec des informations en temps réel telles que les logs, les métriques et les traces.

Gestion des secrets et des configurations : les clés d’API, les identifiants et les variables d’environnement sont gérés de manière sécurisée, afin d’éviter que les secrets soient codés en dur et de garantir un accès contrôlé et auditable.

Gouvernance : les politiques de sécurité et de conformité sont appliquées automatiquement, tandis que des contrôles de gouvernance comme les scorecards et le contrôle d’accès basé sur les rôles (RBAC) définissent qui peut déployer, qui peut accéder à quoi et comment les workflows sont approuvés.

Documentation : au lieu d’être dispersée, la documentation est rattachée aux services et peut être retrouvée via le portail.

L’IA et l’IDP

Même si un assistant agentique de codage ne peut pas assembler seul une IDP prête pour la production, il peut planifier, générer et itérer activement sur plusieurs étapes, afin d’accélérer l’ensemble du processus, de la mise en place initiale de la plateforme à la création de parcours de référence et à l’intégration des outils. L’architecture nécessite toujours un jugement humain, car elle concerne autant l’organisation et la structure des équipes que la technologie.

Une fois l’IDP créée, un assistant agentique de codage peut fonctionner en son sein et contribuer à la transformer d’un portail statique en un environnement plus dynamique, centré sur l’exécution de tâches. Par exemple, IBM Bob peut s’intégrer aux composants de la plateforme et aider sur des tâches comme :

  • Lire les modèles et standards de services
  • Interagir avec les configurations CI/CD et les workflows
  • Générer et modifier du code dans plusieurs référentiels
  • Aider à déclencher des builds, des tests et des déploiements, avec les approbations appropriées
  • Interpréter les logs et les données d’observabilité via des outils connectés

Bien plus qu’un chatbot, il agit comme une interface intelligente avec la plateforme. Au lieu de parcourir manuellement des formulaires et des workflows, un développeur peut demander une action comme « Créer un nouveau service », et l’assistant peut aider à orchestrer les étapes nécessaires dans le respect des standards, des garde-fous et des parcours de référence. Dans des environnements bien définis, il peut utiliser les métadonnées du catalogue de services et le contexte pour guider ses actions, tout en intégrant une validation humaine lorsque nécessaire.

Auteur

Cole Stryker

Staff Editor, AI Models

IBM Think

Solutions connexes
IBM Instana

Grâce à la découverte automatisée, à la surveillance en temps réel et à l’analyse intelligente, Instana aide les équipes à détecter les problèmes plus tôt et à investiguer les incidents.

Découvrir IBM Instana
Solutions DevOps

Utilisez les logiciels et outils DevOps pour créer, déployer et gérer des applications cloud natives sur de nombreux appareils et environnements.

Découvrir les solutions DevOps
Services de développement d’applications d’entreprise

Le développement d’applications cloud implique de les créer une fois, de les itérer rapidement et de les déployer n’importe où.

Services de développement d’applications
Passez à l’étape suivante

Les services de conseil en développement d’applications IBM Cloud proposent des conseils d’expert et des solutions innovantes pour rationaliser votre stratégie cloud. Faites équipe avec les experts en cloud et développement d’IBM pour moderniser, faire évoluer et accélérer vos applications, et obtenez des résultats transformateurs pour votre entreprise.

  1. Découvrir les services de développement d’applications
  2. Commencez à créer sur IBM Cloud, gratuitement