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.

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.

Diagramm, das zeigt, wie sich das Plattform-Engineering im Laufe der Zeit weiterentwickeln kann.

Wenn Sie von Grund auf neu beginnen, stellt dies 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 schiere Größe dieses Themas empfehlen wir, zu unterteilen, wie Sie intern über Plattformtechnik 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 auf jeden "App-Stapel" (Anwendungsklasse, App-Modell, Sprachen) abzielen, die eine Organisation verwenden möchte, um geschäftswert 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.

Grafik der Kernbereiche des Plattform engineering.

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.