DevOps

DevOps – это методология разработки программного обеспечения, объединяющая разработку (Development) и эксплуатацию (Operations) в единый процесс. Его цель – повышение скорости и качества разработки программного обеспечения, а также улучшение коммуникации и сотрудничества между разработчиками и операторами.
Методы DevOps включают в себя автоматизацию процессов, использование инструментов для непрерывной интеграции и развёртывания (CI/CD), мониторинг и откат изменений. DevOps также предполагает использование облачных технологий, микросервисной архитектуры и контейнеризации.
Основные задачи DevOps включают в себя улучшение сроков развертывания программного обеспечения, повышение его надежности и безопасности, автоматизацию процессов тестирования и развертывания, а также оптимизацию инфраструктуры и управление конфигурациями. В целом, DevOps направлен на улучшение командной работы и достижение высокой производительности разработки и эксплуатации программного обеспечения.Методология предполагает активное взаимодействие специалистов по разработке со специалистами по информационно-технологическому обслуживанию и взаимную интеграцию их технологических процессов друг в друга для обеспечения высокого качества программного продукта. Предназначена для эффективной организации создания и обновления программных продуктов и услуг. Основана на идее тесной взаимозависимости создания продукта и эксплуатации программного обеспечения, которая прививается команде как культура создания продукта.

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

Задача инженеров автоматизации технологических процессов сборки, настройки и развёртывания программного обеспечения (DevOps engineers) — сделать процессы разработки и поставки программного обеспечения согласованным с эксплуатацией, объединив их в единое целое с помощью инструментов автоматизации.

Промышленная автоматика, АСУП и АСУТП, в частности – программирование ПЛК, SCADA и HMI, является одним из направлений применения методики DevOps.

Движение за автоматизацию технологических процессов сборки, настройки и развёртывания программного обеспечения (DevOps-движение) возникло в 2009 году и было призвано решить проблемы взаимодействия команд разработки и эксплуатации программных продуктов.

Поскольку DevOps — это всегда командная работа (между сотрудниками, занимающимися разработкой, операциями и тестированием), нет единого инструмента «DevOps»: это скорее набор (или «инструментальная цепочка DevOps»), состоящий из множества взаимодополняющих друг друга инструментов. Почти всегда инструменты DevOps вписываются в одну или одновременно в несколько из этих категорий, что отражает ключевые аспекты разработки и доставки программного обеспечения:

  1. Кодирование — разработка и анализ кода, инструменты контроля версий, слияние кода;
  2. Сборка — инструменты непрерывной интеграции, статус сборки;
  3. Тестирование — инструменты непрерывного тестирования, обеспечивающие быструю и своевременную оценку бизнес-рисков;
  4. Упаковка — репозиторий артефактов, предварительная установка приложения;
  5. Релиз — управление изменениями, официальное утверждение выпуска, автоматизация выпуска;
  6. Настройка — конфигурация и управление инфраструктурой, Инфраструктура как инструменты кода;
  7. Мониторинг — измерение производительности приложений, взаимодействие с конечным пользователем;
  8. Непрерывная поставка;
  9. Непрерывная интеграция.

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

Такие инструменты, как управление контейнеризацией (DockerKubernetes), непрерывной интеграцией (Jenkins, GitLab), развёртывания сред по шаблону (Puppet, Ansible, Terraform) и многие другие — часто используются и часто упоминаются в дискуссиях по инструментам DevOps.

Понятие DevOps (как и MLops) никоим образом не ограничивается применяемым аппаратным и программным обеспечением, и является, скорее подходом к разработке программного обеспечения.

Компании, которые используют DevOps, сообщили о значительных преимуществах, в том числе: значительном сокращении времени выхода на рынок, улучшении удовлетворенности клиентов, улучшении качества продукции, более надежных выпусках, повышении производительности и эффективности, а также увеличении способности создавать наиболее правильный и удовлетворяющий потребности клиентов продукт путем быстрого экспериментирования.

Обсуждение закрыто.