Einführung in Atlassian Connect

Keine Kommentare

In der Software-Entwicklung sind Atlassian Produkte wie JIRA und Confluence heute weit verbreitet. Aber auch in anderen Bereichen werden diese Tools immer häufiger eingesetzt. Atlassian bietet seine Anwendungen mittlerweile auch als Cloud Produkte (SaaS) an, welche von Atlassian gehostet werden. Für den Anwender ist dieser Ansatz sehr einfach, er kann die Anwendungen nutzen, muss sich aber nicht um Installation und Betrieb kümmern.

Allerdings sind die vielen bereits vorhandenen Add-ons für die Server Variante nicht in den Cloud Anwendungen verfügbar *1. Mit Connect liefert Atlassian daher ein eigenes Framework zur Erweiterung der Cloud Anwendungen mittels Add-ons. Unterstützt werden aktuell JIRA Cloud, Confluence Cloud, HipChat und Bitbucket Cloud.

Add-ons mit Connect

Die bisherigen Server Add-ons sind in Java implementierte OSGi Bundles, welche direkt in die Anwendung installiert werden. Diese Art der Installation ist in den Cloud Anwendungen nun nicht möglich. Stattdessen sind Connect Add-ons eigenständige Webanwendungen. Sie kommunizieren mit der Anwendung (z.B. JIRA) über REST Schnittstellen und können Inhalte liefern, welche in die Anwendungsoberfläche eingebunden werden.

AtlassianConnectDiagram

In der Grafik (Quelle: Atlassian) wird das Kommunikationsschema sehr gut verdeutlicht.

Die Registrierung der verschiedenen Funktionen des Add-ons geschieht mittels eines Descriptors, welcher diese an bestimmten Stellen der Anwendung anmeldet. So gibt es die Möglichkeit, dass das Add-on Elemente zu der Oberfläche hinzufügt. Dazu wird eine URL zum Add-on hinterlegt, zusammen mit der Information an welcher Stelle der Inhalt eingebunden werden soll. JIRA ruft dann die URL auf und bindet das zurückgelieferte HTML mit Hilfe eines iframes in die Seite ein. Außerdem können auch Funktionen ohne grafische Oberfläche angemeldet werden. So kann das Add-on auf verschiedenste Ereignisse (z.B. Ändern eines Vorganges) reagieren oder Post Functions zum Workflow beisteuern. Auch in diesem Fall wird im Descriptor eine URL (webhook) angegeben, welche die aufzurufende Funktion definiert. Grundsätzlich kann das Add-on per REST-API Funktionen in der Anwendung aufrufen und damit z.B. weitere Daten erfragen aber auch Änderungen vornehmen.

Da das Add-on eine eigenständige Webanwendung ist, welche über REST Schnittstellen aufgerufen wird, ist man nicht mehr an die Technologien der eigentlichen Anwendung gebunden. Stattdessen können Programmiersprachen, Frameworks etc. frei gewählt werden. Atlassian und die Community bieten auch Bibliotheken und Tools für verschiedene Sprachen und Technologien an, um die Entwicklung weiter zu vereinfachen und grundlegende Aufgaben abzunehmen. Auch der aktuelle Trend zu Microservices hat neue Bibliotheken und Tools hervorgebracht, welche dieses Modell hervorragend unterstützen.

Der Add-on Anbieter betreibt und administriert bei dieser Variante aber auch die Anwendung, das heißt, er hat deutlich mehr Aufgaben als die reine Entwicklung. Er muss sich zusätzlich auch um Themen wie Hosting und Verfügbarkeit kümmern. Dafür hat er den Vorteil der größeren Kontrolle über die Anwendung. So können beispielsweise Updates einfach durchgeführt werden und gelten automatisch für alle Kunden. Kein Kunde muss mehr manuell die neue Version installieren, wie es bei Server Add-ons der Fall ist.

Im Gegenzug bedeutet dies aber auch, dass der Kunde weniger Kontrolle hat und dem Anbieter noch mehr Vertrauen entgegenbringen muss. Stellt dieser nicht den durchgehenden Betrieb sicher oder führt inkompatible Aktualisierungen durch, dann kann der Kunde das Add-on nicht verlässlich nutzen.

Einschränkungen gibt es beim Funktionsumfang der Connect Add-ons im Vergleich zu den bisherigen Add-Ons. Da diese nicht so tief in die  Anwendung integriert sind wie die direkt installierte Variante, können sie auch nicht an so vielen Stellen eingreifen. So können beispielsweise nur Workflow Post Functions erstellt werden, aber keine Workflow Validatoren. Auch Internationalisierung (i18n) wird noch nicht unterstützt. Während einige Funktionen vorgesehen sind und irgendwann eventuell unterstützt werden, ist dies bei anderen nicht zu erwarten. So ist es kaum vorstellbar, dass ein Add-on mit eigenem HTTP-Filter über Connect umgesetzt werden kann.

Installation

Die Installation erfolgt wie gewohnt über den Marketplace. Die Add-ons können sowohl kostenpflichtig als auch kostenfrei angeboten werden. Auch ein privates Listing ist möglich, sodass das Add-on nur innerhalb der eigenen Organisation verfügbar ist. Die Bezahlung kostenpflichtiger Add-ons ist genau wie bei Server Add-ons sowohl über Atlassian als auch über den Anbieter selbst möglich.

Fazit

Mit Connect bietet Atlassian grundsätzlich eine gute Möglichkeit zur Erweiterung der angebotenen Anwendungen.

Für Add-on Entwickler (im Sinne von Programmierern) gibt es eine deutlich größere Flexibilität in Bezug auf den Technologiestack, was auch den potentiellen Entwicklerkreis stark erweitert. Dafür ist das Framework nicht so mächtig und bietet eine weniger tiefe Integration.  Für Add-on Anbieter im Allgemeinen steigt der Aufwand durch neue Herausforderungen wie den Betrieb der Anwendung.

Atlassian hat angekündigt, dass Connect nicht für JIRA Server und Confluence Server verfügbar sein wird. Das bedeutet aber auch doppelten Pflegeaufwand für Add-ons, welche auf Server und Cloud verfügbar sein sollen. Außerdem kann es für eine Zersplitterung der Community sorgen, mit Auswirkungen auf Dokumentation, Tutorials, Hilfeseiten usw.

Für Nutzer ist der Unterschied zu den Server Anwendungen eher gering. Die Add-ons erreichen noch nicht den kompletten Funktionsumfang und es sind nicht alle Erweiterungen verfügbar, aber die Entwicklung in diese Richtung geht voran. Das größte Risiko besteht darin, dass der Anbieter sein Add-on einfach abschalten könnte und es plötzlich nicht mehr verfügbar ist. Atlassian selbst gibt auch Hinweise zur Auswahl vertrauenswürdiger Add-ons.

Im nächsten Artikel werden wir untersuchen, wie es um die Sicherheit von Connect Add-ons bestellt ist.

Wie sieht es bei Ihnen aus? Kommt die Cloud Variante für Ihr Unternehmen in Frage? Schreiben Sie gerne in die Kommentare, ob Sie bereits gute oder schlechte Erfahrungen mit Connect Add-ons gesammelt haben.

*1 Einzelne Server Add-ons werden in Cloud Instanzen vorinstalliert, aber das ist ein Sonderfall, auf den man nicht spekulieren sollte. Dies ist wohl eher als temporäre Lösung zu betrachten bis Connect diese Funktionen abbilden kann.

Erik Petzold

Erik Petzold ist als Developer/Consultant bei der codecentric AG tätig. Er entwickelt hauptsächlich in Java und ist immer daran interessiert neue Dinge zu lernen.

Share on FacebookGoogle+Share on LinkedInTweet about this on TwitterShare on RedditDigg thisShare on StumbleUpon

Kommentieren

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *