Sådan implementeres Atlassian Jira + Confluence i et selskab. Tekniske spørgsmål

Planlægger du at implementere Atlassian-software (Jira, Confluence)? Vil du ikke lave grusomme designfejl, som så skal løses i sidste øjeblik?

Sådan implementeres Atlassian Jira + Confluence i et selskab. Tekniske spørgsmål
Så er du her - vi overvejer implementeringen af ​​Atlassian Jira + Confluence i en virksomhed under hensyntagen til forskellige tekniske aspekter.
Hej, jeg er Product Owner hos RSHB og er ansvarlig for udviklingen af ​​Lifecycle Management System (LCMS) bygget på Atlassian Jira og Confluence softwareprodukter.

I denne artikel vil jeg beskrive de tekniske aspekter ved at bygge et LCMS. Artiklen vil være nyttig for alle, der planlægger at implementere eller udvikle Atlassian Jira og Confluence i et virksomhedsmiljø. Artiklen kræver ikke særlig viden og er designet til et indledende niveau af fortrolighed med Atlassian-produkter. Artiklen vil være nyttig for administratorer, produktejere, projektledere, arkitekter og alle, der planlægger at implementere systemer baseret på Atlassian-software.

Indledning

Artiklen vil diskutere de tekniske problemer ved implementering af et livscyklusstyringssystem (LCMS) i et virksomhedsmiljø. Lad os først definere, hvad dette betyder.

Hvad er en virksomhedsløsning?

Det betyder løsningen:

  1. Skalerbar. Ved øget belastning er der teknisk mulighed for at øge anlæggets kapacitet. Separat horisontal og vertikal skalering - med vertikal skalering øges servernes kapacitet, med horisontal skalering øges antallet af servere til systemdriften.
  2. Fejlsikker. Systemet forbliver tilgængeligt, hvis et element fejler. Generelt kræver virksomhedssystemer ikke fejltolerance, men vi vil overveje netop en sådan løsning. Vi planlægger at have flere hundrede konkurrencedygtige brugere i systemet, og nedetiden vil være meget kritisk.
  3. Understøttet. Løsningen skal understøttes af leverandøren. Ikke-understøttet software bør erstattes af intern udvikling eller anden understøttet software.
  4. Installation Selvstyret (på forudsætning). Selvstyret er muligheden for at installere software ikke i skyen, men på dine egne servere. For at være mere præcis er disse alle ikke-SaaS-installationsmuligheder. I denne artikel vil vi kun overveje selvstyrede installationsmuligheder.
  5. Mulighed for selvstændig udvikling og test. For at organisere forudsigelige ændringer i systemet kræves et separat system til udvikling (ændringer i selve systemet), et testsystem (Staging) og et produktivt system til brugere.
  6. Другое. Understøtter forskellige autentificeringsscenarier, understøtter revisionslogfiler, har en tilpasset rollemodel osv.

Disse er hovedelementerne i virksomhedsløsninger, og de bliver desværre ofte glemt, når man designer et system.

Hvad er et livscyklusstyringssystem (LCMS)?

Kort sagt, i vores tilfælde er disse Atlassian Jira og Atlassian Confluence - et system, der giver værktøjer til at organisere teamwork. Systemet "pålægger" ikke regler for organisering af arbejdet, men giver en række forskellige værktøjer til arbejdet, såsom Scrum, Kanban boards, en vandfaldsmodel og skalerbar Scrum osv.
Navnet LCMS er ikke et branchebegreb eller et almindeligt begreb, det er blot navnet på systemet i vores bank. LCMS for os er ikke et fejlsporingssystem, det er ikke et Incident Management-system og et Change Management-system.

Hvad omfatter implementering?

Implementeringen af ​​løsningen består af mange tekniske og organisatoriske spørgsmål:

  • Tildeling af teknisk kapacitet.
  • Indkøb af software.
  • Oprettelse af et team til at implementere løsningen.
  • Installation og konfiguration af løsningen.
  • Udvikling af løsningsarkitektur. rollemodel.
  • Udvikling af driftsdokumentation, herunder instruktioner, forskrifter, teknisk design, forskrifter mv.
  • Ændring af virksomhedens processer.
  • Oprettelse af et supportteam. SLA udvikling.
  • Brugertræning.
  • Другое.

I denne artikel vil vi overveje de tekniske aspekter af implementering uden detaljer om den organisatoriske komponent.

Funktioner Atlassian

Atlassian er førende inden for mange segmenter:

Atlassians produkter har alle de virksomhedsfunktioner, du har brug for. Jeg vil bemærke følgende funktioner:

  1. Atlassian-løsninger er baseret på Java Tomcat-webserveren. Apache Tomcat-software er inkluderet med Atlassian-software, som en del af installationen kan du ikke ændre versionen af ​​Apache Tomcat installeret med Atlassian-software, selvom versionen er forældet og indeholder sårbarheder. Den eneste mulighed er at vente på en opdatering fra Atlassian med en nyere version af Apache Tomcat. Nu har de nuværende versioner af Jira for eksempel Apache Tomcat 8.5.42, og Confluence har Apache Tomcat 9.0.33.
  2. Praktisk grænseflade, den bedste praksis, der er tilgængelig på markedet for denne type software, er implementeret.
  3. Fuldt tilpasselig løsning. Med forbedringer kan du implementere enhver ændring i den grundlæggende funktionalitet for brugeren.
  4. Udviklet økosystem. Der er flere hundrede partnere: https://partnerdirectory.atlassian.com, herunder 16 partnere i Rusland. Det er gennem partnere i Rusland, du kan købe Atlassian-software, plugins og få træning. Det er partnerne, der udvikler og vedligeholder de fleste plugins.
  5. App Store (plugins): https://marketplace.atlassian.com. Plugins forbedrer funktionaliteten af ​​Atlassian-software i høj grad. Den grundlæggende funktionalitet af Atlassian-software er ret beskeden, for næsten enhver opgave bliver det nødvendigt at installere yderligere plug-ins gratis eller for ekstra penge. Derfor kan softwareomkostningerne være væsentligt højere end oprindeligt estimeret.
    Til dato er der udgivet flere tusinde plugins i butikken, næsten tusinde af dem er blevet testet og valideret under det Datacenter godkendte apps program. Sådanne plugins kan betragtes som stabile og velegnede til brug i travle systemer.
    Jeg råder dig til omhyggeligt at nærme dig spørgsmålet om planlægning af plugins, dette påvirker i høj grad omkostningerne ved løsningen, mange af plugins kan føre til systemustabilitet, og plugin-producenten yder ikke support til at løse problemet.
  6. Uddannelse og certificering: https://www.atlassian.com/university
  7. SSO, SAML 2.0 mekanismer er understøttet.
  8. Understøttelse af skalerbarhed og fejltolerance er kun tilgængelig i datacenterudgaver. Denne udgave udkom første gang i 2014 (Jira 6.3). Funktionaliteten af ​​Data Center-udgaverne udvides og forbedres konstant (f.eks. dukkede muligheden for en enkelt nodeinstallation først op i 2020). Tilgangen til plug-ins til Data Center-udgaver har ændret sig meget i 2018 med introduktionen af ​​Data Center-godkendte apps.
  9. Supportomkostninger. Udgifterne til support fra leverandøren er næsten lig med de fulde omkostninger ved softwarelicenser. Et eksempel på beregning af omkostningerne ved licenser er givet nedenfor.
  10. Mangel på langsigtede udgivelser. Der er såkaldte Enterprise versioner, men de er ligesom alle andre versioner understøttet i 2 år. Med den forskel, at der kun udgives rettelser til Enterprise-versioner uden at tilføje ny funktionalitet.
  11. Udvidede supportmuligheder (for yderligere penge). https://www.atlassian.com/enterprise/support-services
  12. Flere varianter af DBMS understøttes. Atlassian kommer med en gratis H2-database, som ikke anbefales til produktiv brug. Følgende DBMS understøttes til produktiv brug: Amazon Aurora (kun datacenter) PostgreSQL, Azure SQL, MySQL, Oracle DB, PostgreSQL, MS SQL Server. Der er begrænsninger på understøttede versioner og ofte understøttes kun ældre versioner, men for hvert DBMS er der en version med leverandørsupport:
    Jira understøttede platforme,
    Confluence-understøttede platforme.

Teknisk arkitektur

Sådan implementeres Atlassian Jira + Confluence i et selskab. Tekniske spørgsmål

Forklaringer til ordningen:

  • Diagrammet viser implementeringen i vores bank, denne konfiguration er givet som et eksempel og anbefales ikke.
  • nginx giver omvendt proxy-funktionalitet til både Jira og Confluence.
  • Fejltolerancen for et DBMS implementeres ved hjælp af DBMS.
  • Overførsel af ændringer mellem miljøer sker ved hjælp af Configuration Manager for Jira plugin.
  • AppSrv i diagrammet er en indbygget rapporteringsapplikationsserver, der ikke bruger Atlassian-software.
  • EasyBI-databasen blev oprettet til at bygge kuber og rapportere ved hjælp af plugin'et eazyBI Reports and Charts for Jira.
  • Confluence Synchrony-tjenesten (en komponent, der tillader samtidig redigering af dokumenter) er ikke adskilt i en separat installation og kører sammen med Confluence på den samme server.

Licensering

Atlassian-licensproblemer fortjener en separat artikel, her vil jeg kun nævne generelle principper.
De vigtigste problemer, vi mødte, er spørgsmålene om licensering af datacenterudgaver. Licensfunktioner til server- og datacenterudgaver:

  1. Licensen til Server-udgaven er evig, og kunden kan bruge softwaren, selv efter at licensen er udløbet. Men efter at licensen udløber, mister køberen retten til at modtage produktsupport og opdatere softwaren til de nyeste versioner.
  2. Licensering er baseret på antallet af brugere i det globale tilladelsessystem 'JIRA Users'. Det er lige meget om de bruger systemet eller ej - selvom brugere aldrig har logget ind i systemet, vil alle brugere blive taget i betragtning for licensen. Hvis antallet af licenserede brugere overskrides, er løsningen at fjerne 'JIRA-brugere'-tilladelsen fra nogle af brugerne.
  3. Datacenterlicensen er faktisk et abonnement. Der kræves et årligt licensgebyr. Ved løbetidens udløb vil arbejdet med systemet være spærret.
  4. Prisen på licenser kan ændre sig over tid. Som praksis viser, i stor stil og måske betydeligt. Derfor, hvis dine licenser koster ét beløb i år, så kan omkostningerne til licenser stige næste år.
  5. Licensering udføres af brugere efter niveau (for eksempel niveau 1001-2000 brugere). Det er muligt at opgradere til et højere niveau mod et tillæg.
  6. Hvis antallet af licenserede brugere overskrides, vil nye brugere blive oprettet uden ret til at logge på ('JIRA Users' global tilladelse).
  7. Plugins kan kun licenseres til det samme antal brugere som hovedsoftwaren.
  8. Kun produktive installationer kræves for at være licenseret, for resten kan du få en udviklerlicens: https://confluence.atlassian.com/jirakb/get-a-developer-license-for-jira-server-744526918.html.
  9. For at købe vedligeholdelse kræves køb af Renew Software-vedligeholdelse - prisen er cirka 50 % af prisen på den originale software. Denne funktion er ikke tilgængelig for datacentret og gælder ikke for plugins - du skal betale den fulde pris årligt for at understøtte dem.
    Årlig softwaresupport koster således mere end 50 % af softwarens samlede omkostninger i tilfælde af Server-udgaven og 100 % i tilfælde af Data Center-udgaven – det er væsentligt mere end de fleste andre leverandører. Efter min mening er dette en væsentlig ulempe ved Atlassian forretningsmodel.

Funktioner ved overgangen fra Server-udgaven til Datacenteret:

  1. Overgangen fra Server-udgaven til Datacenteret er betalt. Pris kan findes her https://www.atlassian.com/licensing/data-center.
  2. Når du skifter fra Server-udgaven til Datacenteret, skal du ikke betale for at ændre udgaven af ​​plugins - plugins til Server-udgaven vil fungere. Men det vil være nødvendigt at forny licenser til plug-ins til Data Center-udgaven.
  3. Du kan bruge plugins, der ikke har en version til brug med Data Center-udgaver. På samme tid kan sådanne plugins selvfølgelig ikke fungere korrekt, og det er bedre at give et alternativ til sådanne plugins på forhånd.
  4. Opgradering til Data Center-udgaven sker ved at installere en ny licens. Samtidig er licensen til Server-udgaven stadig tilgængelig.
  5. Der er ingen funktionelle forskelle mellem Datacenter- og Server-udgaven for brugere, alle forskelle er kun i funktionerne til administration og installationens tekniske muligheder.
  6. Udgifterne til software og plug-ins er forskellige for Server- og Data Center-udgaverne. Forskellen i omkostninger er ofte mindre end 5 % (ikke afgørende). Et eksempel på omkostningsberegning er vist nedenfor.

Funktionelt omfang af implementering

Den grundlæggende Atlassian-softwarepakke indeholder et stort antal funktioner, men ofte mangler de funktioner, som systemet leverer, alvorligt. Nogle gange er selv de enkleste funktioner ikke tilgængelige i grundpakken, så plug-ins er uundværlige til næsten enhver implementering. Til Jira-systemet bruger vi følgende plugins (billedet er klikbart):
Sådan implementeres Atlassian Jira + Confluence i et selskab. Tekniske spørgsmål

Til Confluence-systemet bruger vi følgende plugins (billedet er klikbart):
Sådan implementeres Atlassian Jira + Confluence i et selskab. Tekniske spørgsmål

Kommentarer til tabeller med plugins:

  • Alle priser er baseret på 2000 brugere;
  • Priserne er baseret på de angivne priser https://marketplace.atlassian.com, de reelle omkostninger (med rabatter) er lavere;
  • Som du kan se, er det samlede beløb stort set det samme for Data Center- og Server-udgaverne;
  • Kun plug-ins med understøttelse af Data Center-udgaven blev valgt til brug. Vi udelukkede resten af ​​plugins fra planerne for systemets stabilitet.

Funktionaliteten er kort beskrevet i kommentarkolonnen. Yderligere plugins har udvidet funktionaliteten af ​​systemet:

  • Tilføjet flere visuelle værktøjer;
  • Forbedrede integrationsmekanismer;
  • Tilføjede værktøjer til vandfaldsmodelprojekter;
  • Tilføjede værktøjer til skalerbar Scrum til at organisere arbejdet i store projektteams;
  • Tilføjet funktionalitet til tidsregistrering;
  • Tilføjet værktøjer til automatisering af operationer og konfiguration af løsningen;
  • Tilføjet funktionalitet for at forenkle og automatisere administrationen af ​​løsningen.

Derudover bruger vi Atlassian Companion app. Denne applikation giver dig mulighed for at redigere filer i eksterne applikationer (MS Office) og returnere dem til Confluence (check-in).
Ansøgning til brugerarbejdsstationer (tyk klient) ALM Works Jira-klient https://marketplace.atlassian.com/apps/7070 besluttede ikke at bruge på grund af dårlig leverandørsupport og negative anmeldelser.
for integration med MS Project vi bruger et selvskrevet program, der giver dig mulighed for at opdatere problemstatus i MS Project fra Jira og omvendt. I fremtiden planlægger vi at bruge et betalt plugin til samme formål Ceptah Bridge - JIRA MS Project Plugin, som er installeret som en tilføjelse til MS Project.
Integration med eksterne applikationer implementeret via applikationslinks. Samtidig er integrationer til Atlassian-applikationer prækonfigureret og virker umiddelbart efter opsætning, for eksempel kan du vise information om Issues i Jira på en side i Confluence.
REST API'en bruges til at få adgang til Jira- og Confluence-serverne: https://developer.atlassian.com/server/jira/platform/rest-apis.
SOAP og XML-RPC API'erne er forældede og ikke tilgængelige i de nye versioner til brug.

Konklusion

Så vi har overvejet de tekniske funktioner ved at implementere et system baseret på Atlassian-produkter. Den foreslåede løsning er en af ​​de mulige løsninger og er velegnet til et virksomhedsmiljø.

Den foreslåede løsning er skalerbar, fejltolerant, indeholder tre miljøer til organisering af udvikling og test, indeholder alle de nødvendige elementer for samarbejde i systemet og giver en bred vifte af projektstyringsværktøjer.

Jeg vil med glæde besvare spørgsmål i kommentarerne.

Kilde: www.habr.com