DevOps

Материал из Циклопедии
Перейти к навигации Перейти к поиску
Разработка программного обеспечения
Процесс разработки ПО
Шаги процесса

АнализПроектированиеПрограммированиеДокументированиеТестирование

Модели

ИтеративнаяСпиральнаяКаскаднаяV-ModelDual Vee Model

Методологии

Agile (XP, Lean, Scrum, FDD и др.) • CleanroomOpenUPRADRUPMSFDSDMTDD

Сопутствующие дисциплины

Конфигурационное управлениеУправление проектамиУправление требованиями

 Просмотреть·Обсудить·Изменить
Схема взаимодействия в методологии Devops. Разработка + Тестирование + Эксплуатация = DevOps
Иллюстрация, показывающая вариант DevOps как пересечения разработки, эксплуатации и тестирования

DevOps — методология разработки и сопровождения программного обеспечения, объединяющая процессы разработки (Development) и эксплуатации (Operations). Основной целью DevOps является ускорение релизов, повышение стабильности и автоматизация жизненного цикла ПО.

История[править]

До 2000-х годов команды разработки и эксплуатации работали изолированно. Разработчики создавали код, а системные администраторы поддерживали инфраструктуру. Это приводило к конфликтам интересов: разработчики стремились к частым релизам, а администраторы — к стабильности. В результате:

  • релизы откладывались;
  • код "ломал" продакшн;
  • инфраструктура обновлялась медленно и вручную.

С появлением гибких методологий (Agile, Scrum) и микросервисной архитектуры возникла необходимость в быстрой, повторяемой и надёжной доставке ПО.

Предпосылки появления[править]

С 2008 года начинают активно обсуждаться идеи интеграции Dev и Ops. Примерно в это же время появляются инструменты конфигурационного управления:

Позже — Ansible, Terraform, Docker, Kubernetes.

Основные принципы DevOps[править]

  • Автоматизация — сборка, тестирование, доставка и развёртывание автоматизированы;
  • Инфраструктура как код — вся конфигурация систем хранится в репозиториях и может быть развёрнута повторно;
  • Совместная культура — разработчики и администраторы работают как единая команда;
  • Наблюдаемость — важна метрика, логирование, алерты (Prometheus, Grafana, Sentry).

Этапы развития DevOps[править]

Конфигурационное управление[править]

Переход от ручной настройки серверов к описанию конфигурации как кода.

Контейнеризация[править]

С 2013 года Docker упрощает упаковку и развертывание приложений. Kubernetes (2014) стандартизирует управление контейнерами.

CI/CD[править]

Становится стандартом для автоматической сборки и релизов. Распространены:

Observability[править]

Интеграция мониторинга, логов и алертов как части процесса разработки.

Связанные понятия[править]

  • GitOps — управление инфраструктурой через Git-репозитории;
  • DevSecOps — встраивание безопасных практик в процессы CI/CD;
  • FinOps — контроль затрат в облачной инфраструктуре.

Критика[править]

DevOps требует высокой зрелости команды, внедрения новых инструментов и культурных изменений. В малых компаниях и фриланс-проектах полное внедрение DevOps может быть избыточным.

Шаблонные VPS как альтернатива[править]

В последние годы хостинг-провайдеры начали предлагать промежуточный вариант: VPS с предустановленными шаблонами окружения. Это позволяет быстро запускать проекты (например, на Django, Node.js или Docker), сохраняя при этом доступ к системе.

В отличие от PaaS-решений, пользователь получает полный контроль над сервером. Такой подход особенно удобен для фрилансеров, небольших студий и тех, кому важна простота развёртывания при сохранении гибкости.

См. также[править]

Ссылки[править]