Приходилось ли самому деплоить проекты
Что проверяют
Знаете ли вы путь от коммита до прода целиком и что делаете, когда выкат пошёл не так. Формально вопрос про опыт, но проверяют два узких места: миграции базы и откат.
Как отвечать
Пройдите по шагам своими словами.
- Сборка. Артефакт собирается один раз в конвейере, получает версию и дальше только продвигается по стендам. Пересборка под каждое окружение означает, что в проде не то, что проверяли.
- Образ. Многоступенчатая сборка, слой зависимостей отдельно от слоя кода, запуск не от суперпользователя, память виртуальной машины согласована с лимитом контейнера, иначе процесс убьют по памяти без единой строки в логе.
- Конфигурация. Значения из переменных окружения, секреты из хранилища, внутри образа их нет. Один и тот же образ должен подниматься на любом стенде.
- Миграции. Отдельным шагом, инструментом с историей применения, и обязательно совместимо в обе стороны.
- Выкат и наблюдение. Постепенная замена экземпляров, проба готовности, чтобы трафик не пошёл в непрогретый процесс, и заранее известный способ вернуться на предыдущую версию.
Если опыт скромный, честно скажите, какую часть делали сами, а какую видели рядом. Это лучше уверенного рассказа, который рассыпается на первом уточнении.
Где спотыкаются
Под деплоем понимают копирование архива на сервер и запуск в фоне. Отката нет, настройки правились руками и нигде не зафиксированы, состояние машины не воспроизводится. Вопрос «как вы вернулись бы назад» такой рассказ и заканчивает.
Катят ломающую миграцию вместе с кодом. При постепенной замене экземпляров старая и новая версии какое-то время работают одновременно, и удалённая колонка роняет тех, кто ещё не обновился. Схему меняют в два приёма: сначала совместимое добавление, удаление старого уже следующим релизом.
Собирают образ на своей машине и кладут секреты внутрь. В проде оказывается артефакт, который никто не может повторить, а подвижный тег вместо точной версии превращает откат в лотерею.