Partager via


Utiliser des inventaires pour gérer les ressources et empêcher la duplication

Au fur et à mesure que votre organisation augmente, la quantité de choses dont vous avez besoin pour effectuer le suivi. Les organisations ont souvent dupliqué des efforts internes, car une équipe ne connaît pas le projet de l’autre. À mesure que les personnes se déplacent entre les équipes, de nouvelles personnes rejoignent l’entreprise et d’autres quittent, les projets peuvent devenir orphelins. Les inventaires aident à résoudre ces problèmes et font partie intégrante de l’ingénierie de plateforme.

Un inventaire est un outil ou un système utilisé pour suivre, gérer et organiser les ressources techniques d’une organisation. Ces ressources incluent du code, des API, des conteneurs, des machines virtuelles, des autorisations d’équipe, etc.

Le fait de ne pas suivre les ressources entraîne une expansion technique et des déchets simplement parce que vous ne pouvez pas facilement découvrir ce qui existe déjà. Perdre la trace de ce qui existe déjà est un défi commun.

Nous avons une tonne d’instances de conteneurs ou de [machine virtuelle] en cours d’exécution. Pouvons-nous supprimer nos anciennes machines virtuelles ? Personne ne sait. Nous devons trouver un moyen de nettoyer les vieilles choses et d’utiliser des étiquettes appropriées afin que nous savons qui est le propriétaire ou l’équipe qui peut nous informer sur ce que nous pouvons faire et ce que le cycle de vie est.... Nous ne savons pas si nous pouvons arrêter une machine virtuelle particulière, car nous ne sommes pas certains de ce qui se passera. - Martin, Ingénieur DevOps, Grande Société Logistique

Suivre les ressources

Vous avez besoin d’un inventaire pour suivre toutes les choses que vous avez créées ou créées dans votre écosystème que les clients internes peuvent visualiser de manière compréhensible.

Un inventaire peut améliorer la sécurité, promouvoir la réutilisation et faciliter généralement la découverte. Différents outils sont disponibles pour le suivi de différents types de ressources. Chacun de ces outils fournit un inventaire pour vous aider à gérer, suivre et nettoyer les déchets.

Les outils de suivi disponibles sont les suivants :

  • Les environnements de déploiement Azure vous permettent de suivre l’infrastructure complexe créée via l’infrastructure en tant que code (IaC) en tant qu’environnement abstrait.
  • Le Centre d’API Azure permet aux développeurs de découvrir et d’utiliser des API.
  • Les registres de packages tels que GitHub Packages ou Azure Artifacts (ou d’autres inventaires de packages approuvés et sdk) améliorent la sécurité de la chaîne d’approvisionnement.

Lorsque vous décidez de la visibilité de vos inventaires, envisagez la meilleure approche pour votre organisation. Certaines organisations permettent à tous les développeurs de voir les ressources logicielles, mais seuls quelques-uns peuvent les modifier (comme une cuisine ouverte). D’autres, en particulier dans les secteurs réglementés, limitent l’accès plus étroitement, parfois même en limitant la visibilité aux noms de projet en raison de la sensibilité.

Améliorer la détectabilité, la gouvernance et la réutilisation

Avoir un ou plusieurs systèmes d’inventaire qui vous aident à suivre ce que vous avez est essentiel pour les pratiques d’ingénierie de plateforme et éviter l’expansion technique. Initialement, avoir un ensemble de listes d’inventaire plats peut suffire. Toutefois, vous pouvez améliorer davantage la détectabilité en ajoutant des relations entre différentes ressources entre plusieurs inventaires. Quel que soit le niveau de visibilité dont vous avez besoin, avoir un point d’agrégation centralisé permet aux équipes de rechercher et de découvrir rapidement toutes les ressources disponibles. Cela favorise la réutilisation, réduit la redondance et établit une approche cohérente de la gouvernance.

Considérez la relation entre une définition d’API et le code d’application déployé qui implémente l’interface. Ce code est stocké dans un référentiel et géré par une équipe et fournit de la documentation sur son utilisation. Les environnements de développement, de test, de production et même de bac à sable temporaire sont créés. Dans les scénarios natifs cloud, les environnements peuvent être déployés dans un cluster Kubernetes partagé. L’équipe de développement qui crée l’API et tous les consommateurs internes de celui-ci doivent être en mesure d’obtenir des informations sur chacune de ces choses, mais la façon dont les ressources se rapportent n’est pas évidente.

Pour commencer, vous pouvez utiliser quelque chose aussi simple qu’une page wiki pour vous aider à suivre la façon dont chaque chose se rapporte l’une à l’autre. Mais la documentation vieillit rapidement et peut être difficile à trouver et analyser. Dans l’idéal, vous disposez d’un système avec un graphique de relation qui peut alimenter les interfaces utilisateur pour parcourir ces relations dans votre inventaire. Pour améliorer réellement la détectabilité, vous devez pouvoir associer des éléments stockés dans plusieurs types d’inventaires ou de graphiques. Vous n’avez peut-être pas besoin d’utiliser des inventaires directement, mais vous souhaiterez probablement l’associer à des informations dans un système de catalogue d’API.

Pour utiliser l’analogie du magasin numérique, il peut également être utile d’associer les éléments (modèles) de votre catalogue au contenu d’inventaire résultant. Par exemple, si vous réalisez que l’un de vos modèles crée une configuration non sécurisée, vous devez rapidement trouver toutes les ressources créées avec le modèle pour les corriger. Démarrez les modèles d’application appropriés sont des bundles de kit de démarrage dans ce catalogue qui sont liés à d’autres types d’éléments de catalogue (comme les modèles IaC). Le suivi de ces associations vous permet de trouver de manière proactive toutes les applications qui référencent un modèle IaC incorrect, même si aucune infrastructure n’est encore provisionnée.

Une variante simplifiée de ce graphe de plateforme de développement de haut niveau conceptuel est disponible dans quelques boîtes à outils et produits aujourd’hui, bien que ce qu’on appelle varie. Par exemple, le kit de ressources du portail open source Backstage.io appelle ce catalogue de logiciels, tandis que d’autres produits utilisent des termes différents. Toutefois, la plupart de ces produits et boîtes à outils supposent que vous utilisez leur ensemble de fonctionnalités plus large et que vous exigez que le contenu de vos inventaires soit dupliqué à l’intérieur d’eux. Cette duplication signifie que le contenu de la base de données catalogue n’est pas spécifique à l’utilisateur, peut devenir obsolète et n’est pas contrôlé par les mécanismes d’autorisation utilisateur réels du système source. Toutefois, cela peut fonctionner correctement pour votre organisation si vous suivez une approche de cuisine ouverte.