Як впровадити Atlassian Jira + Confluence у корпорації. Технічні запитання

Чи плануєте впровадження ПЗ Atlassian (Jira, Confluence)? Не хочете припуститися жорстоких помилок у проектуванні, які потім доведеться вирішувати в останній момент?

Як впровадити Atlassian Jira + Confluence у корпорації. Технічні запитання
Тоді вам сюди - розглядаємо використання Atlassian Jira + Confluence в корпорації з урахуванням різних технічних аспектів.
Здрастуйте, я є Власником продукту в РСХБ і відповідаю за розвиток Системи управління життєвим циклом (СУЖЦ), побудованої на програмних продуктах компанії Atlassian Jira та Confluence.

У статті опишу технічні аспекти побудови СУЖЦ. Стаття буде корисною всім, хто планує до впровадження або займається розвитком Atlassian Jira та Confluence у корпоративному оточенні. Стаття не вимагає спеціальних знань та розрахована на початковий рівень знайомства з продуктами компанії Atlassian. Стаття буде корисна адміністраторам, власникам продукту, керівникам проектів, архітекторам, усім, хто планує впровадження систем на основі ПЗ Atlassian.

Запровадження

У статті будуть розглянуті технічні питання запровадження Системи управління життєвим циклом (СУЖЦ) у корпоративному оточенні. Давайте спочатку визначимо, що це означає.

А що означає корпоративне рішення?

Це означає рішення:

  1. Масштабується. У разі зростання навантаження існує технічна можливість наростити потужність системи. Розділяють горизонтальне та вертикальне масштабування - при вертикальному масштабуванні нарощується потужність серверів, при горизонтальному масштабуванні збільшується кількість серверів для роботи системи.
  2. Відмовостійке. Система залишиться доступною при виході з експлуатації одного елемента. Загалом для корпоративних систем не потрібно стійкості до відмов, але ми розглядатимемо саме таке рішення. У нас в системі планується кілька сотень конкурентних користувачів і простої будуть дуже критичними.
  3. Підтримуване. Рішення має бути на підтримці у вендора. ПЗ без підтримки повинно заміщатися власними розробками або іншим програмним забезпеченням з підтримкою.
  4. Встановлення Самокерований (On-premise). Self-managed - це можливість встановлювати програмне забезпечення не в хмарі, а на власних серверах. Якщо бути точніше, то все це варіанти установки не SaaS. У цій статті ми будемо розглядати варіанти встановлення лише Self-managed.
  5. Можливість незалежної розробки та тестування. Для організації передбачуваних змін у системі, потрібні окремі системи для розробки (змін у самій системі), система тестування (Staging) та продуктивна система для роботи користувачів.
  6. Інше. Підтримує різні сценарії аутентифікації, підтримує аудит логи, має рольову модель, що настроюється, і т.д.

Це основні елементи корпоративних рішень і, на жаль, часто про них забувають під час проектування системи.

А що таке Система управління життєвим циклом (СУЖЦ)?

Якщо коротко, то в нашому випадку це Atlassian Jira та Atlassian Confluence – система, що надає інструментарій для організації колективної роботи. Система не «нав'язує» правила організації роботи, а надає різноманітний інструментарій для роботи, це і Scrum, і Kanban-дошки, і водоспадна модель, і Scrum, що масштабується, і т.д.
Назва СУЖЦ не є галузевим терміном чи загальновживаним поняттям, це просто назва системи у нашому Банку. СУЖЦ для нас не є системою баг-трекінгу, не є системою Управління інцидентами та системою Управління змінами.

Що включає впровадження?

Впровадження рішення складається з безлічі технічних та організаційних питань:

  • Виділення технічних потужностей.
  • Закупівля ПЗ.
  • Створення команди щодо впровадження рішення.
  • Встановлення та конфігурація рішення.
  • Розробка архітектури рішення. Рольової моделі.
  • Розробка експлуатаційної документації, включаючи інструкції, регламенти, технічний проект, положення та ін.
  • Зміна процесів компанії.
  • Створення команди підтримки. Розробка SLA.
  • Навчання користувачів.
  • Інше.

У цій статті ми розглянемо технічні аспекти впровадження, без деталей щодо організаційної складової.

Особливості Atlassian

Компанія Atlassian є лідером у багатьох сегментах:

Продукти компанії Atlassian мають всі необхідні корпоративні функції. Я відзначу такі особливості:

  1. Рішення Atlassian базуються на веб-сервері Java Tomcat. ПЗ Apache Tomcat йде у складі ПЗ Atlassian, як частина інсталяції, змінити версію Apache Tomcat, встановленого у складі ПЗ Atlassian, не можна, навіть якщо версія застаріла та містить уразливості. Єдина можливість, це чекати на оновлення від Atlassian, з більш новою версією Apache Tomcat. Зараз, наприклад, в актуальних версіях Jira йде Apache Tomcat 8.5.42, а Confluence йде Apache Tomcat 9.0.33.
  2. Зручний інтерфейс, реалізовані найкращі практики, доступні на ринку для даного класу ПЗ.
  3. Повністю настроюване рішення. З доопрацюваннями можна реалізувати будь-яку зміну базового функціоналу для користувача.
  4. Розвинена екосистема. Є кілька сотень партнерів: https://partnerdirectory.atlassian.com, зокрема 16 партнерів у Росії. Саме через партнерів у Росії можна купити ПЗ Atlassian, плагіни, пройти навчання. Саме партнери розробляють та підтримують більшість плагінів.
  5. Магазин додатків (плагіни): https://marketplace.atlassian.com. Плагіни значно розширюють функціонал Atlassian. Базовий функціонал програмного забезпечення Atlassian досить скромний, практично для будь-яких завдань виникає необхідність встановлення додаткових плагінів безкоштовно або за додаткові гроші. Тому витрати на ПЗ можуть виявитися значно вищими, ніж це оцінювалося спочатку.
    На даний момент у магазині опубліковано кілька тисяч плагінів, майже тисячу з них протестовано та валідовано за програмою Data Center approved apps. Такі плагіни можуть вважатися стабільними та відповідними для використання в навантажених системах.
    Раджу ретельно підійти до питання планування плагінів, це сильно впливає на вартість рішення, багато плагінів можуть призвести до нестабільності системи і виробник плагіну не надавати підтримки для вирішення проблеми.
  6. Навчання та сертифікації: https://www.atlassian.com/university
  7. Підтримуються механізми SSO, SAML 2.0.
  8. Підтримка масштабованості та стійкості до відмови є тільки в редакціях Data Center. Така редакція вперше з'явилася у 2014 році (Jira 6.3). Функціональність редакцій Data Center постійно розширюється та доопрацьовується (наприклад, можливість single node installation з'явилася лише у 2020 році). Підхід до плагінів для редакцій Data Center сильно змінився в 2018 з введенням Data Center approved apps.
  9. Вартість підтримки. Вартість підтримки від вендора практично дорівнює повній вартості ліцензій ПЗ. Приклад розрахунку вартості ліцензій наведено нижче.
  10. Відсутність Long Term релізів. Є так звані Enterprise версіїАле вони, як і всі інші версії, підтримуються 2 роки. З тією відмінністю, що для Enterprise версій випускаються лише виправлення без додавання нового функціоналу.
  11. Розширені варіанти підтримки (додаткові гроші). https://www.atlassian.com/enterprise/support-services
  12. Підтримується кілька варіантів СУБД. ПЗ Atlassian поставляється з безкоштовною СУБД H2, дана СУБД не рекомендується для продуктивного використання. Для продуктивного використання підтримуються такі бази даних: Amazon Aurora (Data Center only) PostgreSQL, Azure SQL, MySQL, Oracle DB, PostgreSQL, MS SQL Server. Є обмеження за підтримуваними версіями і часто підтримуються тільки старі версії, але для кожної СУБД є версія з підтримкою вендора:
    Jira supported platforms,
    Confluence supported platforms.

Технічна архітектура

Як впровадити Atlassian Jira + Confluence у корпорації. Технічні запитання

Пояснення до схеми:

  • На схемі наведено реалізацію в нашому Банку, дана конфігурація наводиться, як приклад і не є рекомендованою.
  • Nginx надає функціонал reverse-proxy і для Jira, і для Confluence.
  • Відмовостійкість СУБД реалізується засобами СУБД.
  • Перенесення змін між середовищами здійснюється за допомогою плагіна Configuration Manager for Jira.
  • AppSrv на схемі - це власний сервер додатків для звітності, не використовує Atlassian.
  • БД EasyBI створена для побудови кубів та звітності з використанням плагіну eazyBI Reports and Charts for Jira.
  • Сервіс Confluence Synchrony (компонента, що дозволяє проводити одночасне редагування документів) не виділено в окрему інсталяцію і запускається спільно з Confluence, на тому самому сервері.

Ліцензування

Питання ліцензування Atlassian заслуговують на окрему статтю, тут згадаю тільки загальні принципи.
Головні питання, з якими ми зустрілися, — це питання ліцензування редакцій Data Center. Особливості ліцензування для редакцій Server та Data Center:

  1. Ліцензія для редакції Server є безстроковою і покупець може використовувати ПЗ навіть після закінчення ліцензії. Але після закінчення ліцензії покупець позбавляється права отримувати підтримку продукту і оновлювати ПЗ на актуальні версії.
  2. Ліцензування здійснюється за кількістю користувачів у системі 'JIRA Users' global permission. При цьому не важливо, чи користуються вони системою чи ні — навіть якщо користувачі не заходили в систему жодного разу, всі користувачі будуть враховані для ліцензії. У разі перевищення кількості ліцензованих користувачів рішенням буде видалити повноваження 'JIRA Users' у частини користувачів.
  3. Ліцензія на Data Center фактично є передплатою. Потрібна щорічна оплата ліцензії. При закінченні терміну роботу з системою буде заблоковано.
  4. Вартість ліцензій може змінюватися з часом. Як показує практика, у велику сторону і, можливо, суттєво. Тому якщо у вас цього року ліцензії коштують одну суму, то наступного року вартість ліцензій може зрости.
  5. Ліцензування здійснюється за користувачами з tier (наприклад, рівень 1001-2000 користувачів). Є можливість перейти на вищий tier, з доплатою.
  6. При перевищенні кількості користувачів, що ліцензуються, нові користувачі будуть створюватися без права входити в систему ('JIRA Users' global permission).
  7. Плагіни можна ліцензувати тільки на ту саму кількість користувачів, що й основне програмне забезпечення.
  8. Ліцензувати потрібно лише продуктивні інсталяції, для решти можна отримати Developer license: https://confluence.atlassian.com/jirakb/get-a-developer-license-for-jira-server-744526918.html.
  9. Для покупки супроводу, потрібна покупка Renew Software maintenance - вартість дорівнює приблизно 50% вартості початкового ПЗ. Така можливість не доступна для Data Center і не поширюється на плагіни — для їхньої підтримки доведеться платити повну вартість щорічно.
    Таким чином, річна підтримка ПЗ коштує понад 50% від повної вартості ПЗ у разі редакції Server і 100% у разі редакції Data Center – це значно більше, ніж у більшості інших вендорів. На мій погляд, це значна мінус бізнес-моделі Atlassian.

Особливості переходу з редакції Server на Data Center:

  1. Перехід із редакції Server на Data Center платний. Вартість можна знайти тут https://www.atlassian.com/licensing/data-center.
  2. У разі переходу з редакції Server на Data Center платити за зміну редакції у плагінів не потрібно — плагіни для редакції Server функціонуватимуть. Але продовжувати ліцензії для плагінів потрібно буде обов'язково для редакції Data Center.
  3. Ви можете використовувати плагіни, для яких немає версії для використання із редакціями Data Center. При цьому, звичайно, такі плагіни можуть працювати некоректно і краще передбачити альтернативу таким плагінам.
  4. Перехід до редакції Data Center здійснюється встановленням нової ліцензії. При цьому ліцензія для редакції Server, як і раніше, залишається доступною.
  5. Немає функціональних відмінностей між редакціями Data Center та Server для користувачів, всі відмінності лише у функціях для адміністрування та технічних можливостях інсталяції.
  6. Вартість ПЗ та плагінів відрізняється для редакцій Server та Data Center. Різниця у вартості часто становить менше 5% (не важливо). Приклад розрахунку вартості наведено нижче.

Функціональний обсяг впровадження

Базове постачання ПЗ Atlassian включає величезну кількість можливостей, але найчастіше можливостей, що надаються системою, сильно не вистачає. Іноді навіть найпростіші функції недоступні в базовій поставці, тому без плагінів не обійтися практично за будь-якого впровадження. Для системи Jira ми використовуємо такі плагіни (картинка клікабельна):
Як впровадити Atlassian Jira + Confluence у корпорації. Технічні запитання

Для системи Confluence ми використовуємо такі плагіни (картинка клікабельна):
Як впровадити Atlassian Jira + Confluence у корпорації. Технічні запитання

Коментарі до таблиць з плагінами:

  • Всі ціни наведено з розрахунку 2000 користувачів;
  • Наведено ціни на основі вказаних цін https://marketplace.atlassian.comреальна вартість (зі знижками) виходить нижче;
  • Як бачимо, підсумкова сума практично не відрізняється для редакцій Data Center та Server;
  • Для використання відібрано плагіни лише за допомогою редакції Data Center. Інші плагіни ми виключили з планів для стабільності системи.

Функціонал коротко описаний у стовпці Коментар. Додаткові плагіни розширили функціонал системи:

  • Додано кілька візуальних інструментів;
  • Поліпшено інтеграційні механізми;
  • Доданий інструментарій для проектів за водопадною моделлю;
  • Доданий інструментарій для масштабованого Scrum, для роботи великих проектних команд;
  • Додано функціонал для ведення обліку часу;
  • Доданий інструментарій для автоматизації операцій та конфігурування рішення;
  • Додано функціонал для спрощення та автоматизації адміністрування рішення.

Додатково ми використовуємо Atlassian Companion app. Ця програма дозволяє редагувати файли у зовнішніх програмах (MS Office) і повертати їх назад у Confluence (check-in).
Додаток для робочих місць користувачів (товстий клієнт) ALM Works Jira Client https://marketplace.atlassian.com/apps/7070 вирішили не використовувати через погану підтримку вендором та негативні відгуки.
Для інтеграції з MS Project у нас використовується самописна програма, яка дозволяє оновлювати статуси Issue в MS Project з Jira і навпаки. У майбутньому, для тих же цілей, плануємо використовувати платний плагін Ceptah Bridge - JIRA MS Project Plugin, який встановлюється як надбудова на MS Project.
Інтеграція із зовнішніми додатками реалізується через Application Links. При цьому, для додатків Atlassian інтеграції налаштовані і працюють відразу після налаштування, наприклад, можна вивести на сторінку Confluence інформацію про Issues в Jira.
Для доступу до серверів Jira та Confluence використовується REST API: https://developer.atlassian.com/server/jira/platform/rest-apis.
SOAP і XML-RPC API є deprecated і недоступні в нових версіях для використання.

Висновок

Отже, ми розглянули технічні особливості впровадження системи на основі Atlassian продуктів. Запропоноване рішення є одним з можливих рішень і добре підходить для корпоративного оточення

Запропоноване рішення — масштабоване, стійке до відмови, стримає три середовища для організації розробки та тестування, містить усі необхідні елементи для спільної роботи в системі та надає широкий спектр інструментів для управління проектами.

З радістю відповім на запитання у коментарях.

Джерело: habr.com