Как Реализовать Ручной Шаг В Конце Непрерывной Доставки?

  • Автор темы Krv_85
  • Обновлено
  • 18, Oct 2024
  • #1

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

  • Автоматический (автоматический).
  • Руководство.

Я не могу себе представить, что по ту сторону стены DevOps окажется бедный «оператор», которому придется делать что-то, соответствующее тому, что означает это «руководство»… Мои вопросы:

  • Близка ли моя ссылка (в моем вопросе) на «распространение» и «установку» к возможной реализации такой «ручной» вещи? Вот соответствующая цитата моего связанного вопроса:
  • распространять в некоторую целевую среду, используя что-то вроде FTP (если стандартные копии не могут устранить разрыв), но пока не активируйте его в целевой среде. Вот что должно быть похоже/близко к непрерывная доставка, или нет?
  • установить (или активировать) в некоторой целевой среде в сочетании с такими вещами, как привязки, операции остановки/запуска и т. д. Это то, что должно быть похоже или близко к непрерывное развертывание, или нет?
  • Каковы еще возможные варианты его реализации?

#непрерывное развертывание

Krv_85


Рег
17 Nov, 2013

Тем
63

Постов
196

Баллов
521
  • 25, Oct 2024
  • #2

Лично я считаю, continuos delivery of the software to a target just an intermediary step of a deployment - installation/activation of that software being necessary to complete that deployment.

Для меня delivery (as in distribution ) останавливается, когда программное обеспечение, подлежащее развертыванию, создано и выполнено. доступный для развертывания (т.е. для распространения, установки и активации)

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

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

Но в целом это просто отражает тот факт, что решение о развертывании в производстве не является просто результатом автоматизированного алгоритма. Вот несколько примеров таких случаев:

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

Поэтому я бы не рассматривал ручной шаг просто как проблему реализации.

 

herVathelek


Рег
03 May, 2006

Тем
75

Постов
172

Баллов
617
  • 25, Oct 2024
  • #3

Еще одно соображение: если вы публикуете что-то, что, как вы ожидаете, будут использовать другие проекты, развертывание также приобретает значение «публикация для использования другими».

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

 

Fennec17


Рег
30 Mar, 2016

Тем
72

Постов
198

Баллов
578
Похожие темы Дата
Похожие темы
Kubernetes — Есть Ли Хороший Шаблон Для Развертывания И Поддержки Нескольких Маршрутов Версий Api, Выпущенных Helm, Вместе С Маршрутизацией Виртуальной Службы Istio?
Веб-Сервисы Amazon – Как Реализовать Сине-Зеленое Развертывание С Одной Главной Веткой
Конфигурация. Как Реализовать Принцип Четырех Глаз Для Экстренных Исправлений?
Непрерывная Интеграция — Общий Кеш Между Бегуном, Принадлежащим Gitlab.com, И Бегуном, Размещенным На Собственном Хостинге.
Веб-Сервисы Amazon. Какова Цель Assumerolepolicydocument В Iam?
Непрерывная Интеграция. Каков Хороший Подход Devops Для Одного Разработчика, Пишущего Веб-Приложения На Python?
Docker Compose Для Мультиконтейнера Wordpress
Декларативный Конвейер Jenkins: Выполнение Этапа При Условии Выполнения Предыдущего Этапа
Ssl — Как Мне Загрузить Образ Alpine Для Работы С Частным Прокси-Сервером Репо За Tls?
Jenkins — Несколько Сборок Из Одной Ветки, Но Разные Значения Css
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно