Запитання про DevOps та CI/CD ставлять на технічній співбесіді, навіть якщо ви щойно завершити курси Проектного менеджмента. На перші ваші місяці роботи, вам точно не треба будуть глибокі знання у цій темі, але базове розуміння, що до чого - вам точно потрібно буде. Закриваємо ці білі плями у поточній статті.
Почнемо з історії, для того щоб було глибше розуміння та запам'ятався матеріал.
Чому виник DevOps?
Ще 15-20 років тому розробка програмного забезпечення (Development) та його підтримка і експлуатація (Operations) були відокремленими процесами. Команда розробників писала код і передавала його іншій команді, яка запускала код у продакшн.
Кожен робив свою частину роботи, за яку був відповідальний, і не втручався в інші процеси. Розробники зосереджувалися на написанні коду, а команда Ops (адміни, спеціалісти з налаштування інфраструктури, моніторингу, безпеки і т.п.) – на його розгортанні та підтримці. В результаті, коли виникали проблеми, відповідальність часто перекладалася з однієї команди на іншу. Розробники не могли дати відповіді на питання щодо інфраструктури, а команда Ops не завжди розуміли, як працює написаний код. Це створювало багато проблем.
Щоб вирішити ці проблеми, з’явився підхід DevOps, від двух слів Dev - Development та Ops - Operations. Тобто, цей підхід поєднав процеси розробки, тестування, розгортання та підтримки програмного забезпечення в одне ціле.
Що таке DevOps?
DevOps - це набір практик, який дозволяє розробникам і адміністраторам працювати разом, щоб швидше та ефективніше випускати якісне програмне забезпечення.
Основні принципи DevOps:
- Співпраця, тобто всі учасники процесу (розробники, тестувальники, адміністратори, менеджери) працюють разом.
- Автоматизація - використовують інструментів для автоматичного тестування, розгортання та моніторингу.
- Безперервна інтеграція та доставка (CI/CD) - це один із ключових процесів DevOps, що дозволяє командам автоматизувати оновлення програмного забезпечення та швидко впроваджувати зміни (детальніше - нижче).
- Моніторинг - це контроль продуктивності системи та швидке виявлення проблем.
Підхід DevOps змінив традиційний процес розробки, роблячи його швидшим, гнучкішим і менш залежним від людських помилок. Один із ключових елементів DevOps - це автоматизація розробки та розгортання програмного забезпечення за допомогою CI/CD.
Що таке CI/CD?
CI/CD складається з трьох основних процесів – Continuous Integration (CI), Continuous Delivery (CD) та Continuous Deployment (CD).
Розглянемо детальніше:
- Continuous Integration (CI) – це практика, коли розробники регулярно інтегрують зміни у коді в загальний репозиторій. Після кожної інтеграції запускаються автоматичні тести, щоб виявити потенційні помилки якомога раніше. Це допомагає підтримувати стабільність коду та зменшує ризики великих збоїв при розгортанні нових функцій.
- Continuous Delivery (CD) – це наступний етап після CI, який передбачає автоматичне підготовлення коду до випуску. Пройшовши всі необхідні тести, код передається на тестове або staging-середовище (про серидовища тут), але його розгортання в продакшн все ще відбувається вручну за рішенням команди.
- Continuous Deployment (CD) – це максимальна автоматизація процесу. Якщо код успішно пройшов всі автоматичні тести, він автоматично розгортається у продакшн без ручного втручання. Це дозволяє випускати оновлення кілька разів на день.
Головна різниця між Continuous Delivery і Continuous Deployment полягає в тому, що при Continuous Delivery код все ще потребує ручного затвердження перед випуском у продакшн, а при Continuous Deployment цей процес повністю автоматизований.
Хто такий DevOps-інженер
Усі вищеописані процеси не відбуваються самі собою. За їх впровадження та підтримку відповідає спеціаліст, який поєднує знання розробки та адміністрування систем. Це DevOps-інженер.
У невеликих компаніях окремого DevOps-інженера може не бути, і цими процесами може займатися головний розробник або технічний спеціаліст. У великих компаніях частіше є окремі DevOps-інженери, які спеціалізуються на налаштуванні та оптимізації цих процесів. Вони допомагають командам швидше та безпечніше випускати оновлення, а також забезпечують стабільну роботу сервісів.
DevOps-інженер - це фахівець, який поєднує навички розробника та адміністратора інфраструктури. Його основне завдання: автоматизація процесів розробки, тестування, розгортання та підтримки програмного забезпечення. Він забезпечує стабільну роботу сервісів, налаштовує CI/CD-процеси та допомагає командам швидше впроваджувати зміни.
Розуміння DevOps для проектного менеджера
Розуміння DevOps корисне для проектного менеджера, оскільки воно допомагає:
- Ефективно співпрацювати з командою розробки – розуміти, як працюють розробники, тестувальники та DevOps-інженери, щоб будувати правильну комунікацію.
- Планувати реалістичні дедлайни – знати, скільки часу займають різні етапи розробки, тестування та випуску оновлень.
- Координувати релізи – уникати плутанини під час випуску оновлень та зрозуміти, як працює процес розгортання продукту.
- Розуміти важливість автоматизації – знати, як автоматизоване тестування та CI/CD допомагають зробити розробку швидшою та стабільнішою.
- Швидко реагувати на проблеми – розуміти, як працює моніторинг та аналізувати збої для своєчасного реагування.
- Не перевантажувати команду зайвими запитами – знати, які процеси можна автоматизувати, а які потребують ручного втручання, щоб правильно організовувати роботу команди.
Отже, DevOps та CI/CD - це важливі концепції у сучасній розробці. Хоча проектному менеджеру не потрібно знати всі технічні деталі, розуміння основних принципів допоможе вам ефективніше працювати з командою технічних спеціалістів
Більше подібних статтей:
Гід з Git для нетехнічних спеціалістів
Що таке API простими словами. Посібник для нетехнічних спеціалістів
За лаштунками веб-розробки: просто про фронт-енд (гайд для нетехнічних спеціалістів)
Тестування ПЗ: Все, що ви хотіли знати, але боялися запитати
Домен, хостинг та DNS що це і навіщо потрібно? Простими словами для нетехнічних спеціалістів
Ще немає коментарів