Создание слота развертывания
Организациям часто необходимо запускать веб-приложения в изолированных средах, чтобы протестировать их перед развертыванием. Им также нужно проводить развертывание быстро и без влияния на пользователей.
Предположим, что вы пытаетесь решить, следует ли использовать слоты как упрощенный способ развертывания веб-приложения в вашей соцсети. Вы хотите узнать, сократят ли слоты развертывания время простоя во время развертываний, облегчат ли они откат и как их настроить в Azure.
В этом модуле вы узнаете, как слоты развертывания облегчают тестирование и развертывание нового кода.
Добавление слота развертывания
В одном веб-приложении Службы приложений Azure вы можете создать несколько слотов развертывания. Каждый слот является отдельным экземпляром этого веб-приложения с отдельным именем узла. Вы можете развернуть разные версии своего веб-приложения в каждом слоте.
Отдельный слот является рабочим слотом. Он является веб-приложением, которое пользователи видят при подключении. Убедитесь, что приложение, развернутое в этом слоте, стабильно и тщательно проверено.
Вы можете использовать дополнительные слоты для размещения новых версий своего веб-приложения. Для этих экземпляров можно запускать тесты, например интеграционные тесты, приемочные тесты и тесты емкости. Устраните неполадки, прежде чем переместить код в рабочий слот. Дополнительные слоты ведут себя так же, как и собственные экземпляры службы приложений, что дает вам уверенность в том, что ваши тесты будут отражать способ работы приложения в рабочей среде.
Если вас устраивают результаты тестов новой версии приложения, его необходимо развернуть, переключив слот с рабочим слотом. В отличие от развертывания кода, переключение слотов происходит мгновенно. При переключении слотов, имена хостов слотов обмениваются, немедленно отправляя производственный трафик в новую версию приложения. Если для развертывания используется переключение слотов, ваше приложение никогда не будет предоставлено общедоступной сети в частично развернутом состоянии.
Если обнаружится, что, несмотря на тщательное тестирование, возникла проблема с новой версией, вы можете откатить ее, быстро переключив слоты обратно.
Слоты как отдельные ресурсы Azure
Когда вы используете более одного слота развертывания для веб-приложения, эти слоты рассматриваются как отдельные экземпляры. Например, они перечислены отдельно на странице Все ресурсы на портале Azure. У каждого из них есть собственный URL-адрес. Однако каждый слот использует ресурсы плана службы приложений, включая память виртуальной машины и ЦП, а также дисковое пространство.
Создание слотов развертывания и уровни
Слоты для развертывания доступны только в том случае, если ваше веб-приложение использует план Службы приложений уровня "Стандартный", "Премиум" или "Изолированный". Максимальное количество слотов, которое вы можете создать, показано в следующей таблице.
Уровень | Максимальное количество промежуточных слотов |
---|---|
Бесплатно | 0 |
Совмещаемая блокировка | 0 |
Базовая | 0 |
Стандартные | 5 |
Premium | 20 |
Изоляция | 20 |
Как избежать "холодного запуска" во время переключения
Многие технологии, используемые разработчиками для создания веб-приложений, требуют окончательной компиляции и других действий на сервере, прежде чем страница может быть доставлена пользователю. Многие из этих задач выполняются при запуске приложения и получении запроса. Например, если вы используете ASP.NET для создания своего приложения, код компилируется, и представления завершаются, когда первый пользователь запрашивает страницу. Последующие запросы для этой страницы получают более быстрый ответ, так как код уже компилируется.
Начальная задержка — это так называемый холодный запуск. Холодного запуска можно избежать за счет переключения слотов для развертывания в рабочей среде. При переключении слота в рабочую среду вы «разогреваете» приложение, так как ваше действие отправляет запрос к корню сайта. Запрос подготовки гарантирует, что все задачи компиляции и кэширования будут выполнены. После переключения сайт реагирует так же быстро, как если бы он был развернут в течение нескольких дней.
Создание слота развертывания
Прежде чем создавать слот, убедитесь, что ваше веб-приложение работает на уровне "Стандартный", "Премиум" или "Изолированный".
Откройте страницу своего веб-приложения на портале Azure.
Выберите страницу Слоты развертывания.
Нажмите Добавить пользователя.
Дайте слоту имя.
Выберите, следует ли клонировать параметры из другого слота. Если вы решите клонировать их, параметры будут скопированы в новый слот из указанного.
Примечание.
Несмотря на то, что вы можете клонировать параметры в новый слот, клонировать содержимое невозможно. Новые слоты всегда создаются без содержимого. Необходимо развернуть содержимое с помощью Git или другой стратегии развертывания. Операция клонирования копирует конфигурацию в новый слот. После копирования параметров конфигурацию двух слотов можно изменять независимо.
Щелкните Добавить, чтобы создать новый слот. Теперь у вас есть новый слот в списке на странице слотов развертывания. Выберите слот, чтобы просмотреть его панель управления.
Получение доступа к слоту
Новый слот имеет собственное имя узла, которое является производным от имени веб-приложения и имени слота. При выборе слота на странице слотов развертывания вы получите это имя узла:
Вы можете развернуть свой код в новом слоте так же, как и в рабочем слоте. Просто замените имя или URL-адрес нового слота в конфигурации используемого инструмента развертывания. Если для развертывания вы используете протокол FTP, под URL-адресом слота отобразится имя хоста и имя пользователя FTP для использования.
Новый слот фактически будет отдельным веб-приложением с другим именем узла. Поэтому все пользователи Интернета могут получить к нему доступ, если знают это имя узла. Если вы не регистрируете слот с помощью поисковой системы или связываете его со страницы обхода, слот не будет отображаться в индексах поисковой системы. Поэтому он останется скрытым для обычного пользователя Интернета.
Вы можете ограничить доступ к слоту с помощью ограничения IP-адресов. Создайте список диапазонов IP-адресов, позволяющий получить доступ к слоту, или список диапазонов, которым будет запрещен доступ к слоту. Эти списки похожи на разрешенные и запрещенные диапазоны, которые можно настроить для брандмауэра. Используйте этот список, чтобы разрешить доступ только к компьютерам, принадлежащим вашей компании или команде разработчиков.