Я думал, что решил это, но после прочтения « Непрерывной доставки» (отличная книга) я немного растерялся. Они говорят о наличии серверов для:
- развитие
- различные формы автоматизированных тестов
- пользовательское приемочное тестирование (UAT) - т.е. сидеть с клиентом и демонстрировать его ему, и позволить ему провести предварительное тестирование. Внутренние тестеры также могут использовать эту настройку для пробного тестирования.
- инсценировка
- производство.
Я всегда думал о постановке, как о предоставлении функции UAT, но они, похоже, имеют отдельный уровень. Итак, в этой схеме какую функцию будут выполнять промежуточные серверы?
deployment
testing
release-management
Хэмиш Даунер
источник
источник
Ответы:
Постановка будет включать в себя все системы продукта, но пока не использовать их. Когда они будут введены в эксплуатацию, будет «производство». Вы должны поставить все на место, как оно будет использоваться, протестировать, а затем щелкнуть выключателем.
UAT обычно использует среду «тестирования», которая значительно отличается от аппаратного / программного обеспечения / конфигурации, которая будет использоваться в производстве.
Например, там, где я работаю, клиенты тестируют все в среде виртуальных машин, работающих на наших серверах. Когда их система заработает, она будет работать на их оборудовании, на их объектах, возможно, интегрируясь с их существующими системами; это не имеет абсолютно никакого отношения к нашим серверам или тестовой среде (за исключением того, что код и некоторая конфигурация были скопированы оттуда ...)
источник
Я работаю в команде по управлению релизами в очень крупной интернет-компании. Мы в основном используем процесс, который вы описали выше, и мы выбрали этот процесс специально. В нашей методологии постановка служит механизмом разветвления для окончательного уровня тестирования в производстве.
Очевидно, что вы хотите выполнить все тестирование перед началом работы, но в большой сложной среде с большим количеством пользователей это очень трудная цель. В частности, практически невозможно адекватно загрузить тестовое программное обеспечение в QA. Функциональное тестирование намного проще автоматизировать, чем нагрузочное тестирование. Когда на ваши серверы попадают многие тысячи пользователей, все происходит странным образом и сложно предсказать.
Итак, вот что мы делаем:
Это та точка, в которой мы разветвляемся между постановкой и производством. Мы используем модель поезда для выпуска, с новым поездом, начинающимся каждые несколько недель. Даже пронумерованные поезда идут на промежуточные серверы (которые находятся в производстве). Нечетных поездов нет.
Между чередующимися поездами разработчики могут вносить отдельные изменения в промежуточные серверы ( конечно, после того, как эти изменения были проверены QA). Это позволяет им проверить, что их программное обеспечение работает так, как ожидалось, в реальной производственной среде. Обычно это зарезервировано для компонентов, которые считаются более рискованными, мы не подталкиваем каждую маленькую деталь к постановке.
Затем все понимают, что, когда начнется следующий четный поезд, он уничтожит все, что находится на промежуточных серверах, и вернет их к исходной линии поезда. Разработчики либо гарантируют, что их изменения попали в поезд, либо решат, что они еще не готовы к общему использованию, и в этом случае эти изменения просто стираются на промежуточных серверах.
Подводя итог, можно сказать, что короткий ответ (по крайней мере для нас) состоит в том, что невозможно полностью протестировать сложные системы в QA. Постановка обеспечивает безопасный способ проведения ограниченного производственного тестирования.
На соответствующей заметке, вот мои слайды из презентации, которую я только что дал, о том, как работает наш процесс выпуска.
источник
Простейшим объяснением организации является тестирование процесса развертывания и тестирование с использованием реального источника данных. Некоторые системы сочетают промежуточное размещение со своими средами тестирования, но для крупномасштабных систем процесс развертывания может быть очень сложным, или они могут потребовать дополнительных шагов тестирования, необходимых при подключении к оперативному / производственному источнику данных. В этих случаях промежуточная среда позволяет вам протестировать процесс развертывания и проверить наличие ошибок в последнюю минуту, используя живые данные, а затем, когда все будет проверено как работающее, вы можете быстро переключить сценическую среду в производственную среду.
Примером этого может служить Windows Azure, для развертывания новой версии которой требуется 5-25 минут, но вы можете развернуть ее в промежуточной среде, выполнить тесты, а затем мгновенно поменять производственную и промежуточную среды .
источник
Я только что наткнулся на эту статью о постановочной среде, которая говорит
Статью стоит прочитать полностью.
источник