Fördern von Entwicklern durch Self-Service mit Schutzschienen

Self-Service mit Guardrails ist das Prinzip, Entwicklungsteams zu befähigen, ihre eigenen Entscheidungen innerhalb einer Reihe von klar definierten Parametern oder Schutzläufen zu treffen. Guardrails werden von wichtigen Beteiligten eingerichtet und vereinbart. Projektbeteiligte können Sicherheits-, Betriebs- und Architekturteams in der gesamten Organisation umfassen.

Mit Self-Service mit Schutzschienen behalten Entwicklungsteams die Autonomie bei, um eigenständig Entwicklungsentscheidungen zu treffen. Automatisierung und Richtlinien helfen Interessengruppen dabei, sicherzustellen, dass Sicherheit, Compliance, Vorgänge, Standards und Kosten ordnungsgemäß verwaltet werden. Für die Aktivierung dieser Automatisierung ist eine Zusammenarbeit über Teamlinien hinweg erforderlich, damit Entwickler, Operatoren und Spezialisten mehr tun können, ohne die erforderliche Governance zu beeinträchtigen. Entwickler können sich dann so schnell wie möglich auf die Bereitstellung von Geschäftswerten konzentrieren.

[Wir sagen Entwicklern,] machen Sie sich keine Gedanken darüber, wie alles funktioniert, schalten Sie sie einfach ein oder aus, füllen Sie sie aus, geben Sie eine Zeichenfolge in das, was Sie tun müssen, und es ist im Grunde selbstbedienung in dieser Hinsicht, wo sie über eine Readme-Datei verfügen und über Eingaben, Ausgaben und sie können alles, was sie mögen, einfügen. - Daniel, Cloud Engineer, Fortune 500 Media Company

Das Ziel der Bereitstellung einer Self-Service-Erfahrung für Ihre gepflasterten Pfade besteht darin, den Entwickleraufwand zu reduzieren und gleichzeitig Sichtbarkeit für Entwicklungsteams, Vorgänge und Management zu bieten. Die Idee ist, dass Sie eine Erfahrung für eine bestimmte Aufgabe erstellen, die eine minimale Lernkurve aufweist, dank ihrer zugrunde liegenden Automatisierungs- und Datenaggregationsfunktionen. Über Aktivitäten wie die Infrastrukturbereitstellung hinaus können diese Erfahrungen Zugriff auf kritische Funktionen für Observability, Richtlinie, Vorfallverwaltung und vieles mehr bieten. Die Idee erstreckt sich auf die Ermittlung und Freigabe interner APIs, SDKs sowie auf gemeinsame Tools und Dienste. Diese Erfahrungen reduzieren den Aufwand, sodass sich Entwicklungsteams auf das Erledigen von Aufgaben konzentrieren können.

Interne Entwicklerplattformen ermöglichen Entwicklern, wie Kunden im digitalen Storefront zu handeln

Interne Entwicklerplattformen bieten ähnliche Funktionen wie business-to-business digital storefronts. Digitale Stores sind inhärent so konzipiert, dass sie ihren Kunden helfen, sich selbst zu bedienen. Sie können mehr Durchsatz als herkömmliche Ladenfronten verarbeiten, da sie Möglichkeiten bieten, Elemente zu entdecken und zu erfüllen, die interessant sind, ohne mit jemandem sprechen zu müssen. Mit dieser Analogie sind Entwickler der Kunde und die interne Entwicklerplattform bietet ähnliche Self-Service-Erfahrungen. Ähnlich wie ein Einzelhändler, Betreiber, Plattformingenieure und andere Rollen können Entwickler dann einen Katalog von Elementen einrichten, die für die Aufnahme von Organisationsschutzschienen konzipiert sind.

So können Sie beispielsweise einen Entwickler überlegen, der Zugriff auf ein neues Tool anfordert, als ob er eine Bestellung im digitalen Storefront erstelle. Wie bei einer Bestellung möchte der Entwickler den Fortschritt nachverfolgen und wissen, wann die Anforderung abgeschlossen ist. Hinter den Kulissen sollte die Anforderung automatisch an den richtigen Erfüllungsanbieter weitergeleitet werden, um den Bedarf zu erfüllen. Sie können sich eines Ihrer kontinuierlichen Integrations- und Bereitstellungssysteme (CI/CD) als einen Erfüllungsanbieter, ein GitOps-Tool oder eine präskriptive Anwendungsplattform als Sekunde und ein Workflowautomatisierungstool für manuelle Prozesse als Dritte vorstellen. In allen Fällen kann der Entwickler Elemente aus einem gut definierten Katalog auf die gleiche Weise selbst bedienen.

Alles als Codemuster verwenden

Die Verwendung der Infrastruktur als Code (IaC) durch Cd-Pipelines (Continuous Delivery, Continuous Delivery, CD) und GitOps-Tools ist ein wichtiger Bestandteil der Self-Service-Aktivierung. Mit IaC mit CD können Sie Bicep- und Terraform-, Helm-Diagramme und andere Tools verwenden, um Cloudressourcen bei Bedarf zu erstellen und zu zerstören. Da die Konfiguration Ihrer Cloudinfrastruktur wie Code in einem Quellcoderepository verwaltet wird, können Sie alle Vorteile eines Git-Repositorys wie Sicherheit und Auditierbarkeit anwenden.

Die Bereitstellung allgemeiner Infrastruktur und Tools ist nicht der einzige Vorteil eines IaC-Ansatzes. Sie können das Codemuster für andere Szenarien anpassen, einschließlich Sicherheit als Code und Richtlinie als Code (über Tools wie Azure Policy und Open Policy Agent). Nach diesem Verfahren wird eine Konfigurationsdatei, in der Regel YAML oder JSON, in das Repository verschoben, an dem an diesem Punkt ein Workflow ausgelöst wird, der die Datei verarbeitet. Diese Dateien können ein App-Repository wie dependabot.yml oder CODEOWNERS sein oder in einem separaten zentralen Repository verwaltet werden. Sie können dies sogar in Ihre eigenen Szenarien erweitern, um wirklich alles als Code (EaC) zu einer Realität zu machen.

Entwickler können auf jede dieser EaC-Vorlagen mit einem zentralen Katalog verweisen, der Ihre Self-Service-Erfahrungen unterstützt und standardmäßig bewährte Methoden fördert.

Erstellen sie richtige Vorlagen, und richten Sie die richtige Governance ein

Bei der Softwareentwicklung wollen wir beim Entwerfen von Anwendungen Kapselung, Modularität und Kompositibilität erreichen. Sie sollten diese Art des Denkens auf Plattformtechnik durch Vorlagen anwenden. Sie können z. B. eine Reihe zentral gesicherter, wiederverwendbarer IaC-Vorlagen als Bausteine für die Infrastruktur erstellen und verwenden.

Wir werden Module für unsere [Entwickler]... Anstatt sich also um einen der Back-End-Elemente selbst zu schreiben oder zu sorgen, müssen sie sich nur gedanken über ihren Anwendungscode machen. - Daniel, Cloud Engineer, Fortune 500 Media Company

Kombinieren Sie IaC-, EaC- und Anwendungsvorlagen in einer maßgeschneiderten Lösung als Codelösung (EaC), die sich auf andere Aktivitäten wie das Erstellen eines Quellcode-Repositorys, das Seeding-Beispielcode oder das Bereitstellen von Konfigurations- und Beispielcode für empfohlene Observability-Tools erstreckt. Diese IaC-, EaC- und Anwendungsvorlagen können dann von einem zentralen, gesicherten Speicherort wie einem Repository, dem Katalog in Azure Deployment Environments (ADE) oder der Azure Container Registry (ACR) für cloudnativ gespeichert oder referenziert werden.

Wenn Sie die richtigen Vorlagen starten, mit automatisierter Governance, Überprüfung und Richtlinienkonfiguration kombiniert werden, bleiben Entwickler direkt vom ersten Tag an.

Grafik des Plattform engineering start right and stay right template overview.

Vorlagen optimieren die Entwicklung mit automatisierten, sicheren Methoden

Verwenden Sie Anwendungsvorlagen, um Ihre definierten gepflasterten Pfade für mehrere wichtige Entscheidungen und Aktionen zu bootstrapieren, die Entwickler im Verlauf eines Projekts ausführen. Beginnen Sie mit richtigen Vorlagen sichere, geregelte Entwicklungsmethoden, und ermöglichen Sie Entwicklern, schnell loszulegen, indem Sie Automatisierung aktivieren, die Zugriff auf die benötigten Tools bietet, CI/CD-Pipelines konfiguriert, die Infrastruktur und den Anwendungsstapel bereitstellt und ein Repository vollständig mit Code aus der Kesselplatte konfigurieren, der erforderliche SDKs oder Verweise auf APIs enthält.

Wenn diese Anwendungsvorlagen auf andere zentralisierte Vorlagen verweisen (z. B. IaC-Vorlagen), werden alle diese einzelnen Bausteine zu eigenen Vorlagen. Diese Vorlagen sind zentral, um Self-Service-Erfahrungen zu ermöglichen, da sie nicht nur Ausgaben definieren, sondern auch verfügbare Optionen, aus denen Entwickler wählen.

Vorlagen sorgen für Governance, Sicherheit und Kostenoptimierung

Vorlagen sollten jedoch mehr tun als nur bootstrapping einen Entwicklungsaufwand. Sie sollten auch die Kontrolle und Governance durch Richtlinien- und Sicherheitsüberprüfungen einrichten, die erforderlich sind, um im Verlauf des Projektlebenszyklus direkt zu bleiben. Als weiteres Beispiel können Vorlagen Verzweigungsschutzregeln einrichten, die nicht autorisierte Zusammenführungen in die Produktion verhindern. Da Vorlagen bewährte Methoden und allgemeine Konfigurationen erfassen, sind sie eine der wichtigsten Techniken zur Optimierung der Kosten für Tools, Anbieter und Teams.

Führen Sie die richtigen Kampagnen aus, um bidirektionale Kommunikation zu erstellen

Schließlich können Sie die zugrunde liegenden Bausteine verwenden, die Sie in Ihre Anwendungsvorlagen zusammengestellt haben, um vorhandene Anwendungen in einen gepflasterten Pfad zu verschieben. Da Ihre internen Kunden bereits den Wert Ihrer pilotierten gepflasterten Pfade sehen, können Sie eine interne Get Right-Kampagne ausführen, um ein bidirektionales Dialogfeld mit anderen Anwendungsteams zu erstellen. Entwickler können erfahren, wie Sie ihre Anwendung migrieren, während das Plattform-Engineering-Team gleichzeitig mehr darüber erfahren kann, wie Sie die Plattform für sie verbessern können.

Erstellen einer eigenen Reise

Angesichts der Breite der Erfahrungen, die Ihre Self-Service-Funktionen abdecken könnten, ist es ein wichtiger Schwerpunkt für Ihre Investitionsbemühungen und Planung und Priorisierung , damit Ihre interne Entwicklerplattform einen inkrementellen Wert liefert. Die Reise jeder Organisation bei der Erstellung ihrer internen Entwicklerplattform unterscheidet sich, und das Folgen einer Produkt-Denkweise hilft Ihnen, die wichtigsten Orte zu erreichen, die zuerst Self-Service-Erfahrungen benötigen.