Рекомендации по службе приложение Azure

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

Совместное размещение

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

  • увеличение задержки при взаимодействии между ресурсами,
  • Денежные расходы на передачу исходящих данных по регионам, как указано на странице цен Azure

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

Закрепление сертификата

Закрепление сертификатов — это практика, в которой приложение разрешает только определенный список допустимых центров сертификации (ЦС), открытых ключей, отпечатков или любой части иерархии сертификатов.

Приложения никогда не должны иметь жесткую зависимость или закрепление на диком языке по умолчанию карта (*.azurewebsites.net) TLS-сертификат. Служба приложений — это платформа как услуга (PaaS), поэтому этот сертификат можно повернуть в любое время. Если служба сменяет дикий сертификат по умолчанию карта TLS, приложения, закрепленные на сертификате, прервют подключение для приложений, которые жестко закодированы в определенный набор атрибутов сертификата. Периодичность поворота сертификата также не гарантируется, так как частота поворота может изменяться в любое время.

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

Если приложение должно полагаться на поведение закрепления сертификатов, рекомендуется добавить личный домен в веб-приложение и предоставить пользовательский сертификат TLS для домена. Затем приложение может полагаться на пользовательский сертификат TLS для закрепления сертификатов.

Ресурсы памяти

Если рекомендации по мониторингу или службе указывают, что приложение потребляет больше памяти, чем ожидалось, рассмотрите Служба приложений функцию автоматического восстановления. Вы можете настроить автоматическое восстановление с помощью web.config.

Одним из вариантов функции автоматического восстановления является выполнение пользовательских действий на основе порогового значения памяти. Действия варьируются от Уведомления по электронной почте до расследования с помощью дампа памяти до локального устранения рисков путем перезапуска рабочего процесса.

Ресурсы ЦП

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

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

Ресурсы сокета

Распространенной причиной исчерпания исходящих TCP-подключений является использование клиентских библиотек, которые не используют tcp-подключения или не используют более высокий уровень протокола, например http-поддержания активности.

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

Node.js и исходящие HTTP-запросы

При работе с Node.js и многими исходящими HTTP-запросами важно иметь дело с сохранением активности HTTP. Чтобы упростить код, вы можете использовать пакет npmagentkeepalive.

Обязательно выполняйте обработку ответа http, даже при отсутствии действий в обработчике. Если вы не обрабатываете ответ должным образом, приложение в конечном итоге зависает, так как больше сокетов не доступно.

Ниже приведен пример обработки ответа при работе с пакетом http или https с ним:

const request = https.request(options, function(response) {
    response.on('data', function() { /* do nothing */ });
});

Если вы используете приложение Служба приложений на компьютере Linux с несколькими ядрами, рекомендуется использовать PM2 для запуска нескольких процессов Node.js для запуска приложения. Для этого можно указать команду запуска контейнера.

Например, используйте эту команду для запуска четырех экземпляров:

pm2 start /home/site/wwwroot/app.js --no-daemon -i 4

Резервное копирование приложений

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

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

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

Дополнительные сведения о резервных копиях приложений см. в статье "Резервное копирование и восстановление приложения" в службе приложение Azure.

Приложения Node.js

Конфигурация службы приложение Azure по умолчанию для приложений Node.js предназначена для оптимального соответствия потребностям большинства распространенных приложений. Если вы хотите персонализировать конфигурацию по умолчанию для приложения Node.js, чтобы повысить производительность или оптимизировать использование ресурсов для ЦП, памяти или сетевых ресурсов, ознакомьтесь с рекомендациями и руководством по устранению неполадок для приложений Node в службе приложение Azure. В этой статье описываются параметры iisnode, которые может потребоваться настроить для приложения Node.js. В нем также объясняется, как устранять сценарии или проблемы с приложением.

Устройства IoT

Вы можете улучшить среду при запуске устройств Интернета вещей (IoT), подключенных к Служба приложений.

Одна из распространенных практик устройств Интернета вещей — закрепление сертификатов. Чтобы избежать непредвиденных простоев из-за изменений в управляемых сертификатах службы, никогда не следует закреплять сертификаты на сертификат по умолчанию *.azurewebsites.net или Служба приложений управляемый сертификат. Если системе необходимо полагаться на поведение закрепления сертификатов, рекомендуется добавить личный домен в веб-приложение и предоставить пользовательский сертификат TLS для домена. Затем приложение может полагаться на пользовательский сертификат TLS для закрепления сертификатов. Дополнительные сведения см. в разделе о закреплении сертификатов этой статьи.

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

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

Другой вариант — использовать подсистему балансировки нагрузки перед веб-приложениями, например Azure Front Door или Диспетчер трафика Azure, чтобы обеспечить высокий уровень доступности для веб-приложений. Дополнительные сведения см. в кратком руководстве по созданию экземпляра Front Door для высокодоступного глобального веб-приложения или управления трафиком службы приложение Azure с помощью Диспетчер трафика Azure.

Следующие шаги

Чтобы получить практические рекомендации, относящиеся к ресурсу, используйте Служба приложений диагностика:

  1. Перейдите в веб-приложение в портал Azure.
  2. Откройте Служба приложений диагностика, выбрав "Диагностика и решение проблем" на левой панели.
  3. Выберите плитку "Рекомендации ".
  4. Выберите рекомендации по обеспечению доступности и производительности или рекомендации по оптимальной настройке , чтобы просмотреть текущее состояние приложения в отношении этих рекомендаций.

Эту ссылку можно также использовать для прямого открытия Служба приложений диагностика для ресурса: https://portal.azure.com/?websitesextension_ext=asd.featurePath%3Ddetectors%2FParentAvailabilityAndPerformance#@microsoft.onmicrosoft.com/resource/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/troubleshoot