SDLC: роль Ops-фахівців у циклі

Підходи до розробки продукту постійно змінюються. Причина: попит із боку ринку. Потрібно швидше випускати продукти та при цьому підвищувати їхню якість. Тому ІТ-компанії постійно пробують нові підходи, аналізують їх ефективність і впроваджують те, що дало результат.

Актуальні підходи до розробки ділять IT-команди за ролями, де всі працюють разом. Деякі з цих концепцій включають TechOps, DevOps та NoOps.

Це не приклади стеків чи мов програмування. Це робочі моделі, які визначають, як команда бере участь у процесі та виконує свої функції. 

Іншими словами, це різні підходи до розробки, розгортання та обслуговування IT-продуктів.

Розберімося у цих концепціях. 

TechOps

TechOps — це роль, яка включає більшу частину завдань, звичних для системного адміністратора. Методи TechOps у будь-якому випадку будуть відрізнятися в залежності від компанії, але суть залишається незмінною: вони відповідають за доставлення та підтримку інфраструктури. Це включає обслуговування та оптимізацію мережі, управління базами даних, забезпечення безпеки, аварійне відновлення та інші завдання підтримки.

TechOps виконує всі ІТ-ролі, окрім розробки. Це допомагає зменшити навантаження на команду розробників. Так вони можуть зосередитися на створенні продукту та ефективніше виконувати інші важливі технічні завдання. 

Щоб стати TechOps-інженером, потрібно вміти писати код, управляти проєктами, аналізувати інциденти та розв’язувати проблеми інфраструктури.

DevOps

DevOps — це культура або методологія, яка допомагає об’єднати підрозділи розробки, адміністрування та тестування. Її мета: підвищити продуктивність та оптимізувати процес створення продукту. Практики DevOps в основному застосовуються для того, щоб забезпечити CI/CD — безперервну інтеграцію та розгортання.

DevOps не замінює TechOps, а швидше заповнює прогалини цієї концепції. 

Головна відмінність двох концепцій у тому, що DevOps діє на випередження, а TechOps розв’язує проблеми в міру їх надходження.

Atlassian у 2020 провело дослідження тенденцій у DevOps. 99% учасників, які запровадили його, відзначили позитивний вплив на бізнес.

Компанії, які повністю перейшли на DevOps, швидше випускають продукти, рідше стикаються зі складнощами у процесі розробки та краще розв’язують проблеми, ніж компанії, що не працюють із цією концепцією. Це відзначається у звітах State of DevOps.

TechOps чи DevOps: що краще?

Ці концепції схожі. Багато розробників вважають, що TechOps — це класичний підхід до DevOps. Але така думка не розкриває всю суть.

DevOps розглядає розробку програмного забезпечення та IT-операції як єдиний потік. Це покращує робочий процес, робить його більш гнучким та швидким. А TechOps наголошує на стабільності та надійності.

TechOps тестує та контролює готову систему в робочих умовах. Сюди відносяться перезапуск сервера після збою, автоматичні процеси, які тестують помилки, підготовку звітів про помилки. Тобто ситуації, які відбуваються вже після того, як продукт виготовлено.

DevOps не ділить команду на підрозділи, де кожен відповідає за окремий етап: концепція підключає TechOps у проєкт із самого початку. Команди взаємодіють, щоб знаходити проблеми та прискорити розробку.

DevOps — більш адаптована концепція. Різниця в тому, що TechOps дотримується правил, щоб бути стабільною та знижувати ризики. А друга концепція ці правила створює під себе. Вона включає різні методи, щоб знайти швидке, але ефективне рішення.

Обидві концепції відіграють важливу роль у процесі розробки, але їх не можна розглядати як альтернативу одна одній.

Щоб процес був ефективним та надійним, вам потрібен TechOps для обслуговування, відновлення та оптимізації інфраструктури. А ще потрібен DevOps, щоб зробити розробку гнучкою. В певний момент SDLC взаємодія цих концепцій допоможе масштабувати розробку.

NoOps

Суть підходу NoOps, або відсутності операцій, у тому, щоб повністю автоматизувати адміністрування та використання. Тоді команді не треба буде керувати процесом розробки та контролювати його. NoOps представляє розробку як середовище, де люди не впливають на безперебійну роботу, тому їхнє втручання не є обов’язковим.

Зазвичай команда розробників спочатку визначає та збирає вимоги для програми, яку належить написати. Коли програма готова, її протестують, щоб перевірити ефективність, а потім передадуть IT-команді, яка реалізує програму та буде її підтримувати.

NoOps — це відхід від звичного підходу до IT-операцій. Його особливість у тому, щоб перебудувати IT-процеси за допомогою їхньої автоматизації, машинного навчання та штучного інтелекту. Це вирішує і рутинні, і складніші завдання.

NoOps може забрати на себе більшу частину дій щодо реалізації та моніторингу програм, зменшуючи втручання співробітників TechOps. Це не ідеальне рішення, але воно допомагає компаніям заощадити гроші на команду та її час.

Використання штучного інтелекту для автоматизації операцій, звичайно, підвищує ефективність. Але ідея того, що компанії можуть використовувати його та хмарні сервіси, щоб прибрати всі ІТ-операції, поки що нереальна. Багато хто вважає, що NoOps можна настроїти лише для деяких операцій. Тому, якщо ви хочете масштабувати розробку, краще не розраховувати на цю концепцію.

Попри плюси NoOps, більшість технічних експертів не вважає її повною альтернативою DevOps. Вони зазначають, що у довгостроковій перспективі цієї концепції недостатньо. 

Висновок

Ми не можемо сказати, що ці три концепції можуть бути альтернативами одна одній. TechOps — це роль, DevOps — робоча практика чи культура, NoOps — це застосування автоматизованих технологій для покращення операцій. Найкращий варіант: використовувати їх разом, щоб вони доповнювали одна одну.

Залишити відповідь

Дякуємо, що поділились