Definieren des Problemraums
Wenn Sie ihre interne Entwicklerplattform definieren, müssen Sie zuerst Ihre dünnste lebensfähige Plattform (TVP) definieren. Ein TVP ist eine Variante der Idee eines minimal lebensfähigen Produkts (MVP) im klassischen Produktmanagement.
Eine gute Möglichkeit, herauszufinden, welche Aufträge Teil Ihres TVP sein sollten, ist die Bewertung der Plattform-Engineering-Praktiken Ihrer Organisation mit dem Platform Engineering Capability Model. Mit dem Plattform-Engineering-Funktionsmodell können Sie sehen, was die aktuellen Plattform-Engineering-Stärken Ihrer Organisation sind und ziele für die Zukunft festlegen.
Dieses Diagramm kann Ihnen helfen, Ihre Überlegungen darüber zu orientieren, wie sich Ihre Entwicklerplattform im Laufe der Zeit weiterentwickeln kann. Denken Sie daran, dass das wichtigste Problem Ihrer Organisation dazu führen kann, dass Sie von den hier beschriebenen Informationen aufgrund ihrer vorhandenen Investitionen oder organisatorischen Anforderungen abweichen. Sie müssen nicht zur nächsten Phase wechseln, es sei denn, Ihre Organisation benötigt sie.
Wenn Sie von Grund auf neu beginnen, stellt diese Sequenz eine häufige Entwicklung dar. Konzentrieren Sie sich in den frühen Phasen auf die Ermittlung der benötigten Funktionen, die Analyse von Schrumpfprodukten und die Erstellung der minimalen Anzahl von Tools oder Plattformfunktionen. Als Nächstes beginnen Sie, während Sie skalieren, sich wahrscheinlich auf die Wiederverwendbarkeit zu konzentrieren und Personen durch wiederverwendbare Ressourcen nach unten zu leiten. Schließlich bewegen Sie sich zu einem verbraucherähnlichen Digitalen Store-Modell, um das Erstellen und Verwalten von Anwendungen zu vereinfachen. Sie sollten eine produktbezogene Denkweise verfolgen, daher empfehlen wir nicht, zum Ende zu springen und Ihre spezifische Reise variiert. Diese letzten Phasen ähneln dem schrumpfenden Produkt im herkömmlichen Sinne, aber dies ist ein Ziel, kein Ausgangspunkt.
Themenbereiche des Plattform-Engineerings
Angesichts der Größe dieses Themas empfehlen wir, zu unterteilen, wie Sie intern über Plattform-Engineering in vier Themenbereiche sprechen:
Engineering-Systeme: Eine kuratierte Mischung aus DevOps-Suites wie GitHub und Azure DevOps und anderen Entwicklertools und -diensten. Neben wichtigen DevOps-Tools und -Diensten wie CI/CD oder Paketverwaltung umfasst dieser Bereich auch Funktionen, die direkt während des Codierungsprozesses wie cloudbasierte Codierungsumgebungen, Codescanner und Liter sowie KI-Assistenten wie GitHub Copilot verwendet werden.
Anwendungsplattform: Eine kuratierte Auswahl von Diensten (z. B. IaaS, PaaS und Observability), die für jeden App-Stapel (Anwendungsklasse, App-Modell, Sprachen) bestimmt sind, die eine Organisation verwenden möchte, um einen Geschäftlichen Wert zu erzielen. Dies umfasst eine Mischung aus app-stapelspezifischen Diensten sowie gängigen Diensten, die überall verwendet werden. Ein Beispiel für eine Anwendungsplattform könnte Azure Container-Apps, Cosmos DB für Speicher, Azure Key Vault für Geheime Schlüssel, für Identitäts- und rollenbasierte Zugriffssteuerung, Azure-Richtlinie für Compliance und Überwachung, Observability über Grafana und eine zugehörige Netzwerktopologie umfassen.
Anwendungsvorlagen: Eine Reihe von klar definierten, von der Organisation erstellten, Schnellstartvorlagen, die den Start richtig kapseln und die richtigen Anleitungen für eine bestimmte Anwendungsplattform, Sprache und Reihe von Engineering-Systemen beibehalten. Sie können auf andere zentralisierte Vorlagen verweisen und Startcode, API- und SDK-Verweise, CI/CD-Pipelines, Toolkonfigurationen und vieles mehr bereitstellen.
Self-Service-Funktionen für Entwickler: Dies ist der Klebstoff für Ihren Plattform-Engineering-Aufwand. Es ist eine Kombination aus APIs, Orchestratoren, einem Katalog, Vorlagen und Benutzeroberflächen, die entwickelt wurden, um die Entwicklerfreundlichkeit zu reduzieren und Es Entwicklungsteams zu ermöglichen, sich selbst zu bedienen und autonomer zu sein, während sie weiterhin Auswahlen und Anleitungen/Governance aus den vorherigen drei Bereichen einhalten.
Die Integration von Engineering-Systemen, Anwendungsplattformen, Anwendungsvorlagen und Self-Service-Funktionen für Entwickler bildet den Grundstein einer Plattform-Engineering-Strategie. Durch die Kombination von DevOps-Tools, Clouddiensten und Self-Service-Funktionen können Organisationen den Entwickleraufwand erheblich reduzieren, die Produktivität steigern und die Einhaltung von Governancestandards sicherstellen.