Управление средой службы приложений

Важно!

Эта статья о Среде службы приложений версии 2, которая используется с планами Службы приложений (ценовая категория "Изолированный") Поддержка среды службы приложений версии 2 будет прекращена 31 августа 2024 года. Имеется новая версия среды службы приложений, которая проще в использовании и которая работает на более мощной инфраструктуре. Чтобы узнать больше о новой версии, начните с изучения статьи Введение в Среду службы приложений. Если вы используете Среду службы приложений версии 2, выполните действия, описанные в этой статье, чтобы перейти на новую версию.

С 29 января 2024 г. вы больше не можете создавать новые ресурсы Среда службы приложений версии 2 с помощью любого из доступных методов, включая шаблоны ARM/Bicep, портал Azure, Azure CLI или REST API. Необходимо выполнить миграцию в Среда службы приложений версии 3 до 31 августа 2024 г., чтобы предотвратить удаление ресурсов и потерю данных.

Среда службы приложений (ASE) — это развертывание службы приложений Azure в подсети виртуальной сети Azure клиента. ASE состоит из следующих компонентов.

  • Внешние интерфейсы — места, где завершаются сеансы HTTP и HTTPS в среде службы приложений (ASE).
  • Рабочие роли — это ресурсы, в которых размещаются приложения.
  • База данных — здесь содержатся сведения, определяющие среду.
  • Хранилище — используется для размещения опубликованных приложений клиента.

Вы можете развернуть ASE с использованием внешнего или внутреннего виртуального IP-адреса, чтобы получить доступ к приложению. Такой способ развертывания обычно называется внешней средой ASE. Развертывание с внутренним виртуальным IP-адресом называется ILB ASE, так как оно использует внутреннюю подсистему балансировки нагрузки (ILB). Дополнительные сведения об ASE с ILB см. в статье Создание и использование внутренней подсистемы балансировки нагрузки со средой службы приложений.

Создание приложения в ASE

Для создания приложения в ASE можно использовать стандартный процесс создания приложения, но с некоторыми небольшими отличиями. При создании плана службы приложений:

  • Вместо выбора географического расположения, в котором будет развернуто приложение, выберите ASE в качестве расположения.
  • Все планы службы приложений, создаваемые в ASE, должны находиться в ценовой категории "Изолированный".

Если у вас нет среды ASE, то ее можно создать, следуя инструкциям в статье Создание внешней среды службы приложений.

Создание приложения в ASE.

  1. Последовательно выберите Создать ресурс>Интернет+мобильные устройства>Веб-приложение.

  2. Введите название приложения. Если вы уже выбрали план службы приложений в среде ASE, то доменное имя приложения будет отражать доменное имя среды ASE:

    App name selection

  3. Выберите подписку.

  4. Введите имя для новой группы ресурсов или щелкните Использовать существующий и выберите вариант имени из раскрывающегося списка.

  5. Выберите используемую операционную систему.

  6. Выберите имеющийся план службы приложений в своей среде ASE или создайте его, сделав следующее:

    a. На портале Azure выберите в меню слева Создать ресурс > Веб-приложение.

    b. Выберите подписку.

    c. Выберите или создайте группу ресурсов.

    d. Введите название вашего веб-приложения.

    д) Выберите Код или DockerContainer.

    f. Выберите стек сред выполнения

    ж. Выберите Linux или Windows.

    h. В раскрывающемся списке Регион выберите свою среду ASE.

    i. Выберите или создайте новый план службы приложений. При создании нового плана службы приложений выберите соответствующий размер изолированного SKU.

    Isolated pricing tiers

    Примечание.

    Приложения Linux и Windows не могут находиться в одном плане службы приложений, но могут находиться в одной среде службы приложений.

  7. Выберите Проверка + создание, убедитесь, что данные верны, а затем нажмите кнопку Создать.

Как работает масштабирование

Каждая служба приложений выполняется в плане службы приложений. В средах службы приложений содержатся планы службы приложений, которые в свою очередь содержат приложения. При масштабировании приложения также выполняется масштабирование плана службы приложений и всех приложений в этом плане.

При масштабировании плана службы приложений необходимая инфраструктура добавляется автоматически. При добавлении инфраструктуры операции масштабирования выполняются с задержкой. Если выполнить несколько операций масштабирования последовательно, первый запрос на масштабирование инфраструктуры будет обрабатываться, а другие будут поставлены в очереди. После завершения первой операции масштабирования все запросы инфраструктуры работают вместе. При добавлении инфраструктуры планы службы приложений назначаются соответствующим образом. Создание нового плана службы приложений — это операция масштабирования, так как она требует дополнительного оборудования. Операция масштабирования обычно занимает 30–60 минут.

В службе приложений для клиентов масштабирование выполняется сразу, так как для ее поддержки доступен пул ресурсов. В ASE нет такого буфера, и ресурсы выделяются в зависимости от потребности.

ASE позволяет масштабировать до 100 экземпляров. В ASE может быть всего до 201 экземпляра во всех планах службы приложений в этой ASE.

IP-адреса

Служба приложений может предоставить приложению выделенный IP-адрес. Эта возможность доступна после настройки привязки TLS/SSL на основе IP-адреса, как описано в статье Привязка существующего настраиваемого сертификата TLS/SSL к службе приложений Azure. В ILB ASE нельзя добавить дополнительные IP-адреса, которые будут использоваться для привязки TLS/SSL на основе IP-адресов.

С помощью внешнего ASE можно настроить привязку TLS/SSL на основе IP-адреса для приложения так же, как и в мультитенантной службе приложений. В ASE всегда имеется один запасной адрес (до 30 IP-адресов). Каждый раз при использовании адреса добавляется еще один, чтобы всегда был доступный адрес. При выделении еще одного IP-адреса возникает задержка. Эта задержка не позволяет добавлять IP-адреса очень быстро.

Масштабирование внешнего интерфейса

При горизонтальном увеличении масштаба планов службы приложений для их поддержки автоматически добавляются рабочие роли. Каждый ASE создается с двумя внешними интерфейсами. Кроме того, в планах службы приложений внешние интерфейсы автоматически увеличивают масштаб (по одному внешнему интерфейсу на каждые 15 экземпляров). Например, если у вас есть три плана службы приложений с пятью экземплярами, то вы получите 15 экземпляров и три внешних интерфейса. При масштабировании до 30 экземпляров у вас будет четыре внешних интерфейса, и так далее. Этот шаблон будет продолжаться при горизонтальном масштабировании.

Число внешних интерфейсов, выделенных по умолчанию, подходит для средних нагрузок. Вы можете снизить коэффициент (по одному внешнему интерфейсу на каждые пять экземпляров). Также можно изменить размер внешних интерфейсов. По умолчанию они являются одним ядром. В портале Azure можно изменить их размер на два или четыре ядра.

За изменение соотношения или размеров или внешнего интерфейса взимается плата. Дополнительные сведения см. на странице цен на службу приложений Azure. Если вы хотите увеличить емкость ASE, вы получите дополнительные улучшения, выполнив масштабирование до двухъядерных интерфейсов, прежде чем менять коэффициент масштабирования. Изменение основного размера внешних интерфейсов приведет к обновлению ASE и должно выполняться вне обычного рабочего времени.

Ресурсы внешних интерфейсов являются конечной точкой HTTP/HTTPS для среды ASE. При сохранении конфигурации внешних интерфейсов по умолчанию показатель использования памяти на каждый внешний интерфейс обычно составляет примерно 60 %. Основная причина масштабирования внешних интерфейсов — загрузка ЦП, которая в основном управляется трафиком HTTPS.

Доступ к приложению

Во внешнем ASE суффиксом домена, используемым для создания приложения, является параметр .<asename>.p.azurewebsites.net. Если имя вашей среды ASE — external-ase, а имя размещаемого в этой среде приложения — contoso, то получить к нему доступ можно по следующим URL-адресам.

  • contoso.external-ase.p.azurewebsites.net
  • contoso.scm.external-ase.p.azurewebsites.net

Дополнительные сведения о создании внешней среды ASE см. в статье Создание среды службы приложений Azure.

В ILB ASE суффикс домена, используемый для создания приложения — .<asename>.appserviceenvironment.net. Если имя вашей среды ASE — ilb-ase, а имя размещаемого в этой среде приложения — contoso, то получить к нему доступ можно по следующим URL-адресам.

  • contoso.ilb-ase.appserviceenvironment.net
  • contoso.scm.ilb-ase.appserviceenvironment.net

Дополнительные сведения о создании среды ASE с внутренней подсистемой балансировки нагрузки см. в статье Создание и использование среды ASE с внутренней подсистемой балансировки нагрузки.

URL-адрес SCM используется для доступа к консоли Kudu или для публикации приложения с помощью веб-развертывания. Консоль Kudu предоставляет веб-интерфейс для отладки, передачи и редактирования файлов, а также многих других возможностей.

DNS configuration (Настройка DNS)

При использовании внешней ASE созданные в ASE приложения регистрируются с помощью Azure DNS. При использовании внешней ASE нет дополнительных шагов, чтобы сделать приложения общедоступными. В ASE с внутренним балансировщиком нагрузки (ILB) необходимо управлять собственной службой DNS. Это можно сделать на собственном DNS-сервере или с помощью частных зон Azure DNS.

Чтобы настроить DNS на собственном DNS-сервере с помощью ASE с внутренним балансировщиком нагрузки (ILB), выполните следующие действия:

  1. создайте зону для <ASE name.appserviceenvironment.net>
  2. создайте запись A в этой зоне, которая указывает (*) на IP-адрес внутренней подсистемы балансировки нагрузки;
  3. создайте запись A в этой зоне, которая указывает (@) на IP-адрес внутренней подсистемы балансировки нагрузки.
  4. создание зоны в <ASE name.appserviceenvironment.net> с именем scm
  5. создайте запись A в зоне scm, которая указывает (*) на IP-адрес внутренней подсистемы балансировки нагрузки.

Чтобы настроить DNS в частных зонах Azure DNS, выполните следующие действия:

  1. создайте частную зону Azure DNS с именем <имя_ASE>.appserviceenvironment.net;
  2. создайте запись A в этой зоне, которая указывает (*) на IP-адрес внутренней подсистемы балансировки нагрузки;
  3. создайте запись A в этой зоне, которая указывает (@) на IP-адрес внутренней подсистемы балансировки нагрузки.
  4. создайте запись A в зоне, которая указывает *.scm на IP-адрес внутреннего балансировщика нагрузки.

Параметры DNS для суффикса стандартного домена ASE не приводят к тому, что доступ к приложениям можно получить только по этим именам. Вы можете задать имя личного домена без проверки приложений в ASE с внутренним балансировщиком нагрузки (ILB). Если вы хотите создать зону с именем contoso.net, вы можете сделать это и указать на IP-адрес внутреннего балансировщика нагрузки. Имя личного домена работает для запросов приложений, но не для сайта scm. Сайт scm доступен только при использовании параметров <appname>.scm.<asename>.appserviceenvironment.net.

Зона с именем .<asename>.appserviceenvironment.net является глобально уникальной. До мая 2019 года клиенты имели возможность указывать суффикс домена ASE с внутренним балансировщиком нагрузки (ILB). И если вы хотели использовать домен .contoso.com для суффикса домена, вы могли это сделать, и это изменение распространялось и на сайт scm. С этой моделью были проблемы, среди которых можно выделить: управление TLS/SSL-сертификатом по умолчанию, отсутствие единого входа для сайта scm, а также требование на использование шаблона сертификата. Процесс обновления стандартного сертификата ASE с внутренним балансировщиком нагрузки (ILB) также приводил к нарушению работы и перезапуску приложения. Чтобы устранить эти проблемы, ASE с внутренним балансировщиком нагрузки (ILB) теперь использует суффикс домена на основе имени ASE и суффикса, принадлежащего корпорации Майкрософт. Изменение поведения ASE с внутренним балансировщиком нагрузки (ILB) влияет только на среды ASE с внутренним балансировщиком нагрузки, созданные после мая 2019 года. Существовавшие ранее среды ASE с внутренним балансировщиком нагрузки (ILB) должны по-прежнему управлять стандартным сертификатом ASE и конфигурацией DNS. Если среда ASE с внутренним балансировщиком нагрузки версии 2 была создана после мая 2019 года, вам не нужно управлять заданным по умолчанию сертификатом внутреннего балансировщика нагрузки, так как им управляет корпорация Майкрософт.

Публикуется

В ASE, как и в службе приложений с несколькими клиентами, для публикации можно использовать следующие методы.

  • Веб-развертывание
  • FTP
  • Непрерывная интеграция (CI)
  • функция перетаскивания в консоли Kudu;
  • Интегрированная среда разработки (IDE), например Visual Studio, Eclipse или IntelliJ IDEA.

При использовании внешнего ASE эти параметры публикации работают одинаково. Дополнительные сведения см. в статье Развертывание приложения в службе приложений Azure.

В ILB ASE конечные точки публикации доступны только через ILB. Внутренняя подсистема балансировки нагрузки расположена на частном IP-адресе в подсети ASE в виртуальной сети. Без сетевого доступа к внутренней подсистеме балансировки нагрузки в среде ASE не удастся опубликовать ни одного приложения. Как отмечалось при создании и использовании ILB ASE, необходимо настроить DNS для приложений в системе. Это требование включает конечную точку SCM. Если конечные точки должным образом не определены, вы не сможете провести публикацию. Для прямой публикации из интегрированных сред разработки также требуется сетевой доступ к внутренней подсистеме балансировки нагрузки.

Без дополнительных изменений веб-системы непрерывной интеграции, такие как GitHub и Azure DevOps, не работают со средой ASE с внутренним балансировщиком нагрузки, так как конечная точка публикации недоступна через Интернет. Публикацию в ASE с внутренним балансировщиком нагрузки можно включить из Azure DevOps, установив локальный агент выпуска в виртуальной сети, содержащей ASE с внутренним балансировщиком нагрузки. Также можно использовать систему непрерывной интеграции, в которой применяется модель полного извлечения, например Dropbox.

Для конечных точек публикации приложений в среде ASE с ILB используется домен, созданный вместе со средой. Это можно увидеть в профиле публикации приложения и в колонке приложения на панели (в разделе Обзор>Основное и в разделе Свойства).

Хранилище

В ASE используется 1 ТБ хранилища для всех приложений в ASE. План службы приложений в ценовой категории "Изолированный" имеет ограничение в 250 ГБ. В ASE хранилище 250 ГБ добавляется в план службы приложений вплоть до ограничения в 1 ТБ. Можно использовать больше планов службы приложений, чем только четыре, но хранилище сверх ограничения в 1 ТБ не увеличивается.

Наблюдение

На клиента возлагается обязанность отслеживать планы службы приложений и отдельные приложения и предпринимать все необходимые действия. Для Среды службы приложений версии 2 следует обратить особое внимание на метрики инфраструктуры платформы. Эти метрики позволяют получить представление о том, как работают инфраструктура платформы и интерфейсные серверы (multiRole), и предпринять необходимые действия при их чрезмерной загрузке и (или) невозможности получить максимальную пропускную способность.

С помощью портал Azure и интерфейса командной строки можно изменять коэффициент масштабирования для интерфейсных серверов в диапазоне от 5 до 15 (по умолчанию 15) экземпляров плана службы приложений на каждый интерфейсный сервер. Среда службы приложений всегда использует не менее двух интерфейсных серверов. Вы может также увеличить размер интерфейсных серверов.

Область метрик, используемая для мониторинга инфраструктуры платформы, называется Microsoft.Web/hostingEnvironments/multiRolePools.

Вы увидите область с именем Microsoft.Web/hostingEnvironments/workerPools. Представленные здесь метрики применимы только к Среде службы приложений версии 1.

Ведение журнала

Можно интегрировать ASE с Azure Monitor для отправки журналов о среде ASE в службу хранилища Azure, в Центры событий Azure или в службу Log Analytics. На сегодняшний день регистрируются следующие элементы.

Ситуация Message
ASE неработоспособна Указанная среда ASE неработоспособна из-за недопустимой конфигурации виртуальной сети. Если неработоспособное состояние ASE сохраняется, работа ASE будет приостановлена. Убедитесь, что выполнены рекомендации из этой статьи: Рекомендации по работе с сетью для Среды службы приложений.
В подсети ASE почти нет свободного пространства Указанная ASE находится в подсети, в которой почти не осталось свободного пространства. Осталось адресов: {0}. Когда эти адреса будут исчерпаны, масштабирование ASE станет невозможным.
ASE приближается к общему ограничению на количество экземпляров Указанная ASE приближается к суммарному ограничению на количество экземпляров в ASE. В настоящее время ASE содержит {0} экземпляров плана службы приложений при максимуме 201 экземпляр.
ASE не удалось связаться с зависимостью Указанная ASE не может связаться с {0}. Убедитесь, что выполнены рекомендации из этой статьи: Рекомендации по работе с сетью для Среды службы приложений.
ASE приостановлена Указанная ASE приостановлена. Приостановка ASE может быть вызвана нехваткой учетных записей или недопустимой конфигурацией виртуальной сети. Устраните первопричину и возобновите работу ASE, чтобы продолжить обслуживание трафика.
Запущено обновление ASE Начато обновление платформы указанной ASE. Выполнение операций масштабирования задерживается.
Обновление ASE завершено Обновление платформы указанной ASE завершено.
Запущены операции масштабирования Начато масштабирование плана службы приложений ({0}). Требуемое состояние: {1} I{2} рабочих ролей.
Операции масштабирования завершены Масштабирование плана службы приложений ({0}) завершено. Текущее состояние: {1} I{2} рабочих ролей.
Сбой операций масштабирования Не удалось масштабировать план службы приложений ({0}). Текущее состояние: {1} I{2} рабочих ролей.

Чтобы включить ведение журнала для ASE

  1. На портале выберите Параметры диагностики.
  2. Выберите Добавить параметр диагностики.
  3. Укажите имя для интеграции журналов.
  4. Выберите и настройте нужные назначения журналов.
  5. Выберите AppServiceEnvironmentPlatformLogs.

ASE diagnostic log settings

При интеграции с Log Analytics можно просмотреть журналы, выбрав Журналы на портале ASE и создав запрос к AppServiceEnvironmentPlatformLogs. Журналы создаются только тогда, когда в вашей ASE есть триггерное событие. Если в ASE нет такого события, журналы не создаются. Чтобы быстро просмотреть пример журналов в рабочей области Log Analytics, выполните в ASE операцию масштабирования для одного из планов службы приложений. Затем можно выполнить запрос к AppServiceEnvironmentPlatformLogs, чтобы просмотреть эти журналы.

Создание оповещения

Чтобы создать оповещение для журналов, следуйте инструкциям, приведенным в статье Создание и просмотр оповещений журнала, а также управление ими с помощью Azure Monitor. Краткое описание

  • Откройте страницу "Оповещения" на портале ASE
  • Выберите Новое правило генерации оповещений
  • Выберите ресурс для рабочей области Log Analytics
  • Задайте условие с помощью пользовательского поиска по журналам, чтобы использовать запрос, например AppServiceEnvironmentPlatformLogs | where ResultDescription contains "has begun scaling", или другой запрос. Установите нужный порог.
  • При необходимости добавьте или создайте группу действий. Группа действий определяет реакцию на оповещение, например отправку сообщения электронной почты или SMS.
  • Назовите оповещение и сохраните его.

Параметры обновления

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

  • Нет. При обновлении в Azure ваша ASE не будет включена ни в какую партию. Это значение по умолчанию.
  • Ранняя. Ваша ASE будет обновлена в первой половине обновлений службы приложений.
  • Поздняя. Ваша ASE будет обновлена во второй половине обновлений службы приложений.

Выберите нужное значение и нажмите кнопку Сохранить. По умолчанию для всех ASE используется значение Нет.

ASE configuration portal

Использовать функцию upgradePreferences лучше всего при наличии нескольких сред ASE, так как "ранние" среды ASE будут обновлены раньше, чем "поздние" среды ASE. При наличии нескольких сред ASE, следует задать для сред ASE разработки и тестирования значение "Ранняя", а для рабочих сред ASE — значение "Поздняя".

Цены

Ценовая категория "Изолированный" предназначена только для ASE версии 2. Все планы службы приложений, размещенные в ASE версии 2, относятся к ценовой категории "Изолированный". Тарифы для планов службы приложений категории "Изолированный" могут различаться по регионам.

Помимо цены плана службы приложений, существует фиксированная ставка за саму среду ASE. Эта ставка не изменяется в зависимости от размера вашей среды ASE. Плата за инфраструктуру ASE по умолчанию берется за один дополнительный интерфейс на каждые 15 экземпляров плана службы приложений.

Если принцип масштабирования по умолчанию (один внешний интерфейс на каждые 15 экземпляров плана службы приложений) не обеспечивает достаточной скорости, вы можете изменить соотношение количества внешних интерфейсов или их размер. При изменении этого соотношения или размера вы будете оплачивать дополнительные ядра для внешних интерфейсов сверх того количества, которое используется с параметрами по умолчанию.

Например, если установить значение коэффициента масштабирования 10, то внешний интерфейс будет добавляться для каждых 10 экземпляров в планах службы приложений. Фиксированная плата охватывает масштаб "1 внешний интерфейс на каждые 15 экземпляров". При значении коэффициента масштабирования 10 вам придется заплатить за третий внешний интерфейс, который добавляется при 10 экземплярах плана службы приложений. Но когда число дойдет до 15 экземпляров, вам не нужно будет ничего доплачивать, так как интерфейс был бы добавлен автоматически.

Если вы измените размер внешних интерфейсов до 2 ядер, но не измените соотношение, за дополнительные ядра будет взиматься плата. Среда ASE создается с 2 внешними интерфейсами, поэтому даже ниже порогового значения автоматического масштабирования взимается плата за 2 дополнительных ядра, если размер внешних интерфейсов увеличен до 2 ядер.

Дополнительные сведения см. на странице цен на службу приложений Azure.

Удаление ASE

Чтобы удалить ASE, сделайте следующее:

  1. Выберите Удалить в верхней части панели Среда службы приложений.

  2. Введите имя среды ASE, чтобы подтвердить ее удаление. При удалении среды ASE также удаляется все ее содержимое.

    ASE deletion

  3. Нажмите ОК.

ASE CLI

Существуют возможности для администрирования командной строки в ASE. Ниже перечислены команды Azure CLI.

C:\>az appservice ase --help

Group
    az appservice ase : Manage App Service Environments v2.
        This command group is in preview. It may be changed/removed in a future release.
Commands:
    create         : Create app service environment.
    delete         : Delete app service environment.
    list           : List app service environments.
    list-addresses : List VIPs associated with an app service environment.
    list-plans     : List app service plans associated with an app service environment.
    show           : Show details of an app service environment.
    update         : Update app service environment.

For more specific examples, use: az find "az appservice ase"