Définir l’espace du problème
Lorsque vous vous dirigez vers la définition de votre plateforme de développement interne, vous devez d’abord définir votre plateforme viable la plus mince (TVP). Un programme TVP est une variante de l’idée d’un produit minimum viable (MVP) dans la gestion classique des produits.
Une bonne façon de déterminer quels travaux doivent faire partie de votre programme TVP consiste à évaluer les pratiques d’ingénierie de plateforme de votre organisation avec le modèle de capacité d’ingénierie de plateforme. Le modèle de capacité d’ingénierie de plateforme peut vous voir quels sont les atouts actuels de l’ingénierie de plateforme de votre organisation et définir des objectifs pour l’avenir.
Ce diagramme peut vous aider à orienter votre réflexion sur la façon dont votre plateforme de développement peut évoluer au fil du temps. N’oubliez pas que le problème principal de votre organisation peut vous amener à vous écarter de ce qui est décrit ici en raison de vos investissements existants ou des besoins organisationnels. Vous n’avez pas besoin de passer à la phase suivante, sauf si votre organisation en a besoin.
Si vous commencez à partir de zéro, cette séquence représente une progression commune. Dans les premières étapes, concentrez-vous sur la découverte des fonctionnalités nécessaires, l’analyse de l’écart d’ajustement des produits encapsulés et la création des outils ou fonctionnalités de plateforme de nombre minimal. Ensuite, à mesure que vous effectuez une mise à l’échelle, vous commencerez probablement à vous concentrer sur la réutilisabilité et guider les personnes vers le bas des chemins prédéfinis avec des ressources réutilisables. Enfin, vous passez à un modèle de magasin numérique de type consommateur pour faciliter la création et la maintenance d’applications. Vous devez suivre un état d’esprit de produit tout au long, donc nous vous déconseillons de sauter à la fin et votre parcours spécifique varie. Ces dernières phases ressemblent le plus à un produit encapsulé encapsulé dans le sens traditionnel, mais il s’agit d’une destination, pas d’un point de départ.
Domaines de rubriques d’ingénierie de plateforme
Compte tenu de la taille de cette rubrique, nous vous recommandons de décomposer la façon dont vous parlez de l’ingénierie de plateforme en interne en quatre domaines :
Systèmes d’ingénierie : combinaison organisée de suites DevOps telles que GitHub et Azure DevOps et d’autres outils et services de développement. Au-delà des outils et services DevOps critiques tels que ci/CD ou gestion des packages, ce domaine inclut également des fonctionnalités utilisées directement pendant le processus de codage, comme les environnements de codage cloud, les scanneurs de code et les litres, et les assistants IA comme GitHub Copilot.
Plateforme d’application : sélection organisée de services (comme IaaS, PaaS et observabilité) qui ciblent chaque pile d’applications (classe d’application, modèle d’application, langages) qu’une organisation souhaite utiliser pour offrir une valeur métier. Cela inclut un mélange de services spécifiques à la pile d’applications, ainsi que des services courants utilisés dans tout le monde. Un exemple de plateforme d’applications peut inclure Azure Container Apps, Cosmos DB pour le stockage, Azure Key Vault pour les secrets, pour le contrôle d’accès en fonction des identités et des rôles, Azure Policy pour la conformité et l’audit, l’observabilité via Grafana et une topologie de réseau associée.
Modèles d’application : ensemble de modèles bien définis, créés par l’organisation, qui encapsulent les modèles de démarrage rapide qui encapsulent le bon démarrage et restent des conseils appropriés pour une plateforme d’application, un langage et un ensemble de systèmes d’ingénierie donnés. Ils peuvent référencer d’autres modèles centralisés et fournir du code de démarrage, des références API et sdk, des pipelines CI/CD, une configuration d’outils, etc.
Fonctionnalités en libre-service du développeur : il s’agit de la colle pour votre effort d’ingénierie de plateforme. Il s’agit d’une combinaison d’API, d’orchestrateurs, d’un catalogue, de modèles et d’expériences utilisateur conçues pour réduire la taille des développeurs et permettre aux équipes de développement de se servir et d’être plus autonomes, tout en respectant les sélections et les conseils/gouvernance des trois domaines précédents.
L’intégration de systèmes d’ingénierie, de plateformes d’applications, de modèles d’application et de fonctionnalités en libre-service pour les développeurs constitue la pierre angulaire d’une stratégie d’ingénierie de plateforme. En combinant des outils DevOps, des services cloud et des fonctionnalités en libre-service, les organisations peuvent réduire considérablement la difficulté des développeurs, améliorer la productivité et garantir la conformité aux normes de gouvernance.