Les outils d'ingénierie de plateforme, qu'est-ce que c'est ?

Copier l'URL

Avec les outils d'ingénierie de plateforme, les équipes de développement internes et externes ont accès aux ressources nécessaires en libre-service à tout moment, ce qui améliore leur productivité. Ces outils présentent de nombreuses fonctionnalités, notamment l'intégration et la distribution ou le déploiement continus (CI/CD), l'infrastructure en tant que code (IaC), la conteneurisation, l'observabilité, la sécurité et l'accès en libre-service pour les équipes de développement.

L'équipe d'ingénierie de plateforme, ou plus simplement équipe de plateforme, s'occupe de fournir et de gérer un portail destiné aux développeurs, qui offre un accès en libre-service aux ressources, à la documentation et aux outils nécessaires à l'utilisation de différents services et API. Parmi ses autres attributions, elle assure parfois la maintenance d'une plateforme de développement interne (IDP), qui sert d'infrastructure sous-jacente pour la création, le déploiement et la gestion des applications.

Malgré leurs similitudes, les technologies d'ingénierie de plateforme et les outils de développement n'ont pas la même finalité. D'un côté, les technologies d'ingénierie de plateforme et l'IDP contribuent à la mise en place de processus cohérents qui améliorent l'efficacité du développement. De l'autre, les outils de développement s'appuient sur cette base pour optimiser l'utilisation de l'IDP et faciliter la réalisation de projets donnés.

Dans cet article, nous abordons les objectifs de l'ingénierie de plateforme ainsi que les types de technologies et de services qui permettent de les atteindre.

L'ingénierie de plateforme vise à tirer parti des nombreuses technologies cloud-native existantes. Les équipes d'ingénierie de plateforme créent des chaînes d'outils et des workflows pour proposer des fonctionnalités en libre-service aux services d'ingénierie logicielle. Les spécialistes du développement disposent ainsi rapidement de solutions observables, prises en charge en interne et conformes aux pratiques de l'entreprise en matière de sécurité.

L'ingénierie de plateforme est une approche pluridisciplinaire qui englobe la culture d'entreprise, l'exploitation métier et la collaboration entre les équipes en vue de renforcer l'efficacité du développement logiciel. Elle tient compte de la charge cognitive qui pèse sur les équipes de développement et cherche à identifier et atténuer les difficultés rencontrées.

En pratique, les spécialistes de l'ingénierie de plateforme réunissent des contenus, des outils, de la documentation, des modèles et des workflows qui améliorent la flexibilité sans nuire à la cohérence à l'échelle de l'entreprise. Ils fournissent aux équipes de développement des fonctionnalités et des outils courants et réutilisables qui renforcent leur efficacité et leur productivité.

État de l'ingénierie de plateforme à l'ère de l'IA

Une plateforme de développement interne (IDP) désigne un ensemble standardisé d'outils et de technologies en libre-service qui sert à rédiger et déployer du code. Les IDP facilitent la gestion des tâches, renforcent l'efficacité et favorisent la collaboration au sein des équipes de développement, en consolidant et en simplifiant le processus de développement.

Par ailleurs, ces plateformes reflètent les choix en matière d'ingénierie de plateforme. En effet, une IDP regroupe des API, des outils, des services, des connaissances et des ressources d'assistance sous la forme d'un produit pertinent utilisé en interne. Elle est principalement utilisée par les équipes de développement, mais ce sont les spécialistes de l'ingénierie de plateforme qui assurent la configuration, la maintenance et l'assistance. Avec cette approche, les entreprises profitent d'un ensemble cohérent de technologies et de ressources, même si elles proviennent de créateurs différents. Les IDP peuvent également faciliter la mise en place et l'application des meilleures pratiques en matière de DevOps, ce qui favorise une collaboration plus efficace entre les équipes de développement et d'exploitation.

Les termes « portail de développement interne » et « plateforme de développement interne » sont parfois confondus. Toutefois, ils désignent deux concepts différents : le portail de développement peut servir d'interface front-end à la plateforme de développement, qui offre des fonctionnalités approfondies et une meilleure évolutivité pour les applications.

Backstage est l'un des projets Open Source les plus connus pour la création de plateformes de développement. Conçu par une équipe d'ingénierie chez Spotify, il appartient désormais à la Cloud Native Computing Foundation (CNCF). Backstage sert de base au portail Red Hat® Developer Hub, qui fournit un framework orienté et pris en charge pour la création de plateformes de développement, ainsi que des intégrations et une assistance aux entreprises.

En savoir plus sur les plateformes de développement internes

Les outils de CI/CD permettent aux équipes d'automatiser le développement, le déploiement et les tests. Certains outils gèrent spécifiquement la partie intégration (CI), d'autres le développement et le déploiement (CD), et d'autres encore les tests continus ou les fonctions connexes. La plupart de ces outils peuvent être intégrés à une IDP dans le cadre d'une approche d'ingénierie de plateforme.

Il existe de nombreux outils de CI/CD Open Source, dont voici quelques exemples :

  • Argo CD : outil de distribution continue déclaratif pour Kubernetes conforme aux pratiques GitOps. Il peut être utilisé en tant qu'outil autonome ou intégré à un workflow CI/CD pour fournir les ressources nécessaires aux clusters.
  • Red Hat OpenShift® GitOps : fonctionnalité qui repose sur Argo CD
  • Tekton : framework CI/CD pour les plateformes Kubernetes qui offre une expérience CI/CD cloud-native standard avec des conteneurs
  • Red Hat OpenShift Pipelines : outil basé sur le framework Tekton
  • Jenkins : outil d'automatisation qui prend en charge les processus CI/CD à petite et grande échelle
  • Spinnaker : plateforme de CD conçue pour les environnements multicloud
  • GoCD : serveur de CI/CD axé spécialement sur la modélisation et la visualisation
  • Concourse : outil d'automatisation adapté aux processus continus
  • Screwdriver : plateforme de création conçue pour le CD

Les équipes peuvent également opter pour des outils de CI/CD gérés, proposés par différents fournisseurs. Lorsqu'ils sont bien choisis, ces outils aident à automatiser la création, les tests et le déploiement des applications sur toutes les plateformes. 

En savoir plus sur l'approche CI/CD

L'Infrastructure-as-Code (IaC) est une approche de la gestion des infrastructures. Elle permet aux équipes d'administration d'automatiser la gestion et le provisionnement de l'infrastructure, notamment les serveurs et les machines virtuelles, ce qui coïncide avec les objectifs de l'ingénierie de plateforme.

Avec l'IaC, les caractéristiques de l'infrastructure sont définies dans des fichiers de configuration, ce qui favorise le provisionnement cohérent des environnements. Cette approche permet de modifier et de distribuer des configurations dans toute l'entreprise ; elle dissuade ainsi les changements ponctuels qui ne sont pas toujours documentés.

L'IaC s'appuie sur des outils d'automatisation des serveurs et de gestion des configurations. Red Hat Ansible® Automation Platform, Terraform, Chef, Puppet et Salt figurent parmi les outils d'automatisation qui s'alignent sur cette approche.

En savoir plus sur l'IaC

Les outils de conteneurisation occupent un rôle clé dans le travail des équipes d'ingénierie de plateforme.

Un conteneur regroupe et isole une application et son environnement d'exécution complet, c'est-à-dire tous les fichiers nécessaires à son exécution. Les applications conteneurisées s'exécutent ainsi de manière cohérente, quel que soit l'environnement ou l'infrastructure. Les conteneurs sont essentiels au développement cloud-native, une méthode qui divise de grandes applications en petits microservices indépendants et faiblement couplés.

Les équipes de développement disposent de plusieurs outils Open Source pour faciliter l'utilisation des conteneurs. Pour la création et le déploiement, elles peuvent recourir à Docker et Podman, tous deux conformes aux normes Open Container Initiative (OCI).

Pour la gestion à grande échelle, les équipes d'exploitation ont besoin de plateformes d'orchestration des conteneurs, comme le projet Open Source Kubernetes. L'orchestration des conteneurs automatise le déploiement, la gestion, la mise à l'échelle et la mise en réseau des conteneurs tout au long de leur cycle de vie.

Il existe une multitude de fournisseurs de plateformes Kubernetes. Red Hat OpenShift est un exemple de plateforme d'applications d'entreprise basée sur Kubernetes que les équipes d'ingénierie peuvent intégrer à une IDP, comme Red Hat OpenShift Developer Hub, afin d'offrir une plateforme de développement complète.

Essentielles à l'ingénierie de plateforme, la surveillance et l'observabilité permettent aux équipes d'analyser les résultats, les journaux et les indicateurs de mesure de performances pour mieux comprendre l'état d'un système ou d'une application. Avec cette visibilité, les équipes de développement et d'administration améliorent la fiabilité, les performances et la sécurité des applications et infrastructures complexes.

Reposant sur le même principe que la surveillance, l'observabilité inclut en plus l'identification des causes profondes ainsi que les prévisions et les prédictions. Il existe une multitude d'outils et de technologies d'observabilité que les entreprises peuvent associer pour créer un système adapté à leurs besoins.

Parmi les outils Open Source les plus utilisés figurent Grafana, Jaeger, OpenTelemetry et Prometheus. Red Hat OpenShift Observability est un ensemble d'outils d'observabilité compatible avec Red Hat OpenShift, qui respecte les normes OpenTelemetry.

En savoir plus sur l'observabilité

Pour faire face aux inquiétudes croissantes en matière de sécurité, les équipes de développement logiciel modernes adoptent une stratégie « shift left », qui consiste à aborder la sécurité à chaque étape du cycle de vie de développement logiciel. Il n'est plus question de garder ce paramètre pour la fin : la sécurité est prise en compte dès le lancement d'un projet.

Les équipes d'ingénierie de plateforme aident leurs collègues du développement à appliquer les mesures de sécurité tout au long du cycle de développement logiciel. Ces mesures comprennent notamment des vérifications et des tests automatisés au sein du pipeline CI/CD afin de protéger le code, d'éviter les fuites de données, de faire respecter les politiques de l'entreprise et de garantir un bon niveau d'assurance qualité.

D'autres outils de sécurité ciblent la gestion des secrets (gestion des mots de passe, des fichiers de configuration client, des informations d'identification de référentiels, etc.) ainsi que la sécurité des API, notamment la gestion des clés d'API.

Chez Red Hat, nous proposons différents outils et services conçus pour assurer la sécurité logicielle.

La gamme de solutions Red Hat Trusted Software Supply Chain aide les entreprises à réduire les vulnérabilités et à appliquer leurs politiques de sécurité. Elle inclut notamment Red Hat Trusted Profile Analyzer, Red Hat Advanced Developer Suite et Red Hat Trusted Artifact Signer.

Destinée aux déploiements Kubernetes, la solution Red Hat Advanced Cluster Security for Kubernetes protège les charges de travail conteneurisées sur toutes les plateformes, et aide à identifier et à corriger les vulnérabilités, ainsi qu'à appliquer les politiques de sécurité.

En savoir plus sur la sécurité CI/CD

Chez Red Hat, nous proposons différentes solutions pour aider les équipes d'ingénierie de plateforme à atteindre leurs objectifs. Ensemble, nos produits et services contribuent à renforcer la productivité des équipes, encourager le libre-service, accélérer l'intégration et réduire les tâches répétitives.

La plateforme d'applications d'entreprise Red Hat OpenShift permet aux équipes de développement d'utiliser leurs outils pour un large éventail d'applications, qu'elles soient déployées sur site, dans le cloud ou en périphérie du réseau.

Le portail Red Hat Developer Hub favorise l'efficacité et la collaboration tout au long du processus de développement logiciel. Il offre une plateforme ouverte et unifiée qui aide à réduire la charge cognitive et la frustration des spécialistes du développement. Red Hat Developer Hub permet de rassembler sur une IDP différents éléments du processus de développement, de rationaliser les workflows et de favoriser la collaboration interne.

Enfin, la solution Red Hat Trusted Software Supply Chain aide les équipes à intégrer la sécurité aux composants, processus et pratiques de l'usine logicielle dès le départ.

Hub

Solutions métier Red Hat Developer Hub

Une plateforme d'entreprise ouverte basée sur Backstage conçue pour créer des portails de développeurs qui consolident visuellement les éléments du processus de développement.

Red Hat OpenShift pour les ingénieurs de plateforme

Red Hat OpenShift offre aux ingénieurs de plateforme les outils nécessaires pour créer et gérer efficacement les plateformes de développement internes.

En savoir plus

Un modèle de référence pour le développement logiciel, qu'est-ce que c'est ?

Un modèle de référence, ou Golden Path en anglais, est une méthode stricte, documentée et recommandée pour créer et déployer des logiciels au sein d'une entreprise.

Ingénierie de plateforme et DevOps

Voici les différences entre l'ingénierie de plateforme et le DevOps qui permettent d'identifier l'approche adaptée aux objectifs.

Red Hat OpenShift pour les ingénieurs de plateforme

Red Hat OpenShift offre aux ingénieurs de plateforme les outils nécessaires pour créer et gérer efficacement les plateformes de développement internes.

Platform engineering : ressources recommandées

Produit recommandé

  • Red Hat Developer Hub

    Une plateforme d'entreprise ouverte basée sur Backstage conçue pour créer des portails de développeurs qui consolident visuellement les éléments du processus de développement.