Pull to refresh

Comments 6

А в том известном меме про

А ты точно DevOps?

на пассажирке ремень безопасности застёгнут?

Что значит "Выполняется откат". Вроде никакой Откат не выполняется, т.е. никакие коммиты не отменяются (и т.п.) Просто не выкладывается новый дистрибутив и разработчики продолжают работать (тестироваться) на предыдущем. А ошибки, приведшие к сбою, правятся новыми коммитами и попадают в следующую попытку сборки.

несуществование

НЕСУЩЕСТВОВАНИЕ, Карл!

Отсутствие.

Отсутствующие есть?

Вы сузили для себя понятие CI до выполнения тестов, из-за чего исказилось восприятие процесса: ошибки у вас оказываются «подсвечены зелёным».

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

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

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

Формально развёртывание в production относят к CD, но на практике граница между CI и CD проходит не по названию этапа, а по моменту необратимости изменений. До тех пор пока система может транзакционно откатиться в исходное состояние, это всё ещё часть интеграционного контура.

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

Простите, поздно заметил, что это перевод. Переведите, пожалуйста, мой ответ автору

Fowler вообще определяет ci как альтернативу feature branching'у:

https://martinfowler.com/articles/branching-patterns.html#ComparingFeatureBranchingAndContinuousIntegration

Sign up to leave a comment.

Articles