Text size
Ausprobiert & getestet6 Min. Lesezeit

Ich habe Backstage eingerichtet. Das ist passiert.

Ein Software-Katalog, eine Vorlage und Dokumente an einem Ort. Und die Teile, vor denen man nicht gewarnt wird.

I set up Backstage. Here's what happened
KI-generierte Illustration

Hinter den Kulissen kommt in fast jeder Diskussion über Plattform-Engineering. Spotify hat es gebaut, es als Open Source-Programm entwickelt, es an die CNCF gespendet, und jetzt ist es die Standardantwort auf "Wie bauen wir ein Entwicklerportal?"

Ich wollte wissen, wie es wirklich ist, zu laufen, jenseits der Konferenz-Demos. Also habe ich es von Grund auf mit einem realistischen Ziel aufgebaut: einen Service-Katalog, eine Softwarevorlage und Dokumentation an einem Ort.

Warum ich es versucht habe

Das Problem, das Backstage löst, ist sehr real. In den meisten Unternehmen kann niemand einfache Fragen schnell beantworten. Wem gehört dieser Dienst? Wo ist die Dokumentation? Welche Pipeline setzt sie ein? Worauf hängt es an?

Die Antworten sind über Wikis, Tabellen, Slack-Threads und das Gedächtnis der Menschen verstreut. Hinter den Kulissen verspricht ein Ort, wo man alles finden kann.

Der Katalog läuft

Eine lokale Instanz zu bekommen ist einfach. Sie brauchen Node.js und Yarn, dann:

npx @backstage/create-app@latest
cd my-backstage-app
yarn start

Ein paar Minuten später gibt es ein Portal auf localhost:3000- Ich weiß . Die erste Überraschung: Was Sie geschaffen haben, ist kein Produkt, das Sie konfigurieren. Es ist eine Anwendung, die du besitzt. Du wirst von jetzt an eine TypeScript-Codebasis unterhalten.

Der Katalog funktioniert, indem er eine kleine YAML-Datei aus jedem Repository liest:

apiVersion: backstage.io/v1alpha1
kind: Component
metadata:
  name: shop-api
  description: Handles orders and payments
  annotations:
    github.com/project-slug: my-org/shop-api
spec:
  type: service
  lifecycle: production
  owner: team-checkout

Fügen Sie das hinzu. catalog-info.yaml Sie können Backstage auf Ihre GitHub-Organisation zeigen und Services erscheinen. Dieser Teil fühlte sich wirklich gut an. Jeder Dienst, sein Eigentümer und seine Links in einer Liste zu sehen, ist bereits nützlich.

Meine erste Softwarevorlage

Vorlagen sind, wo Backstage eine Plattform anstelle eines Verzeichnisses wird. Eine Vorlage ist ein Formular plus eine Reihe von Schritten: Fragen Sie den Entwickler ein paar Fragen, kopieren Sie ein Skelett, füllen Sie die Werte aus, erstellen Sie ein Repository, registrieren Sie es im Katalog.

Die Vorlage YAML braucht ein wenig Zeit, um sich daran zu gewöhnen, aber das Ergebnis ist großartig: Ein Entwickler füllt einen Namen und ein Team ein, klickt auf "Erstellen" und bekommt ein neues Repo mit einer Pipeline und einem Katalogbeitrag. Das ist der goldene Pfad in Aktion.

Die Plugins, die es wert sind, zu installieren

Das Plugin-Ökosystem ist groß. Die, die ich zuerst hinzufügen würde:

  • Die Tabelle 1 enthält folgende Angaben:: zeigt die Module und die Einsätze für jeden Dienst.
  • GitHub-Aktionen (oder Ihr CI): die aktuelle Pipeline läuft direkt auf der Service-Seite.
  • TechDocsMarkdown-Dokumente aus dem Repo, hinter den Kulissen gerendert.
  • Suche: macht das Ganze nutzbar, wenn man mehr als eine Handvoll Dienstleistungen hat.

Hinter den Kulissen ist weniger wie eine App installieren und mehr wie ein Haustier adoptieren. Es ist lieblich, aber es muss jede Woche gefüttert werden.

Was mich nervt

Es ist ein Rahmenwerk, kein Produkt. Alles, was über die Grundlagen hinausgeht, bedeutet, dass man TypeScript und React schreibt. Wenn Ihr Team keine Frontend-Fähigkeiten hat, planen Sie dafür.

Upgrades erfordern Mühe. Hinter den Kulissen geht es schnell. Die Weiterentwicklung der Releases und die Migration auf neuere Backend- und Frontend-Systeme ist eine laufende Arbeit.

Der Katalog läuft ab. Besitzer wechseln, Dienstleistungen werden ausgesetzt, YAML-Dateien werden veraltet. Ohne dass sich jemand um die Datenqualität kümmert, wird der Katalog langsam zum nächsten veralteten Wiki.

Authentifizierung und Berechtigungen Wir brauchen eine echte Konfiguration, bevor wir es über eine Demo hinaus ausführen können.

Würde ich es empfehlen?

Für eine Firma mit vielen Teams und Dutzenden von Dienstleistungen, ja. Sobald es eingerichtet ist, ist es ein starkes Fundament, und nichts anderes Open Source kommt in die Nähe.

Für ein kleines Team mit zehn Diensten, wahrscheinlich noch nicht. Eine gute README-Vorlage und eine Liste der Dienste in Ihrem Wiki könnte Ihnen 80% des Wertes für 5% der Anstrengung geben. Und wenn Sie ein Portal ohne Ausführen wollen, schauen Sie sich die SaaS-Optionen an.

Meine Meinung: Backstage ist eine großartige Plattform, um Ihr Portal zu bauen, nicht ein Portal, das Sie einfach einschalten. Geht da rein, und es lohnt sich.

Desly