Planificați implementarea software-ului Atlassian (Jira, Confluence)? Nu doriți să faceți greșeli grave în proiectare, care vor trebui rezolvate în ultimul moment?

Atunci veniti aici — analizăm implementarea Atlassian Jira + Confluence în corporații, ținând cont de diferitele aspecte tehnice.
Bună, sunt Proprietarul produsului la RSHB și sunt responsabil pentru dezvoltarea Sistemului de Gestionare a Cicelui de Viață (SGCV), construit pe produsele software ale companiei Atlassian Jira și Confluence.
În acest articol voi descrie aspectele tehnice ale construirii SGCV. Articolul va fi util tuturor celor care planifică implementarea sau se ocupă de dezvoltarea Atlassian Jira și Confluence în medii corporative. Articolul nu necesită cunoștințe speciale și este destinat unui nivel de familiarizare inițială cu produsele companiei Atlassian. Va fi util administratorilor, proprietarilor de produs, liderilor de proiect, arhitecților, tuturor celor care planifică implementarea sistemelor bazate pe software-ul Atlassian.
Introducere
Articolul va aborda întrebările tehnice legate de implementarea Sistemului de Gestionare a Cicelui de Viață (SGCV) în mediul corporativ. Să definim mai întâi ce înseamnă acest lucru.
Ce înseamnă o soluție corporativă?
Înseamnă o soluție:
- Scalabilă. În cazul creșterii încărcării, există posibilitatea tehnică de a extinde puterea sistemului. Se disting scalarea orizontală și verticală — în timpul scalării verticale, puterea serverelor este crescută, iar în scalarea orizontală, numărul serverelor pentru funcționarea sistemului este crescut.
- Rezistentă la erori. Sistemul va rămâne disponibil în cazul în care un element iese din funcțiune. În general, pentru sistemele corporative nu este necesară rezistența la erori, dar noi vom considera exact o astfel de soluție. În sistemul nostru sunt planificați câteva sute de utilizatori concurenți, iar timpii de nefuncționare vor fi foarte critici.
- Susținută. Soluția trebuie să se afle în suport din partea furnizorului. Software-ul fără suport trebuie înlocuit cu dezvoltări proprii sau cu alt software cu suport.
- Instalare Self-managed (On-premise). Self-managed înseamnă posibilitatea de a instala software-ul nu în cloud, ci pe servere proprii. Mai exact, aceasta include toate opțiunile de instalare care nu sunt SaaS. În acest articol, vom analiza opțiunile de instalare doar pentru Self-managed.
- Posibilitatea de dezvoltare și testare independentă. Pentru a organiza modificări previzibile în sistem, sunt necesare sisteme separate pentru dezvoltare (modificări în sistemul în sine), sistem de testare (Staging) și sistem de producție pentru utilizatori.
- Altele. Suportă diverse scenarii de autentificare, suportă log-uri de audit, are un model de roluri configurabil etc.
Acestea sunt elementele de bază ale soluțiilor de afaceri și, din păcate, sunt adesea uitate în timpul proiectării sistemului.
Ce este un Sistem de Management al Ciclitului de Viață (SMCL)?
În termeni simplificați, în cazul nostru, acesta este Atlassian Jira și Atlassian Confluence — un sistem care oferă instrumente pentru organizarea muncii în echipă. Sistemul nu 'impune' reguli de organizare a muncii, ci oferă o varietate de instrumente pentru muncă, inclusiv Scrum, tablouri Kanban, model de tip apă căzută, Scrum scalabil etc.
Denumirea SMCL nu este un termen din industrie sau un concept de uz comun, ci este pur și simplu denumirea sistemului nostru în Bancă. SMCL pentru noi nu este un sistem de urmărire a erorilor, nu este un sistem de Management al Incidentelor și nici un sistem de Management al Modificărilor.
Ce implică implementarea?
Implementarea soluției constă într-o mulțime de întrebări tehnice și organizaționale:
- Alocarea capacităților tehnice.
- Achiziționarea de software.
- Crearea echipei pentru implementarea soluției.
- Instalarea și configurarea soluției.
- Dezvoltarea arhitecturii soluției. Modelului de roluri.
- Dezvoltarea documentației de operare, inclusiv instrucțiuni, reglementări, proiect tehnic, proceduri etc.
- Schimbarea proceselor companiei.
- Crearea unei echipe de suport. Dezvoltarea SLA.
- Instruirea utilizatorilor.
- Altele.
În acest articol, vom examina aspectele tehnice ale implementării, fără detalii privind componenta organizațională.
Particularitățile Atlassian
Compania Atlassian este lider în multe segmente:
(Leadership-ul este determinat de achiziția reușită a AgileCraft cu soluția sa cloud)


Produsele companiei Atlassian dispun de toate funcțiile necesare pentru mediul de afaceri. Voi menționa următoarele caracteristici:
- Soluțiile Atlassian se bazează pe serverul web Java Tomcat. Software-ul Apache Tomcat vine inclus în software-ul Atlassian, ca parte a instalării; nu se poate schimba versiunea Apache Tomcat instalată împreună cu software-ul Atlassian, chiar dacă versiunea este învechită și conține vulnerabilități. Singura opțiune este să aștepți actualizările de la Atlassian, cu o versiune mai nouă de Apache Tomcat. De exemplu, în versiunile actuale de Jira, se folosește Apache Tomcat 8.5.42, iar în Confluence se folosește Apache Tomcat 9.0.33.
- Interfață prietenoasă, implementate cele mai bune practici disponibile pe piață pentru această clasă de software.
- Soluție complet personalizabilă. Cu modificări, se pot realiza orice ajustări ale funcționalității de bază pentru utilizator.
- Ecosistem dezvoltat. Există câteva sute de parteneri: , inclusiv 16 parteneri în Rusia. Anume prin parteneri în Rusia se poate achiziționa software-ul Atlassian, pluginuri, se poate urma training. Partenerii dezvoltă și întrețin cea mai mare parte a pluginurilor.
- Magazine de aplicații (pluginuri): . Pluginurile extind semnificativ funcționalitatea software-ului Atlassian. Funcționalitatea de bază a software-ului Atlassian este destul de modestă, pentru aproape orice sarcină apare necesitatea instalării unor pluginuri suplimentare, fie gratuit, fie contra cost. Prin urmare, costurile pentru software ar putea fi semnificativ mai mari decât au fost estimate inițial.
În prezent, în magazin sunt publicate câteva mii de pluginuri, aproape o mie dintre acestea fiind testate și validate prin programul Data Center approved apps. Aceste pluginuri pot fi considerate stabile și potrivite pentru utilizare în sisteme solicitate.
Recomand o abordare atentă în ceea ce privește planificarea pluginurilor, acest lucru influențează semnificativ costul soluției, multe dintre pluginuri pot duce la instabilitatea sistemului, iar producătorul pluginului poate să nu ofere suport pentru rezolvarea problemelor. - Înstruire și certificări:
- Sunt susținute mecanismele SSO, SAML 2.0.
- Suport pentru scalabilitate și redundanță există doar în edițiile Data Center. Această ediție a apărut pentru prima dată în 2014 (Jira 6.3). Funcționalitatea edițiilor Data Center este extinsă și îmbunătățită constant (de exemplu, posibilitatea de instalare pe un singur nod a apărut doar în 2020). Abordarea pluginurilor pentru edițiile Data Center s-a schimbat semnificativ în 2018 cu introducerea aplicațiilor aprobate de Data Center.
- Costul suportului. Costul suportului din partea furnizorului este practic egal cu costul total al licențelor software. Un exemplu de calcul al costului licențelor este prezentat mai jos.
- Lipsa versiunilor Long Term. Există așa-numitele , dar acestea, la fel ca toate celelalte versiuni, sunt suportate timp de 2 ani. Cu diferența că pentru versiunile Enterprise se eliberează doar corecții, fără adăugări de noi funcționalități.
- Opțiuni extinse de suport (pentru un cost suplimentar).
- Sunt suportate mai multe variante de SGBD. Software-ul Atlassian vine cu un SGBD gratuit H2, care nu este recomandat pentru utilizare în producție. Pentru utilizare în producție sunt suportate următoarele SGBD-uri: Amazon Aurora (doar pentru Data Center) PostgreSQL, Azure SQL, MySQL, Oracle DB, PostgreSQL, MS SQL Server. Există restricții privind versiunile suportate și adesea doar versiunile mai vechi sunt acceptate, dar pentru fiecare SGBD există o versiune cu suport din partea furnizorului:
,
.
Arhitectura tehnică

Explicații la schema:
- Schema prezintă implementarea în banca noastră, această configurație este oferită ca exemplu și nu este recomandată.
- nginx oferă funcționalitatea de reverse-proxy atât pentru Jira, cât și pentru Confluence.
- Rezistența SGBD-ului este realizată prin intermediul capacităților SGBD-ului.
- Transferul modificărilor între medii se realizează cu ajutorul pluginului Configuration Manager for Jira.
- AppSrv din schemă este un server de aplicații propriu pentru raportare, care nu utilizează software-ul Atlassian.
- BD EasyBI este creată pentru construirea cuburilor și raportării folosind pluginul eazyBI Reports and Charts for Jira.
- Serviciul Confluence Synchrony (componenta care permite editarea simultană a documentelor) nu este separat în instalații distincte și este pornit împreună cu Confluence, pe același server.
Licențiere
Întrebările legate de licențierea Atlassian merită un articol separat, aici voi menționa doar principiile generale.
Principalele întrebări cu care ne-am confruntat sunt legate de licențierea edițiilor Data Center. Caracteristicile licențierii pentru edițiile Server și Data Center:
- Licența pentru ediția Server este nelimitată și cumpărătorul poate utiliza software-ul chiar și după expirarea licenței. Dar după expirarea licenței, cumpărătorul își pierde dreptul de a primi suport pentru produs și de a actualiza software-ul la versiunile actuale.
- Licențierea se realizează în funcție de numărul de utilizatori din permisiunea globală ‘JIRA Users’. Nu contează dacă aceștia folosesc sau nu sistemul — chiar dacă utilizatorii nu s-au conectat niciodată, toți utilizatorii vor fi luați în calcul pentru licență. În cazul depășirii numărului de utilizatori licențiați, soluția va fi eliminarea dreptului ‘JIRA Users’ pentru o parte dintre utilizatori.
- Licența pentru Data Center este de fapt un abonament. Este necesară plata anuală a licenței. La expirarea termenului, utilizarea sistemului va fi blocată.
- Costul licențelor poate varia în timp. După cum arată experiența, de obicei într-o direcție ascendentă și, posibil, semnificativ. Prin urmare, dacă în acest an licențele au un anumit cost, anul următor prețul licențelor poate crește.
- Licențierea se realizează pe utilizatori în funcție de tier (de exemplu, nivelul 1001-2000 utilizatori). Există posibilitatea de a trece la un tier superioară, cu o plată suplimentară.
- Dacă este depășit numărul de utilizatori licențiați, noii utilizatori vor fi creați fără drept de a se conecta la sistem (‘JIRA Users’ global permission).
- Pluginurile pot fi licențiate doar pentru același număr de utilizatori ca și software-ul principal.
- Licențierea este necesară doar pentru instalațiile de producție; pentru celelalte se poate obține o licență Developer: .
- Pentru achiziționarea suportului, este necesară achiziționarea Renew Software maintenance — costul fiind de aproximativ 50% din costul software-ului inițial. Această opțiune nu este disponibilă pentru Data Center și nu se aplică pluginurilor — pentru suportul acestora va trebui să plătiți costul întreg anual.
Astfel, suportul anual pentru software costă mai mult de 50% din prețul întreg al software-ului în cazul ediției Server și 100% în cazul ediției Data Center — aceasta este semnificativ mai mult decât la majoritatea altor furnizori. Din punctul meu de vedere, acesta este un dezavantaj major al modelului de afaceri Atlassian.
Particularitățile tranziției de la ediția Server la Data Center:
- Tranziția de la ediția Server la Data Center este plătită. Costul îl puteți găsi aici .
- În cazul tranziției de la ediția Server la Data Center, nu este necesară plata pentru schimbarea ediției la pluginuri — pluginurile pentru ediția Server vor funcționa. Însă, va fi necesar să reînnoiți licențele pentru pluginuri pentru ediția Data Center.
- Puteți utiliza pluginuri pentru care nu există versiune pentru edițiile Data Center. Totuși, aceste pluginuri pot funcționa necorespunzător, așa că este mai bine să preconizăm o alternativă pentru aceste pluginuri.
- Trecerea la ediția Data Center se face prin instalarea unei noi licențe. Licența pentru ediția Server rămâne în continuare disponibilă.
- Nu există nicio diferență funcțională între edițiile Data Center și Server pentru utilizatori; toate diferențele sunt doar în funcțiile de administrare și în capacitățile tehnice de instalare.
- Costul software-ului și al pluginurilor variază pentru edițiile Server și Data Center. Diferența de preț este adesea de sub 5% (nu este semnificativă). Un exemplu de calcul al costului este prezentat mai jos.
Volumul funcțional al implementării
Pachetul de bază al software-ului Atlassian include un număr mare de funcționalități, dar adesea funcțiile oferite de sistem sunt foarte insuficiente. Uneori, chiar și cele mai simple funcții nu sunt disponibile în pachetul de bază, așa că nu se poate evita utilizarea pluginurilor în aproape orice implementare. Pentru sistemul Jira, folosim următoarele pluginuri (imaginea este clicabilă):
Pentru sistemul Confluence, folosim următoarele pluginuri (imaginea este clicabilă):
Comentarii la tabele cu pluginuri:
- Toate prețurile sunt calculate pe baza a 2000 de utilizatori;
- Prețurile sunt bazate pe prețurile indicate , costul real (cu discounturi) este mai mic;
- Așa cum vedem, suma totală nu diferă practic între edițiile Data Center și Server;
- Pentru utilizare, am selectat doar pluginuri care sunt compatibile cu ediția Data Center. Celelalte pluginuri au fost excluse din planuri, pentru stabilitatea sistemului.
Funcționalitatea este descrisă pe scurt în coloana Comentariu. Pluginurile suplimentare au extins funcționalitatea sistemului:
- Adăugate câteva instrumente vizuale;
- Mecanismele de integrare au fost îmbunătățite;
- Adăugat instrumentar pentru proiecte bazate pe modelul Waterfall;
- Adăugat instrumentar pentru Scrum scalabil, pentru organizarea muncii în echipe mari de proiect;
- Adăugat funcționalitate pentru gestionarea timpului;
- Adăugat instrumentar pentru automatizarea operațiunilor și configurarea soluției;
- Adăugată funcționalitate pentru simplificarea și automatizarea administrării soluției.
De asemenea, folosim . Această aplicație permite editarea fișierelor în aplicații externe (MS Office) și returnarea acestora înapoi în Confluence (check-in).
Aplicație pentru locurile de muncă ale utilizatorilor (client gros) ALM Works Jira Client am decis să nu o folosim din cauza suportului slab din partea furnizorului și a feedback-ului negativ.
Pentru integrări cu MS Project noi folosim o aplicație personalizată care permite actualizarea statutelor Issue în MS Project din Jira și invers. În viitor, pentru aceleași scopuri, plănuim să folosim un plugin plătit , care se instalează ca un add-on în MS Project.
Integrările cu aplicații externe sunt realizate prin Application Links. Astfel, pentru aplicațiile Atlassian, integrările sunt preconfigurate și funcționează imediat după setare, de exemplu, se poate afișa pe pagina din Confluence informații despre Issues în Jira.
Pentru accesul la serverele Jira și Confluence se folosește REST API: .
SOAP și XML-RPC API au fost desprinse și nu mai sunt disponibile în versiunile noi pentru utilizare.
Concluzie
Așadar, am analizat caracteristicile tehnice ale implementării sistemului bazat pe produsele Atlassian. Soluția propusă reprezintă una dintre soluțiile posibile și se potrivește bine pentru un mediu corporativ
Soluția propusă este scalabilă, cu toleranță la erori, cuprinde trei medii pentru organizarea dezvoltării și testării, conține toate elementele necesare pentru colaborarea în sistem și oferă o gamă largă de instrumente pentru gestionarea proiectelor.
Voi răspunde cu plăcere la întrebări în comentarii.
Sursa: habr.com


