Rozšíření Atlassian Cloud: Vývoj ve Forge a Connect

19.11.2020 | Vojtěch Schlemmer | Atlassian

Atlassian Cloud nástroje není nutné používat jen v jejich základní "výbavě". I v Cloudu je možné aplikace pomocí rozšíření libovolně rozšiřovat o funkcionality, které nám v základní výbavě chybí. Zároveň si tyto rozšíření jako uživatelé můžeme vyvíjet klidně i sami.

Proč by nás mělo zajímat rozšíření Atlassian nástrojů v Cloudu?

Atlassian nástroje, jako jsou Jira, Confluence, Bitbucket a další, jsou mocnými pomocníky mimo jiné díky jejich rozšiřitelnosti. Kdokoliv může přijít, vyvinout jakoukoli vychytávku a přidat ji například do Jira. To je možné díky technologické otevřenosti nástrojů a frameworkům Connect nebo připravovaném Forge. Navíc existuje tržiště Atlassian Marketplace, kde lze rozšíření prodávat. Leckteré firmy si na těchto rozšířeních dokonce založily byznys.

Pro serverové Atlassian nástroje existují řádově tisíce veřejně dostupných rozšíření, zatímco pro ty cloudové je jich zatím o poznání méně. Záměrně uvádím slovo „zatím“, protože před několika týdny Atlassian oznámil, že v nejbližších letech skončí podpora serverových nástrojů, což zákonitě vede k zaměření větší pozornosti na Cloud.

Jak takové rozšíření může vypadat…

Na chvíli opustím teoretickou rovinu a zkusím být konkrétní. Můžeme například:

  • v Jira na detailu tasku zobrazit panel s vlastním obsahem – ať už s nějakou statistikou, reportem nebo i možností provést s taskem nějakou akci
  • přidat reakci na změnu stavu tasku a například notifikovat zainteresované osoby nebo provázat akci s externími nástroji jako je SAP, Helios, atd.
  • přidat makro do Confluence, které zobrazí jakýkoliv cool obsah

A mnoho, mnoho dalšího – fantazii se meze nekladou. Navíc takové rozšíření (neboli „appka“) nemusí být zákonitě veřejně dostupné na Marketplace. Může se jednat o privátní appku nebo o řešení pro zákazníka na míru.

Vývoj rozšíření – Forge a Connect

Pokud chceme do cloudového Atlassian nástroje vytvořit appku, máme k dispozici 2 frameworky:

  1. Connect
  2. Forge

Oba frameworky nabízejí širokou paletu možností, je ale mezi nimi několik rozdílů, z nichž ten nejzásadnější je, že Forge je zatím v beta verzi a není připravený pro produkční použití. Před několika dny se objevilo světlo na konci tunelu a Atlassian stanovil předběžný termín produkčního releasu na duben 2021.

Pojďme si projít, v čem se zmíněné frameworky liší.

Hostování appek

Connect je tu s námi již delší dobu, je stabilní a na Marketplace je v něm vytvořených již přes tisíc appek. Má ovšem podstatnou nevýhodu v tom, že tvůrce appky ji musí hostovat sám. V Jira se tedy vykreslí obsah appky, ten je ale načten z našeho serveru, který musíme provozovat my. Na našich bedrech je tedy škálování, stabilita, zabezpečení dat včetně zabezpečení komunikace s Jira, atd. S tímto souvisí i tzv. Data Residency, neboli umístění dat, protože některé segmenty trhu mají předepsáno, kde se jejich data musí fyzicky nacházet, ať už z bezpečnostních důvodů nebo kvůli GDPR.

Appky vytvořené v Connectu jsou v tomto směru odkázané na politiku tvůrce aplikace, ale u Forge si budeme moct v budoucnu určit, kde budou data uložena.

atlassian-connect-hosting

Forge oproti tomu poskytuje FaaS (Function-as-a-Service) infrastrukturu, kterou hostuje Atlassian v cloudu, kde běží logika aplikace a poskytuje i úložiště pro data. Můžeme tedy dát nohy na stůl a Atlassian už se postará.

3eb0872d-9ebe-450e-9c77-0372dd70b99f-1024x205

Zabezpečení a komunikace

Connect komunikuje s REST API Atlassian nástrojů s tím, že zabezpečení této komunikace musí obstarat tvůrce appky.

Forge sice na pozadí také komunikuje s REST API, avšak zabezpečení komunikace už obstarává specifické prostředí, ve kterém aplikace běží. Z čehož vyplývá zásadní fakt: Forge aplikace jsou z principu důvěryhodnější, protože jejich zabezpečení je obstaráno již v samotné infrastruktuře a tvůrci appek mají méně prostoru k vytvoření bezpečnostních chyb.

User Interface

Forge framework přichází s knihovnou Forge UI, která nabízí širokou paletu předpřipravených komponent, kterým už jen stačí nadefinovat jejich chování a reakce na události. Jedná se o deklarativní přístup, jaký známe např. v Reactu.

U Connectu jsme v tom tak trochu sami, stále však není problém využít Atlaskit – knihovnu React komponent, které jsou předpřipravené se stejným look & feel jako rozhraní Jira nebo Confluence. V aktuálním stupni vývoje je Forge UI o něco skoupější v tom, co nabízí v porovnání s Atlaskitem, na druhou stranu ve vývoji je teď možnost zobrazit ve Forge vlastní HTML, CSS a JavaScript (s jistými bezpečnostními limitacemi), takže tento rozdíl se pravděpodobně brzy smaže.

Tooling a vývoj

Vývojářský zážitek při práci s Forge je vskutku příjemný. Díky vyladěnému CLI (Command Line Interface, neboli rozhraní pro správu) lze vytvořit funkční appku během několika minut a v cloudu je automaticky vytvořené Developer, Staging a Production prostředí.

Při tvorbě CLI vznikl v Atlassianu zajímavý blogpost na téma, jak správně psát CLI rozhraní (https://blog.developer.atlassian.com/10-design-principles-for-delightful-clis) a je vidět, že se těmito zásadami sami řídili.

U Connectu je to poněkud složitější. Sice jsou k dispozici template projekty pro Spring Boot a Express, které s sebou přinášejí řadu předchystaných funkcionalit k usnadnění práce, stále je zde ona koule u nohy v podobě nutnosti hostování aplikace. Abych ale Connectu nekřivdil, má výhodu v tom, že volba technologie je kompletně na nás (s možností využití předpřipravených funkcionalit v Javě a NodeJS), zatímco u Forge jsme předurčeni k NodeJS.

forge-connect-comparison

Jaké jsou vyhlídky do budoucna?

Atlassian nedávno poodkryl karty a nejenže oznámil plánované termíny dokončení stabilní verze Forge, ale nastínil i budoucnost a určitou vidinu interoperability. Atlassian zdůrazňuje, že Connect nekončí. Forge přichází jako jeho alternativa a v budoucnu bude možné využívat moduly Connectu. Na konferenci Developer Day 2020 se dokonce objevilo demo takové hybridní aplikace. Zatím to vypadá, že Forge bude v blízké budoucnosti preferovanou variantou a tam, kde nám paleta funkcionalit nebude stačit, bude na místě sáhnout po Connectu.

Zdroje

Komentáře

Podobné články

Nechte nám na sebe kontakt a naši odborníci se vám ozvou. Neradi píšete? Kontaktujte experta na telefonním čísle +420 725 761 338

Důvěřují nám tyto firmy