Для клиентов в сегментах, которые тесно управляются и ограничены соответствием, важно иметь изолированную и выделенную среду, особенно для бизнес-приложений. Хотя безопасность находится в переднем и центре, эти критически важные приложения также требуют возможности масштабирования и выполнения в сценариях высокой загрузки памяти или высоких запросов в секунду. Это решение содержит пример размещения бизнес-приложений. Вы можете использовать Среда службы приложений для одновременного решения как безопасности, так и производительности. При развертывании этого решения вы сможете использовать существующие ресурсы в целевой зоне Azure, которая представляет ресурсы в центральной виртуальной сети. Кроме того, вы можете развернуть это решение как локальную рабочую нагрузку.
Примечание.
В этой статье представлена развертываемая архитектура, которая соответствует руководству Cloud Adoption Framework для Служба приложений в целевых зонах Azure.
Архитектура
Весь образ находится в области подписки и частной зоны DNS. Он обозначается значком подписки и значком зоны Azure Частная зона DNS в левом верхнем углу. Под этими значками два блока рядом. Они представляют две виртуальные сети с пирингом между виртуальными сетями. Блок слева представляет виртуальную сеть концентратора, а блок справа представляет периферийную виртуальную сеть. В левом поле есть три небольших ящика. Каждое поле указывает другую подсеть и связанную с ней группу безопасности сети. Начиная с левого верхнего слева , это экземпляр Бастиона Azure в подсети Бастиона Azure, а в правом верхнем углу — виртуальная машина прыжка, которая находится в подсети прыжков. В правом нижнем углу находится третье и последнее поле в виртуальной сети концентратора, которая содержит сервер агента CI/CD, который находится в подсети CI/CD. Поле справа, представляющее периферийную виртуальную сеть, содержит только одно меньшее поле, подсеть Среда службы приложений с экземпляром Среда службы приложений версии 3. Меньшее поле представляет Среда службы приложений. Значок Служба приложений находится внутри этого поля. В нижнем центре образа используются общие ресурсы, которые также развертываются в процессе. Начиная с левого направо, общие ресурсы включают Azure Key Vault, рабочую область Azure Log Analytics и приложение Azure Insights.
Скачайте файл Visio для этой архитектуры.
Рабочий процесс
В этой архитектуре есть три потока с выносками: операции (оранжевый), развертывание (зеленый) и пользователь (фиолетовый).
Операции
- Операторы или администраторы хотят выполнять задачи администрирования на сервере непрерывной интеграции или непрерывного развертывания (CI/CD) или в конечной точке Kudu для Среда службы приложений. Сначала им потребуется подключиться к узлу Бастиона Azure.
- С помощью узла Бастиона Azure оператор или администратор затем может использовать протокол удаленного рабочего стола (RDP) для доступа к серверу прыжков.
- С сервера jumpbox оператор или администратор может выполнить RDP на сервер CI/CD и выполнить необходимые задачи, такие как обновления агента, обновления ОС и т. д. Оператор или администратор также может подключиться с сервера jumpbox к конечной точке Kudu экземпляра Среда службы приложений, выполнять административные задачи или выполнять дополнительные способы устранения неполадок.
Развертывание
- Развертывание решения выполняется с помощью сервера агента CI/CD. Агент DevOps на этом сервере будет подключаться к Azure Pipelines при выполнении нового развертывания.
- Затем артефакты будут развернуты в службе приложений путем подключения к Среда службы приложений через пиринг виртуальной сети.
User
- Пользователи могут подключаться к развернутой Служба приложений через сеть компании. При необходимости они могут использовать Azure ExpressRoute или VPN и (или) через любой применимый пиринг виртуальной сети Azure.
Компоненты
Решение использует следующие службы Azure:
среда службы приложение Azure версии 3 (ASEv3) — это функция службы приложение Azure и является службой с одним клиентом для клиентов, которым требуется высокая масштабируемость, сетевая изоляция, безопасность и (или) высокая загрузка памяти. Приложения размещаются в планах Служба приложений, созданных в Среда службы приложений версии 3, с параметрами использования различных уровней в рамках плана обслуживания изолированной версии 2. По сравнению с более ранней версией Среда службы приложений, было сделано множество улучшений, включая, но не ограничивается, сетевой зависимостью, временем масштабирования и удалением платы за метку. Это решение использует Среда службы приложений версии 3, настроенную для внутреннего доступа.
Azure Частная зона DNS позволяет управлять доменными именами и разрешать их в виртуальной сети без необходимости реализовать пользовательское решение DNS. Зона Частная зона DNS Azure может быть выровнена с одной или несколькими виртуальными сетями через каналы виртуальной сети. Из-за внутренней природы Среда службы приложений версии 3, которую использует эта эталонная архитектура, для разрешения доменных имен приложений, размещенных в Среда службы приложений, требуется частная зона DNS.
аналитика приложение Azure — это функция Azure Monitor, которая помогает разработчикам обнаруживать аномалии, диагностировать проблемы и понимать шаблоны использования. Application Insights предоставляет расширяемое управление производительностью приложений и мониторинг для динамических веб-приложений. Поддерживаются различные платформы, включая .NET, Node.js, Java и Python. Она поддерживает приложения, размещенные в Azure, локальной среде, в гибридной среде или в других общедоступных облаках. Application Insights входит в состав этой эталонной архитектуры, чтобы отслеживать поведение развернутого приложения.
Azure Log Analytics — это функция Azure Monitor, которая позволяет изменять и запускать запросы журналов с данными в журналах Azure Monitor, при необходимости из портал Azure. Разработчики могут выполнять простые запросы для набора записей или использовать Log Analytics для выполнения расширенного анализа. Затем они могут визуализировать результаты. Log Analytics настраивается в рамках этой эталонной архитектуры, чтобы агрегировать все журналы мониторинга для анализа и отчетности.
Azure Виртуальные машины — это масштабируемый вычислительный ресурс по запросу, который можно использовать для размещения нескольких различных рабочих нагрузок. В этой эталонной архитектуре виртуальные машины используются для предоставления сервера управления jumpbox, а также для предоставления узла для агента DevOps или GitHub runner.
Azure Key Vault — это облачная служба, которая безопасно хранит и обращается к секретам, которые варьируются от ключей API и паролей до сертификатов и криптографических ключей. Хранилище ключей Azure развертывается в рамках инфраструктуры этой архитектуры, чтобы упростить управление секретами для будущих развертываний кода.
Бастион Azure — это платформа как услуга, подготовленная в виртуальной сети разработчика. Он обеспечивает безопасное подключение RDP/SSH к виртуальным машинам разработчика по протоколу TLS из портал Azure. При использовании Бастиона Azure виртуальные машины больше не требуют общедоступного IP-адреса для подключения через RDP/SSH. Эта эталонная архитектура использует Бастион Azure для доступа к агенту DevOps или серверу runner GitHub или серверу управления jumpbox.
Альтернативные варианты
Рекомендуется добавить Шлюз приложений Azure перед экземпляром Служба приложений, чтобы обеспечить функциональность Брандмауэр веб-приложений (WAF) для защиты веб-приложений от распространенных эксплойтов и уязвимостей.
Локальное средство запуска GitHub можно использовать вместо локального агента Azure DevOps.
Рекомендации
Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, которая является набором руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.
Надежность
Надежность гарантирует, что ваше приложение позволит вам выполнить ваши обязательства перед клиентами. Дополнительные сведения см. в разделе "Обзор основы надежности".
- Учитывайте требования к избыточности зоны в этой эталонной реализации, а также возможности избыточности зоны любых других служб Azure в решении. Среда службы приложений версии 3 поддерживает избыточность зоны путем распространения экземпляров ко всем трем зонам в целевом регионе. Эта конфигурация может быть задана только во время создания Среда службы приложений, и она может быть недоступна во всех регионах. Дополнительные сведения см. в статье о поддержке зоны доступности для Среда службы приложений. Эта эталонная реализация реализует избыточность зоны, но ее можно изменить, клонируя этот репозиторий и установив для свойства значение
zoneRedundant
false
.
Безопасность
Безопасность обеспечивает гарантии от преднамеренного нападения и злоупотребления ценными данными и системами. Дополнительные сведения см. в разделе "Общие сведения о компоненте безопасности".
- Используйте соответствующее использование ограничений доступа, чтобы служба приложений была доступна только из допустимых расположений. Например, если служба приложений размещает API- интерфейсы и интерфейсы APIM, можно настроить ограничение доступа, чтобы служба приложений была доступна только из APIM.
- Так как эта эталонная реализация развертывает Среда службы приложений в виртуальной сети (называемой внутренней Среда службы приложений), все приложения, развернутые в Среда службы приложений, по сути, изолированы от сети в пределах виртуальной сети.
- Храните секреты приложения (учетные данные базы данных, маркеры API и закрытые ключи) в Azure Key Vault. Настройте приложение Служба приложений для безопасного доступа к ним с помощью управляемого удостоверения. Определите, когда следует использовать Azure Key Vault и Конфигурация приложений Azure.
Оптимизация затрат
Оптимизация затрат заключается в поиске способов уменьшения ненужных расходов и повышения эффективности работы. Дополнительные сведения см. в разделе Обзор критерия "Оптимизация затрат".
- Несмотря на отсутствие платы за Среда службы приложений экземпляра версии 3, плата взимается, если в экземпляре Среда службы приложений версии 3 не настроены планы службы приложений. Эта плата взимается с той же скоростью, что и один экземпляр экземпляра Windows I1v2 для региона, в котором развертывается экземпляр Среда службы приложений версии 3.
- При настройке избыточности зоны модель зарядки настраивается для учета базовой инфраструктуры, развернутой в этой конфигурации. Вы можете нести ответственность за дополнительные экземпляры по ценам ASEv3.
- Для планов Среда службы приложений версии 3 Служба приложений (известных как изолированные планы Служба приложений версии 2), используйте резервирования Azure и план экономии Azure для вычислений с помощью одного или трехлетнего контракта и получения значительной экономии по мере использования цен. Дополнительные сведения см. в разделе о том, как скидки на резервирование применяются к изолированным экземплярам версии 2.
Эффективность работы
Оперативное превосходство охватывает процессы операций, которые развертывают приложение и продолжают работать в рабочей среде. Дополнительные сведения см. в разделе "Общие сведения о принципах эффективности работы".
- Используйте Application Insights или другое решение для управления производительностью приложений для мониторинга и изучения поведения приложения в разных средах.
- Существует два способа включения Application Insights. Для разных сред соберите данные телеметрии в разные экземпляры Application Insights.
- Если в приложении есть несколько компонентов, разделенных на разные службы, может потребоваться проанализировать их поведение вместе. Соберите данные телеметрии в одном экземпляре Application Insights, но помечайте их различными именами ролей облака.
- Экспортируйте данные Application Insights в рабочую область Azure Log Analytics . Рекомендуется использовать одну рабочую область для организации.
- Включите операционные панели мониторинга в структуру приложений и функций, чтобы обеспечить поддержку решения в рабочей среде.
- Реализуйте проверки работоспособности для конечных точек, а затем используйте их для проб работоспособности, проверок зависимостей и тестов доступности.
- Рекомендуется использовать префиксы и суффиксы с четко определенными соглашениями, чтобы однозначно определить каждый развернутый ресурс. Эти соглашения об именовании избежать конфликтов при развертывании решений рядом друг с другом и повышении общей гибкости команды и пропускной способности.
- В зависимости от конфигурации сети Служба приложений может быть недоступно из общедоступного Интернета, а использование общедоступных размещенных агентов не будет работать для развертываний. Используйте в этом сценарии локальные агенты .
Развертывание этого сценария
Чтобы приступить к работе и лучше понять особенности этой реализации, просмотрите справочные ресурсы реализации в руководстве пользователя по развертыванию эталонной реализации.
- Мы рекомендуем клонировать этот репозиторий и изменить справочные ресурсы реализации в соответствии с вашими требованиями и рекомендациями конкретной целевой зоны вашей организации.
- Перед развертыванием убедитесь, что субъект-служба, используемый для развертывания решения, имеет необходимые разрешения для создания типов ресурсов, перечисленных выше.
- Рассмотрим службу CI/CD, используемую для развертывания эталонной реализации. Так как эта эталонная реализация является внутренней Среда службы приложений, вам потребуется локальный агент для выполнения конвейеров развертывания. Вы можете использовать агент DevOps или GitHub runner. Ознакомьтесь с руководством пользователя по определенным значениям конфигурации, которые требуются.
- Рассмотрим регионы, в которых планируется развернуть эту эталонную реализацию. Обратитесь к списку регионов ASEv3, чтобы убедиться, что выбранные регионы включены для развертывания.
Соавторы
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.
Основные авторы:
- Пит Мессина | Архитектор облачных решений Senoir
- Nabeel Prior | Старший архитектор облачных решений
Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.
Следующие шаги
- Безопасность в Службе приложений Azure
- Сеть для Служба приложений
- Руководство по Cloud Adoption Framework для Служба приложений в целевых зонах Azure
Дополнительные сведения об этих ключевых службах:
- среда службы приложение Azure версии 3 (ASEv3)
- Зоны Частная зона DNS Azure
- Azure Application Insights
- Мониторинг базы данных SQL Azure с помощью служб анализа SQL Azure (предварительная версия) в Log Analytics.
- Обзор Виртуальных машин Azure
- Основные понятия Azure Key Vault
- Бастион Azure