6 МЕСЯЦЕВ ПРЕДОПЛАТА −28% · 1 ГОД ПРЕДОПЛАТА −50%Сравнить тарифы
PrivacyNodes
РЕЛИЗНАЯ ИНЖЕНЕРИЯ

Сделайте следующее развёртывание воспроизводимым

Воспроизводимое развёртывание имеет известные входные данные, намеренную последовательность и чёткое условие остановки. Зафиксируйте границу совместимости артефакта и базы данных перед изменением работающего приложения; повторное развёртывание предыдущего образа — лишь одно из возможных действий восстановления.

Инженерные заметки PrivacyNodes · Проверено · 3 мин чтения

Соберите идентифицируемые входные данные

Используйте приложение, которое можете собрать вне продакшен-среды, доступ к исходникам и его реестру артефактов, версионируемую схему конфигурации и внешнее хранилище секретов. Держите известный рабочий релиз. Это входные данные для вашей автоматизации; PrivacyNodes не предоставляет API развёртывания или средство запуска конвейеров через этот веб-сайт.

Закрепите артефакт вместо того, чтобы полагаться на изменяемую метку, такую как latest. Docker описывает закрепление дайджеста для идентификации точного базового образа, с необходимостью осознанно проверять обновления. Воспроизводимость и патчинг — обе обязанности: держать старый уязвимый образ вечно — это не план обслуживания.

Техническая справка: Лучшие практики сборки Docker.

Напишите запись о релизе перед изменением трафика

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

# Illustrative release record — no credentials
release: reports-api-review-01
source_revision: REVISION_TO_REVIEW
artifact_digest: DIGEST_FROM_YOUR_REGISTRY
configuration_schema: config-v3
migration: add-export-state
old_code_can_read_new_schema: yes
verification:
  - authenticated-read
  - enqueue-and-complete-test-export
  - failed-dependency-behavior
rollback_decision: keep-additive-schema-and-previous-artifact
operator_and_result: TO_BE_RECORDED

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

Отделите подготовку от продвижения

Сначала соберите и проверьте артефакт. Проверьте конфигурацию и ссылки на секреты перед запуском нового процесса. Примените только тот шаг схемы, который был проверен для этого релиза. Запустите новую версию в предполагаемой среде и проверьте зависимости перед переключением трафика; избегайте сочетания непроверенной деструктивной миграции с обычным обновлением образа.

В Compose запущенный контейнер не устанавливает готовность. Значимая проверка работоспособности и condition: service_healthy могут сделать ожидание зависимостей полезным, но не могут проверить рабочий процесс клиента. Приложение всё равно должно обрабатывать недоступность зависимости после запуска.

Техническая справка: Порядок запуска Docker Compose.

Проверьте больше, чем зелёный порт

Для API отчётности проверьте аутентифицированный тестовый запрос, чтение из целевой схемы, небольшой экспорт из очереди и доступ к его файлу. Используйте выделенное тестовое пространство имён и подавите уведомления продакшена. Убедитесь, что пересекающиеся версии не могут случайно дублировать запланированную работу.

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

Сделайте решение о восстановлении явным

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

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

Оставьте запись, по которой сможет пройти другой специалист

Сравните развёрнутый артефакт и идентификаторы конфигурации с запланированной записью. Сохраните проверки, неудачные попытки и выбранное действие по восстановлению. Храните последний работающий артефакт по явной политике хранения; не удаляйте его, пока валидация не завершена.

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

Официальные ссылки

Документация была проверена для этой статьи. Примеры — это планировочные упражнения, а не команды, протестированные на сервере PrivacyNodes. Проверьте документацию для вашей установленной версии.