Verwenden von Inventaren zum Verwalten von Ressourcen und Verhindern von Duplizierungen
Wenn Ihre Organisation wächst, so ist die Menge der Dinge, die Sie nachverfolgen müssen. Organisationen haben häufig doppelte interne Anstrengungen unternommen, da ein Team über das Projekt des anderen nicht weiß. Wenn Personen zwischen Teams wechseln, treten neue Personen dem Unternehmen bei und andere verlassen, können Projekte verwaist werden. Inventare helfen bei der Lösung dieser Probleme und sind ein wichtiger Bestandteil des Plattform-Engineerings.
Ein Bestand ist ein Tool oder System, das zum Nachverfolgen, Verwalten und Organisieren der technischen Ressourcen einer Organisation verwendet wird. Zu diesen Ressourcen gehören Code, APIs, Container, virtuelle Computer (VMs), Teamberechtigungen und vieles mehr.
Das Nachverfolgen von Vermögenswerten führt einfach zu technischen Verwüssungen und Abfällen, weil man nicht leicht erkennen kann, was bereits vorhanden ist. Der Verlust der bereits vorhandenen Elemente ist eine häufige Herausforderung.
Wir haben einen Ton von Containern oder [VM]-Instanzen, die ausgeführt werden. Können wir unsere alten virtuellen Computer löschen? Niemand weiß. Wir müssen eine Möglichkeit haben, alte Sachen zu bereinigen und richtige Tags zu verwenden, damit wir wissen, wer der Besitzer oder das Team ist, wer uns darüber informieren kann, was wir tun können und was der Lebenszyklus ist.... Wir wissen nicht, ob wir einen bestimmten virtuellen Computer herunterfahren können, da wir nicht sicher sind, was passiert. - Martin, DevOps Engineer, Große Logistikgesellschaft
Nachverfolgen von Ressourcen
Sie benötigen einen Bestand, um alle "Sachen" nachzuverfolgen, die Sie erstellt oder in Ihr Ökosystem integriert haben, die interne Kunden auf verständliche Weise visualisieren können.
Ein Bestand kann die Sicherheit verbessern, die Wiederverwendung fördern und die Ermittlung im Allgemeinen vereinfachen. Für die Nachverfolgung verschiedener Ressourcentypen stehen verschiedene Tools zur Verfügung. Jedes dieser Tools bietet einen Bestand, der Ihnen beim Verwalten, Nachverfolgen und Bereinigen von Abfällen hilft.
Zu den verfügbaren Tracking-Tools gehören:
- Mit Azure-Bereitstellungsumgebungen können Sie komplexe Infrastruktur nachverfolgen, die über Infrastruktur als Code (IaC) als abstrakte Umgebung erstellt wurde.
- Das Azure API Center bietet Entwicklern die Möglichkeit, APIs zu entdecken und zu nutzen.
- Paketregistrierungen wie GitHub-Pakete oder Azure Artifacts (oder andere Inventare genehmigter Pakete und SDKs) verbessern die Sicherheit der Lieferkette.
Berücksichtigen Sie bei der Entscheidung über die Sichtbarkeit Ihrer Bestände den besten Ansatz für Ihre Organisation. Einige Organisationen ermöglichen es allen Entwicklern, Softwareressourcen anzuzeigen, aber nur einige können sie ändern, ähnlich wie eine offene Küche. Andere, insbesondere in regulierten Branchen, beschränken den Zugriff enger, manchmal sogar die Sichtbarkeit von Projektnamen aufgrund der Vertraulichkeit.
Verbessern der Auffindbarkeit, Governance und Wiederverwendung
Ein oder mehrere Bestandssysteme, die Ihnen helfen, das zu verfolgen, was Sie haben, ist entscheidend für plattformtechnische Praktiken und die Vermeidung von technischen Sprawl. Anfangs ist eine Reihe von flachen Bestandslisten möglicherweise ausreichend. Sie können die Auffindbarkeit jedoch weiter verbessern, indem Sie Beziehungen zwischen verschiedenen Vermögenswerten in mehreren Inventaren hinzufügen. Unabhängig von der benötigten Sichtbarkeitsstufe können Teams mit einem zentralen Aggregationspunkt schnell alle verfügbaren Ressourcen suchen und ermitteln. Dies fördert die Wiederverwendung, reduziert Redundanz und stellt einen konsistenten Ansatz für die Governance her.
Berücksichtigen Sie die Beziehung zwischen einer API-Definition und dem bereitgestellten Anwendungscode, der die Schnittstelle implementiert. Dieser Code wird in einem Repository gespeichert und von einem Team verwaltet und stellt Dokumentation zur Verwendung bereit. Entwicklungs-, Test-, Prod- und sogar temporäre Sandkastenumgebungen werden erstellt. In cloudeigenen Szenarien können die Umgebungen in einem freigegebenen Kubernetes-Cluster bereitgestellt werden. Das Entwicklungsteam, das die API erstellt, und alle internen Consumer davon müssen in der Lage sein, Informationen zu jedem dieser Dinge zu erhalten, aber wie die Ressourcen miteinander zusammenhängen, ist nicht offensichtlich.
Zunächst können Sie etwas so einfaches wie eine Wiki-Seite verwenden, um nachzuverfolgen, wie sich jedes Element miteinander bezieht. Die Dokumentation ist jedoch schnell und kann schwierig sein, sowohl zu finden als auch zu analysieren. Im Idealfall verfügen Sie über ein System mit einem Beziehungsdiagramm, mit dem Benutzeroberflächen zum Durchlaufen dieser Beziehungen in Ihrem Bestand verwendet werden können. Um die Auffindbarkeit wirklich zu verbessern, müssen Sie in der Lage sein, Elemente, die in mehreren Arten von Inventaren oder Diagrammen gespeichert sind, zuzuordnen. Möglicherweise müssen Sie Inventare nicht direkt nutzen, aber Sie möchten es wahrscheinlich mit Informationen in einem API-Katalogsystem verknüpfen.
Verknüpfen von Inventaren mit relationalen Diagrammen und Katalogen
Um die Analogie des digitalen Speichers zu verwenden, kann es auch hilfreich sein, die Elemente (Vorlagen) in Ihrem Katalog mit den resultierenden Bestandsinhalten zu verknüpfen. Wenn Sie beispielsweise eine Ihrer Vorlagen erkennen, wird eine unsichere Konfiguration erstellt, müssen Sie schnell alle Ressourcen finden, die mit der Vorlage erstellt wurden, um sie zu beheben. Start right application templates are essentially starter kit bundles in this catalog that tie to other types of catalog items (like IaC templates). Wenn Sie diese Zuordnungen nachverfolgen, können Sie proaktiv jede Anwendung finden, die auf eine schlechte IaC-Vorlage verweist, auch wenn noch keine Infrastruktur bereitgestellt wurde.
Eine vereinfachte Variante dieses konzeptionellen, allgemeinen Entwicklerplattformdiagramms finden Sie in einigen Toolkits und Produkten, obwohl das, was sie genannt wird, unterschiedlich ist. Beispielsweise ruft das Open-Source-Portal-Toolkit Backstage.io diesen Softwarekatalog auf, während andere Produkte unterschiedliche Begriffe verwenden. Die meisten dieser Produkte und Toolkits gehen jedoch davon aus, dass Sie deren breitere Featureset verwenden und die Inhalte Ihrer Inventare in ihnen dupliziert werden müssen. Diese Duplizierung bedeutet, dass der Inhalt der Katalogdatenbank nicht benutzerspezifisch ist, veraltet werden kann und nicht durch die Benutzerautorisierungsmechanismen des tatsächlichen Quellsystems gesteuert wird. Dies funktioniert jedoch möglicherweise nur in Ordnung für Ihre Organisation, wenn Sie einem offenen Küchenansatz folgen.