Назад | Перейти на главную страницу

В чем смысл постановки?

Я думал, что у меня получилось, но после прочтения Непрерывная доставка (отличная книга) Я немного запуталась. Они говорят о серверах для:

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

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

Очевидно, что вы хотите провести все тестирование перед тем, как перейти к производству, но в большой сложной среде с большим количеством пользователей это очень труднодостижимая цель. В частности, практически невозможно адекватно загрузить тестовое программное обеспечение в QA. Функциональное тестирование намного проще автоматизировать, чем нагрузочное. Когда к вашим серверам обращаются тысячи пользователей, что-то происходит странным и трудно предсказуемым образом.

Итак, вот что мы делаем:

  • Развитие
    • включает непрерывную интеграцию и автоматизированное тестирование
  • релиз тестирование
    • моя группа анализирует сам релиз
    • просмотр журналов установки
    • откат тестирования
  • QA
    • приемочное тестирование пользователей

Это тот момент, когда мы переходим между постановкой и производством. Мы используем модель поезда для выпусков, при этом новый поезд запускается каждые несколько недель. Даже пронумерованные поезда отправляются на промежуточные серверы (которые находятся в эксплуатации). В поездах с нечетными номерами нет.

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

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

Подводя итог, краткий ответ (по крайней мере, для нас) заключается в том, что невозможно полностью протестировать сложные системы в QA. Постановка обеспечивает безопасный способ проведения ограниченного производственного тестирования.

По теме, вот мой слайды из презентации Я просто рассказал, как работает наш процесс выпуска.

Постановка предполагает внедрение полных продуктовых систем, но фактически их еще не использует. Когда они войдут в обиход, будет «производство». Вы должны поставить все на место, как оно будет использоваться, протестировать, а затем щелкнуть выключателем.

UAT обычно использует «тестовую» среду, которая значительно отличается от оборудования / программного обеспечения / конфигурации, которые будут использоваться в производстве.

Например, там, где я работаю, клиенты тестируют все в среде виртуальной машины, работающей на наших серверах. Когда их система будет запущена, она будет работать на их оборудовании, на их предприятии, вероятно, интегрировавшись с их существующими системами; он не будет иметь абсолютно ничего общего с нашими серверами или тестовой средой (кроме того, что код и некоторая конфигурация были скопированы оттуда ...)

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

Примером этого может служить Windows Azure, для развертывания новой версии которой требуется 5-25 минут, но вы можете развернуть ее в промежуточной среде, выполнить тесты, а затем мгновенно поменять местами производственную и промежуточную среду.

Я только что наткнулся на эту статью о постановочная среда что говорит

Промежуточная стадия - это то, где вы проверяете то, что известно о ваших системах.

Статью стоит прочитать полностью.