Базовые принципы DevOps культуры
2 min readOct 6
--
Цели:
- Проектировать, создавать, тестировать и развертывать программное обеспечение быстрее и с более высоким качеством.
- Минимизировать барьеры между разработкой программного обеспечения и инфрастуктурными командами.
Базовые принципы DevOps культуры
Культурные Принципы:
- Ответственность: Все участники команды отвечают за качество и надежность продукта.
- Осознание Риска: Все участники команды понимают и принимают возможные риски и стараются их минимизировать.
Принципы Разработки:
- Стерильность сборки: Исключение возможности использования инкрементов, собранных на локальных машинах разработчиков или с использованием внешних хранилищ.
- Прод-like контуры: Контуры должны быть максимально похожи на Продуктивный контур, на сколько это целесообразно.
- Инфраструктура как Код (IaC): Автоматизация создания и изменения инфраструктуры с помощью кода.
- Непрерывная интеграция (CI): Автоматическая проверка и интеграция нового кода.
- Непрерывная поставка и развертывание (CD): Автоматический процесс выкатки изменений в продуктивное окружение.
- Трассировка требований: Связь между беклогом, программным кодом и кодом структур БД должна быть просто прослеживаемой.
Принципы Эксплуатации:
- Инфраструктура как Сервис (IaaS): Возможность быстро менять объем ресурсов на окружениях в зависимости от текущих потребностей.
- Управление конфигурациями: Конфигурации программ, продуктов, инструментов и окружений — тоже являются кодом и могут быть быстро воспроизведены, без ручного вмешательства.
- Мониторинг и Логирование: Непрерывное наблюдение за работой приложений и инфраструктуры.
- Chat-OPS: Использование чат-ботов для отслеживания и управления операциями и инцидентами.
- Документация: Актуальная и достаточная для передачи другой команде в рамках компании.
Принципы Безопасности:
- Безопасность на протяжении всего жизненного цикла: Внедрение практик безопасности на всех этапах разработки и эксплуатации.
- Автоматизированное тестирование безопасности: Регулярное и автоматическое тестирование на наличие уязвимостей.
- Принцип наименьших привилегий: Предоставление минимально необходимых прав доступа для выполнения кода или сервисов..
- Шифрование: Шифрование чувствительной информации на этапе разработки, тестирования, хранения и в процессе передачи.
Автоматизация:
- Все что может быть автоматизировано, должно быть автоматизировано.
- Ограничение рутины: Рутинная работа не должна превышать 50% рабочего времени специалистов.
Постоянное Обучение и Адаптация:
- Postmortem Culture: Готовятся протоколы или отчеты по критичным сбоям и публикуются в рамках компании.
Лицензирование:
- Приоритет открытому ПО: Отдается предпочтение открытому программному обеспечению с лицензиями, совместимыми с GPL.
Рутина
Рутина — это ручная, однообразная, поддающаяся автоматизации оперативная работа, связанная с поддержкой работающего сервиса. Ее результаты не имеют ценности в перспективе, а трудоемкость растет линейно по мере роста сервиса.
Источник — SRE Book, Google.