Приёмка DevOps практик на первом этапе перехода с «ручных» практик

DevOps Acceptable Criteria

Приёмка DevOps — Acceptable Criteria
  • Быть готовым к большой амплитуде изменений и вызовов
  • Обеспечить высокую доступность Продуктов для конечных пользователей
  • Сокращение технических задержек на Релиз, до минут, без потери качества

Базовые принципы быстрой разработки:

  • Стерильность сборки
  • Prod-like контуры
  • Эластичная инфраструктура
  • Совместный доступ к коду
  • Авто-тестирование
  • Рутины не больше 50% рабочего времени

Стоит отметить, что проверку перехода на базовые DevOps практики лучше всего проводить поэтапно, каждый этап — это продукт или сервис.

  • Наличие как минимум 2х контуров — Разхработки(Dev) и Стейдж (Stage)
  • Контуры имеют минимальные различия по используемым технологиям и зависимостям от Prod (Prod-like контуры)
  • Все элементы архитектуры продукта и обсуживающей инфраструктуры поддерживают автоматизированное управление
  • Автоматическое попадание инкремента в нужный контур при Коммите(commit) или Мерже (merge)
  • Дымовой тест(Smoke testing) на принципиальную работоспособность, как последний шаг пайплайна
  • При сборке запускаются имеющиеся авто-тесты и критичные сценарии
  • Принципиальный сценарий восстановления прописан в репозитории
  • Для разделения микро-сервисов или элементов системы используется контейнеризация
  • Стерильное разворачивание сервиса
  • Время разворачивания копии продукта — не более чем 30 мин ручного труда
  • Документация по Архитектуре и DevOps лежит в репозиторий
  • Аутентификационные данные не хранятся в открытом виде в репозитории
  • Команде понятно как и куда писать протоколы по сбоям (Postmortem Culture)

Определения:

Стерильность сборки — Организация сборки для внешнего контура таким образом, чтобы исключить возможность передачи Инкрементов:

  • скомпилированных на локальных машинах Разработчиков
  • с использованием внешних(не корпоративных) хранилищ Компонентов и Кода.

Рутина — это ручная, однообразная, поддающаяся автоматизации оперативная работа, связанная с поддержкой̆ работающего сервиса. Ее результаты не имеют ценности в перспективе, а трудоемкость растет линейно по мере роста сервиса(проекта).
- Site Reliability Engineering, Google, 2019

Эластичная инфраструктура (Эластичные вычисления) — это возможность быстро наращивать и освобождать ресурсы процессоров, памяти и хранения для удовлетворения меняющихся требований без необходимости планировать загрузку и предпринимать меры для обработки пиковых нагрузок.
- Microsoft

--

--

Delivery management & DevOps Consultant https://sokolov.im

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store