Was ist Atlassian Compass? Ein Leitfaden zum Verstehen und Katalogisieren Ihrer Microservices

Mit der zunehmenden Verbreitung von verteilten Architekturen wie Microservices stehen Softwareentwicklungsteams vor einer wachsenden Herausforderung: Komplexität. Die Natur von Microservices – kleine, unabhängige Dienste, die miteinander kommunizieren – kann zu einer unübersichtlichen und verwirrenden Landschaft aus Komponenten, Abhängigkeiten und Zuständigkeiten führen. An dieser Stelle wird ein Komponenten-Katalog nicht nur zu einem nützlichen, sondern zu einem entscheidenden Werkzeug, um Ordnung zu schaffen und Entwickler zu unterstützen. Dieser Leitfaden führt Sie in das Konzept eines Komponenten-Katalogs ein und bietet einen umfassenden Überblick über Atlassians Lösung: Compass.

Das Problem: Wildwuchs bei Microservices und kognitive Belastung

Bevor wir uns der Lösung zuwenden, ist es wichtig, das Problem zu verstehen. In einer monolithischen Architektur arbeiten Entwickler in einer einzigen, einheitlichen Codebasis. Obwohl dies seine eigenen Herausforderungen mit sich bringt, ist das Verständnis der Systemgrenzen relativ einfach. In einer Microservices-Architektur kann eine einzelne Anwendung aus Dutzenden oder sogar Hunderten von Diensten bestehen, von denen jeder seine eigene Codebasis, APIs und Deployment-Pipeline hat. Diese Verteilung erzeugt eine erhebliche kognitive Belastung (cognitive load) für Entwickler.

Die Beantwortung grundlegender Fragen kann zu einer zeitaufwändigen Untersuchung werden:

  • Wer ist für diesen Dienst verantwortlich?
  • Was macht diese API?
  • Was sind die Upstream- und Downstream-Abhängigkeiten dieser Komponente?
  • Ist dieser Dienst stabil und bereit für die Produktion?
  • Wo finde ich die Dokumentation für diese Bibliothek?

Ohne eine zentrale Informationsquelle (Single Source of Truth) verbringen Entwickler wertvolle Zeit mit der Suche nach Informationen, anstatt neue Funktionen zu entwickeln. Genau dieses Problem soll ein Komponenten-Katalog lösen.

Was ist ein Komponenten-Katalog und warum er gebraucht wird?

Ein Komponenten-Katalog ist ein zentralisiertes, durchsuchbares Verzeichnis aller Softwarekomponenten in Ihrer Organisation samt der zugehörigen Metadaten. Er fungiert als Landkarte Ihres gesamten Software-Ökosystems und bietet Entwicklern eine zentrale Anlaufstelle (Single Pane of Glass), um die benötigten Komponenten zu entdecken, zu verstehen und zu nutzen.

Die Hauptvorteile eines Komponenten-Katalogs sind:

the main advantages of Atlassian compass

Was genau ist Atlassian Compass?

Atlassian Compass ist eine Developer-Experience-Plattform und ein internes Entwicklerportal, das Teams dabei helfen soll, die Komplexität verteilter Architekturen zu bewältigen. Compass wurde 2022 eingeführt und ist seit Oktober 2023 allgemein verfügbar. Es bietet einen einheitlichen Komponenten-Katalog, Zustandsüberwachung und Erweiterbarkeit, um einen zentralen Hub für Ihre Engineering-Organisation zu schaffen.

Im Kern ist Compass darauf ausgelegt, drei grundlegende Fragen für jede Komponente zu beantworten:

  1. Was ist es? (Beschreibung, Typ, Dokumentation)
  2. Wem gehört es? (Zuständiges Team, Bereitschaftsplan)
  3. Ist es stabil? (Zustands-Scorecards, Metriken, letzte Aktivitäten)

Hauptfunktionen von Atlassian Compass

Compass basiert auf drei Hauptpfeilern: dem Komponenten-Katalog, den Health Scorecards und der Erweiterbarkeit.

1. Der Komponenten-Katalog

Das Herzstück von Compass ist der umfassende Katalog von Softwarekomponenten. Eine Komponente ist jedes Ergebnis eines Engineering-Teams, wie z. B. ein Dienst, eine Bibliothek, eine Anwendung oder eine API. Der Katalog bietet eine detaillierte 360-Grad-Ansicht jeder Komponente, einschließlich:

  • Zuständigkeit: Das Team, das die Komponente besitzt und wartet.
  • Abhängigkeiten: Eine Karte der Upstream- und Downstream-Abhängigkeiten.
  • Aktivitäts-Feed: Eine Echtzeitansicht von Ereignissen wie Deployments und Vorfällen.
  • Verknüpfte Ressourcen: Schneller Zugriff auf Dokumentation in Confluence, Repositories in Bitbucket, Projekte in Jira und mehr.

Diese zentralisierte Ansicht reduziert drastisch die Zeit, die Entwickler mit der Suche nach Informationen verbringen, sodass sie im Flow bleiben und sich auf ihre Arbeit konzentrieren können.

2. Health Scorecards

Eine der leistungsstärksten Funktionen von Compass sind die Scorecards. Mit Scorecards können Sie die Best Practices Ihrer Organisation kodifizieren und auf Ihre Komponenten anwenden, um deren Zustand und Bereitschaft zu messen. Anstatt manuell zu prüfen, ob ein Dienst die Produktionsanforderungen erfüllt, können Sie eine Scorecard definieren, die die Einhaltung automatisch verfolgt.

Jede Scorecard besteht aus einer Reihe von gewichteten Kriterien. Eine „Production Readiness“-Scorecard könnte beispielsweise Kriterien wie die folgenden enthalten:

  • Hat die Komponente einen definierten Eigentümer?
  • Ist ein Bereitschaftsplan konfiguriert?
  • Ist die Dokumentation auf dem neuesten Stand?
  • Hat sie eine bestimmte Testabdeckung erreicht?
  • Hat sie einen aktuellen Sicherheits-Scan bestanden?

Compass liefert dann einen Zustands-Score für jede Komponente, der den Teams einen klaren, umsetzbaren Weg zur Verbesserung aufzeigt. Dies ermöglicht es Organisationen, Best Practices im großen Stil durchzusetzen, ohne einen bürokratischen Engpass zu schaffen.

3. Erweiterbarkeit und Integrationen

Compass ist als zentraler Knotenpunkt Ihrer Toolchain konzipiert, nicht als ein weiteres Silo. Es wurde mit Blick auf Erweiterbarkeit entwickelt, verfügt über öffentlich zugängliche APIs und nutzt die Atlassian Forge-Plattform zum Erstellen benutzerdefinierter Integrationen. Dadurch können Sie Daten aus all Ihren vorhandenen Tools in einer einzigen, einheitlichen Ansicht zusammenführen.

Zu den wichtigsten Integrationen gehören:

  • Source Code Management: Bitbucket, GitHub, GitLab
  • CI/CD: Jenkins, CircleCI, Bitbucket Pipelines
  • Observability: Datadog, New Relic und andere Monitoring-Tools

Diese Erweiterbarkeit stellt sicher, dass sich Compass an Ihre einzigartige Toolchain und Ihre Arbeitsabläufe anpassen kann.

Erste Schritte mit Atlassian Compass

Die Einrichtung von Compass ist als unkomplizierter Prozess konzipiert.

Einrichten und Importieren von Komponenten

Es gibt mehrere Möglichkeiten, Ihren Komponenten-Katalog zu füllen:

  1. Manuelle Erstellung: Sie können Komponenten direkt in der Compass-Benutzeroberfläche erstellen.
  2. API: Verwenden Sie die Compass-API, um Komponenten programmgesteuert zu erstellen und zu aktualisieren.
  3. Config-as-Code: Dies ist der empfohlene Ansatz für die meisten Teams. Indem Sie eine compass.yaml-Datei im Repository einer Komponente ablegen, können Sie deren Metadaten zusammen mit dem Quellcode verwalten. Dieser GitOps-ähnliche Ansatz stellt sicher, dass der Katalog immer auf dem neuesten Stand ist und zur zentralen Informationsquelle wird. Compass bietet Apps für Bitbucket, GitHub und GitLab, um diese Dateien automatisch zu synchronisieren.
  4. Automatische Erkennung: Für Teams, die Bitbucket verwenden, bietet Compass ein Early-Access-Programm, das Komponenten automatisch aus Ihren Repositories erkennen und erstellen kann.

Definieren von Scorecards

Sobald Sie Komponenten in Ihrem Katalog haben, können Sie mit der Definition von Scorecards beginnen, um deren Zustand zu messen. So erstellen Sie eine Scorecard:

  1. Navigieren Sie zum Bereich Health in Compass.
  2. Wählen Sie Create Scorecard.
  3. Geben Sie Ihrer Scorecard einen Namen (z. B. „Tier 1 Service Readiness“).
  4. Fügen Sie Kriterien hinzu und geben Sie Name, Beschreibung und Gewichtung für jedes Kriterium an.
  5. Definieren Sie, wie jedes Kriterium bewertet wird (z. B. durch Überprüfung der Existenz eines verknüpften Repositorys, das Ausfüllen eines bestimmten Feldes oder durch Integration mit einem externen Tool über die API).
  6. Wenden Sie die Scorecard auf die relevanten Komponententypen an.

Teams können dann den Zustand ihrer Komponenten auf ihrem Dashboard einsehen und erhalten eine klare Liste von Maßnahmen zur Verbesserung ihres Scores.

Integration mit CI/CD-Pipelines

Um das Beste aus Compass herauszuholen, ist die Integration in Ihre CI/CD-Pipeline unerlässlich. Dadurch können Sie Echtzeit-Ereignisdaten an den Aktivitäts-Feed der Komponente senden, was wertvollen Kontext für Deployments, Vorfälle und andere Ereignisse liefert.

Mit der Compass-API können Sie Ereignisse von Ihrem CI/CD-Tool (wie Jenkins, CircleCI oder Bitbucket Pipelines) an die entsprechende Komponente in Compass senden. Beispielsweise könnte Ihre Pipeline nach einem erfolgreichen Deployment ein „Deployment Succeeded“-Ereignis an den Aktivitäts-Feed des entsprechenden Dienstes senden. Dies schafft eine vollständige, prüfbare Historie jeder Änderung, die für das Debugging und die Reaktion auf Vorfälle von unschätzbarem Wert ist.

Ein Hinweis zur Migration von Opsgenie

Atlassian entwickelt seine Produktpalette kontinuierlich weiter. Einige Funktionen, die früher in Opsgenie zu finden waren, sind nun Teil von Compass und Jira Service Management. Da der Support für Opsgenie im Jahr 2027 ausläuft, sollten sich Organisationen der Migrationspfade bewusst sein. Bereitschaftsplanung und Incident-Management sind jetzt Kernfunktionen von Jira Service Management, während die Funktionen für Service-Katalog und Zustandsüberwachung zu Compass weiterentwickelt wurden. Teams, die Opsgenie für Service-Katalog-Funktionen nutzen, sollten Compass als den modernen, leistungsfähigeren Nachfolger betrachten.

Fazit

Atlassian Compass löst ein kritisches und wachsendes Problem für moderne Softwareentwicklungsteams: die Komplexität verteilter Architekturen. Durch die Bereitstellung eines einheitlichen Komponenten-Katalogs, leistungsstarker Health Scorecards und einer flexiblen, erweiterbaren Plattform ermöglicht Compass Entwicklern, sich souverän in ihrem Software-Ökosystem zu bewegen. Es reduziert die kognitive Belastung, fördert Best Practices und ermöglicht es Ingenieuren letztendlich, das zu tun, was sie am besten können: hochwertige Software schneller zu entwickeln. Für jede Organisation, die mit dem Wildwuchs von Microservices zu kämpfen hat, bietet Compass einen klaren und überzeugenden Weg zu einer besseren Developer Experience.

Mehr aus der Welt von Atlassian

Workflows for non technical teams

Atlassian-Tools für nicht-technische Teams: Trello

Von Marketing über Human Ressources bis Operations – entdecken Sie, wie Trello nicht-te

Empowering Non-Technical Teams with Jira Work Management

Atlassian Tools for Non-Technical Teams: Jira Work Management

Sie denken, Jira ist nur etwas für Entwickler? Weit gefehlt. Ob Marketing, HR oder Fina

Mastering Jira Dashboards: Step-by-Step Guide to Effective Business Process Monitoring

Jira Dashboards meistern: Ein Leitfaden zur effektiven Überwachung von Geschäftsprozessen