Коротко:

  • Continious Development (розгляд ідеї продукту, планування розробки, розбивання задачі на підзадачі). Інструменти: Jira, Git

Ось так зазвичай зображують життєвий цикл DevOps. Тут багато етапів, які ми вже розглянули, але також додались і нові, наприклад, Release, Operate та Monitor:

Також життєвий цикл DevOps можна описати за допомогою семи «C»:

  • Постійний розвиток (Continuous Development),(ідеї та планування, розбивання задач на малі підзадачі) який спрямований на планування всіх процесів.

✔️Фази

  • Планування;
  • Написання коду.

✔️Практики

  • Планування Agile (using Jira for example);
  • Планування Sprint;
  • Версіонування коду(git).
  • Постійна інтеграція (Continuous Integration). Це один із ключових етапів, де команда пише код, тести, проводить код-ревью щоб впевнитись, що код правильно інтегрований з існуючою кодовою базою.

✔️Практики

  • Юніт-тестування;
  • Інтеграційне тестування;
  • Тестування в середовищі dev;
  • Код-ревью;
  • Пул-реквести;
  • Перевірка якості.
  • Постійне тестування (Continuous Testing). Після інтеграції коду відбувається постійне тестування для перевірки працездатності та виявлення помилок.

✔️Фази

  • Збірка продукту;
  • Тестування.

✔️Практики

  • Автоматизоване тестування;
  • UI-тести.
  • Постійне розгортання (Continuous Deployment), яке передбачає автоматизоване впровадження змін у продакшн після успішного тестування.

✔️Фази

  • Розгортання;
  • Експлуатація (operation).

✔️Практики

  • Автоматизовані реліз-пайплайни;
  • Автоматизоване розгортання коду;
  • Автоматизоване розгортання інфраструктури;
  • Інфраструктура як код;
  • Автоматизовані перевірки якості та безпеки коду;
  • Автоматизовані ролбеки.
  • Постійний зворотний зв'язок (Continuous Feedback). Важливо забезпечити постійний зворотний зв'язок із користувачами для врахування їхніх вимог і відгуків.

✔️Практики

  • A/B-тестування;
  • Флаги функцій (feature flags);
  • Відгуки користувачів.
  • Постійна операційна підтримка (Continuous Operations). Цей етап про налаштування автоматизованих релізів так, щоб оновлення версії не вимагало даунтайму — часу, коли додаток не доступний клієнтам.

✔️Практики

  • Релізи без даунтайму.
  • Постійний моніторинг (Continuous Monitoring). Це фаза, у якій відбувається моніторинг, логування, аналіз помилок і відновлення системи після помилок.

✔️Фази

  • Моніторинг.

✔️Практики

  • Моніторинг;
  • Логування;
  • Створення алертів;
  • Управління інцидентами;
  • Postmortems;
  • Автовідмова;
  • Автомасштабування.