Вибір засобів для забезпечення життєвого циклу рішень
Всім привіт! Мене звуть Стас, і я працюю на позиції Cloud Solutions Architect. Мені часто доводиться ініціювати старт проектів. При цьому важливо вибрати засоби забезпечення життєвого циклу рішення. Необхідно вирішити, які саме кошти команда буде використовувати для створення, підтримки та розвитку рішення.
Також досить часто доводиться долучатися до проекту, який стартував на ніж було, і він має певні проблеми із засобами забезпечення життєвого циклу. На таких проектах зазвичай потрібна часткова або кардинальна зміна інструментарію.
З причини того, що потрібно щораз витрачати час на пояснення членам команди, що і чому буде використано в конкретному проекті, я вирішив написати цю статтю.
Коли пропонуєте використовувати які-небудь засоби на конкретному проекті, будьте готові нести персональну відповідальність.
Стаття в основному орієнтована на аутсорсинг, так як він складає більшу частину українського IT, однак цілком застосовна і для продуктових компаній. В основному все описане стосується mature аутсорсинг-компаній, які ставлять перед собою цілі пропонувати максимально якісний сервіс для своїх клієнтів.
Багато терміни спеціально залишені на англійській мові, так як переводити їх безглуздо.
Основні поняття
Життєвий цикл рішення— сукупність стадій, які проходить рішення за період свого існування, починаючи від моменту виникнення ідеї до утилізації.
Засоби забезпечення життєвого циклу рішень— сукупність програм і сервісів, які використовуються членами команди в рамках життєвого циклу рішень.
Категорії засобів
Для початку давайте визначимося з категоріями і ролями засобів, що використовуються для забезпечення життєвого циклу. У середньому набір засобів виглядає наступним чином:
Area | Role |
Auth | Централізована аутентифікація і авторизація користувачів, сервісів і додатків. Всі інші засоби інтегруються з цим. |
Communication | Комунікації всередині команди. Комунікації на основі чатів з можливістю проведення відеодзвінків та їх записом, індексуванням та пошуком за ключовими словами. |
Knowledge Sharing | Расшаріваніє знань про проект між всіма учасниками команди. На основі де-факто індустріального стандарту Markdown . |
Вимога Management | Управління та візуалізація вимогами. Наприклад Scrum backlog і Kanban board. |
Repos | Зберігання вихідних і контроль версій. Наприклад, реалізація Git . |
Pipelines | Складання і управління випусками. |
Artifacts | Зберігання артефактів і робота з ними. Наприклад, Debug Symbols , NuGet , NPM , Maven і т. д. |
Test | Функціональне тестування. |
Load Test | Навантажувальне тестування. |
Monitor | Моніторинг рішення і предиктивне аналітика. |
Feedback | Збір відгуків про використання рішення. |
IDE | Середовище розробки. З коробки інтегрована з усіма системами. |
Розміщення
Звичайно за умовами контрактів між замовникомі виконавцем, які мало хто читає, абсолютно всі артефакти, породжені під час життєвого циклу рішення, належать замовнику. В даному випадку артефакти — це документація, вимоги, код, зібрані додаток, тести і т. д.
Розглянемо наступні варіанти розміщення:
Розміщення на стороні виконавця (on-prem)
Плюс:
- Деякі інструменти можуть бути вже розгорнуті і налаштовані.
Мінуси:
- Потрібно обов'язково закласти процес передачі артефактів на бік замовника, а це вимагає ідентичного набору розгорнутих сервісів на стороні клієнта.
- Украй рідкі випадки, коли всі інструменти є на стороні виконавця.
- Витрати на ліцензування закладаються у вартість послуг, і оплата покладається на виконавця.
- Потрібно організувати доступ членам команди зі сторони замовника до інфраструктури, сервісів і систем, які на стороні виконавця.
- Потрібні витрати на підтримку і оновлення і заліза.
Розміщення на стороні замовника (on-prem)
Плюси:
- Немає необхідності передавати артефакти.
- Клієнт сам платить за ліцензії.
Мінуси:
- Украй рідкі випадки, коли всі інструменти є на стороні клієнта.
- Будьте готові до проблем з отриманням доступу до інфраструктури, систем і сервісів.
- Потрібні витрати на підтримку і оновлення і заліза.
Розміщення на третій стороні (service)
Плюс:
- Всі артефакти належать клієнту через договір надання послуг з третьою стороною.
Мінус:
- З обох сторін можливі випадки параної на тему третя сторона все вкраде.
Змішані варіанти не виключені, але, як правило, вони мають мінусами всіх вищеперелічених.
Особисто я завжди намагаюся просунути варіант використання хмарних сервісів і тільки у виняткових ситуаціях — розміщення на стороні замовника.
Кошти
Є два варіанти отримання набору засобів:
- зібрати з різних інструментів від різних постачальників.
- використовувати рішення від одного постачальника.
Це як ніби вам потрібна машина, щоб їздити, і ви можете купити або взяти в оренду і їздити відразу. Або ви можете придбати запчастини, витратити величезну кількість часу і грошей і зібрати з них пепелац .
Увага! У цій статті я розглядаю саме ті кошти і в тій комбінації, які мені найбільше зустрічалися і з якими у мене є реальний досвід роботи.
- Option A — на основі сервісів і продуктів компанії Atlassian , іноді згадується як Atlassian Stack. Насправді найчастіше використовується максимум 3 продукту від Atlassian.
- Option M — на базі сервісів і продуктів Microsoft , в основі якого лежить пакет хмарних сервісів Azure DevOps . До недавнього часу був одним продуктом Visual Studio Team Services. Має версію, доступну on-prem .
Природно, на ринку засобів забезпечення життєвого циклу — багато пропозицій. Кількість можливих варіантів використання в різних комбінаціях просто величезна. Однак я спеціально повторюся, у статті розглядаються саме ті кошти і в тій комбінації, які я особисто використав у своїй професійній діяльності.
Хочеться окремо сказати, що навіть на великих энтерпрайзных проектах буває проблемно отримати бюджет на системи для забезпечення життєвого циклу. Тобто кожен місяць багато тисяч грошей йдуть на компенсації членам команди і практично завжди починаються питання про сотню-другу для оплати засобів забезпечення життєвого циклу.
Наступна таблиця описує, які конкретно кошти і за якою вартістю в місяць входять у перелічені вище варіанти:
Area | Option A Tool | Cost | Option M Tool | Cost |
Auth | G Suit | ??? | Active Directory | free: basic extra: $1/user |
Knowledge Sharing | Atlassian Confluence | <10 users: $10 >10 users: $5/user |
Wiki | free: 5 users extra: $6/user |
Вимога Management | Atlassian Jira | <10 users: $10 >10 users: $7/user |
Boards | Included |
Repos | Atlassian Bitbucket | <5 users: free >5 users: $5/user |
Repos | Included |
Pipelines | Jenkins | *1 | Pipelines | free: 1 extra: $40/pipe |
Artifacts | MyGet | 5 feeds: $40 | Artifacts | free: 5 users extra: $4/user |
Test | Gurock TestRail | $30/user | Test Plans | $52/user |
Load Test | Load Impact | $300 | Load Tests | free: 20k extra: $36/100k |
Деякі Area не описані, це зроблено з метою спрощення. Тому вибір тих же Communication коштів — це тема ще однієї статті.
Порівняння варіантів
Давайте порівняємо обидва варіанти по наступних аспектах:
Area | Option A | Option M |
Auth | Інтеграція продуктів з централізованою системою аутентифікації вимагає додаткових витрат. | Інтеграція з коробки з Active Directory і реалізує B2B Collaboration . |
Compliance | Atlassian заявляє про відповідність наступним вимогам: GDPR, ISO 27001, SOC 2 Type 1, CSA STAR Level 1. | Microsoft заявляє про відповідність наступним вимогам: GDPR, ISO 27001:2013, SOC 1 Type 2, SO 2 Type 2, HIPAA, BAA, EU Model Clauses. |
Legal | Потрібно прийняти різні політики від кожного постачальника. | Потрібно прийняти тільки одну політику від одного постачальника. |
Service Management | Хоч більшість сервісів керовані, деякі, такі як Jenkins, вимагають додаткової інфраструктури, налаштування та підтримки. | Всі сервіси керовані. |
Traceability | Потрібні додаткові витрати на покупку і інтеграцію плагінів. | Доступна з коробки. |
Price & Payment | Окрема покупка кожного сервісу у різних постачальників. Окремі рахунки-фактури в кінці місяця. Сукупна вартість володіння більше, ніж рішення «все в одному». |
Всі послуги придбаваються у одного постачальника у вигляді пакета. Один рахунок-фактура в кінці місяця. Сукупна вартість володіння менше, ніж у окремих систем. |
Порівняння систем по функціональності систем тут не проводимо, бо в цілому системи +/- володіють однаковою функціональністю і, наприклад, порівняння Jira з Boards — це також окрема тема.
Якщо ваш проект в регульованому домені, наприклад Healthcare, то бажано, щоб абсолютно всі сервіси, які ви використовуєте, відповідали вимогам, специфічним в цьому домені. Наприклад, якщо ваш проект в домені Healthcare і територіально в USA, то вам краще використовувати тільки HIPAA Compliant кошти.
Сценарії використання
Щоб дати уявлення про приблизну вартість володіння, нижче наведено кілька сценаріїв використання.
- Stakeholders працюють тільки з вимогами.
- Всі члени команди як мінімум мають доступ до системи тестування для перегляду планів, кейсів і результатів.
- Вартість Pipeline Agents, Load Tests не включені.
- Вартість Option M може бути зменшена, якщо члени команди мають Visual Studio Subscription .
Scenario 1Команда малого розміру: 3 stakeholders, 5 developers, 1 tester.
Options&Tools | 3х stakeholder | 5х dev | 1х test | Total |
Option A | $350 | |||
Confluence | $10 | |||
Jira | $30 | $50 | $10 | $90 |
Bitbucket | Not Required | $25 | $5 | $30 |
MyGet | Not Required | $40 | ||
TestRail | Not Required | $150 | $30 | $180 |
Option M | $58 | |||
Wiki | Included | Included | Included | $0 |
Boards | Included | Included | $6 | $6 |
Repos | Not Required | Included | Included | $0 |
Artifacts | Not Required | Included | Not Required | $0 |
Test Plans | Not Required | Included | $52 | $52 |
Scenario 2Команда середнього розміру: 5 stakeholders, 20 developers, 5 тестерів.
Options&Tools | 5х stakeholder | 20х dev | 5х test | Total |
Option A | $1422 | |||
Confluence | $25 | $100 | $25 | $150 |
Jira | $35 | $140 | $35 | $210 |
Bitbucket | Not Required | $100 | $25 | $125 |
MyGet | Not Required | $117 | Not Required | $117 |
TestRail | Not Required | $820 | ||
Option M | $520 | |||
Wiki | Included | Included | Included | $0 |
Boards | Included | $150 | Included | $150 |
Repos | Not Required | Included | Included | $0 |
Artifacts | Not Required | $110 | Not Required | $110 |
Test Plans | Not Required | Included | $260 | $260 |
Висновок
Я не хочу нав'язувати комусь свою думку. Хіба що додам, що перед тим як вибирати засоби, добряче подумайте, проаналізуйте і порівняйте кілька варіантів.
P. S. Сподіваюся, ця стаття підштовхне людей з досвідом до написання своїх матеріалів, що розкривають інші аспекти засобів забезпечення життєвого циклу. Наприклад, особисто я б почитав порівняння Azure DevOps з GitLab Cloud.
Опубліковано: 20/12/18 @ 11:11
Розділ Різне
Рекомендуємо:
DOU Hobby: Косплей — гра у костюми та образи улюблених персонажів
PHP дайджест #18: автори РНР виходять з проектом, реліз 7.3
Путівник по сертифікації проектного менеджменту
Підсумки 2018 року і плани на 2019
«У мене був кращий старт, ніж у випускників Стенфорда, бо в мене багато досвіду». Розповідь Senior software engineer з LinkedIn Марії Панютіної