Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Сервис Azure Container Apps — полностью управляемая безсерверная контейнерная услуга, которая запускает микросервисы и контейнеризованные приложения в Azure. Он обеспечивает встроенное автоматическое масштабирование, включая масштабирование до нуля, и поддерживает несколько языков программирования и фреймворков. Приложения Container интегрируются с Azure Kubernetes Service (AKS) для расширенных возможностей работы в сети и мониторинга. Он также обеспечивает беспрепятственное развертывание и управление контейнеризированными приложениями без необходимости управления базовой инфраструктурой. Он поддерживает как приложения, основанные на HTTP, так и приложения, работающие на основе событий, поэтому идеально подходит для создания современных, масштабируемых и устойчивых облачно-нативных приложений.
Эта статья предполагает, что вы, как архитектор, изучили дерево принятия решений для вычислений и выбрали Container Apps в качестве вычислительной платформы для вашей рабочей нагрузки. В этой статье приведены рекомендации по архитектуре, сопоставленные с принципами Well-Architected платформы.
Это важно
Как использовать это руководство
Каждый раздел содержит контрольный список проектирования, который включает архитектурные аспекты, вызывающие обеспокоенность, а также стратегии проектирования, адаптированные к конкретным технологиям.
Также включены рекомендации по возможностям технологий, которые помогут материализовать эти стратегии. Рекомендации не представляют собой исчерпывающий список всех конфигураций, доступных для контейнеров приложений и их зависимостей. Вместо этого они перечисляют ключевые рекомендации, сопоставленные с перспективами проектирования. Используйте рекомендации для создания подтверждения концепции или оптимизации существующих сред.
Основополагающая архитектура, демонстрирующая ключевые рекомендации: Microservices with Azure Container Apps.
Область технологии
В этом обзоре рассматриваются взаимосвязанные решения для следующих ресурсов Azure:
- Контейнерные приложения
Надёжность
Цель компонента надежности заключается в обеспечении непрерывной функциональности путем создания достаточной устойчивости и возможности быстрого восстановления после сбоев.
принципы проектирования надежности обеспечивают высокоуровневую стратегию проектирования, применяемую для отдельных компонентов, системных потоков и системы в целом.
Контрольный список проектирования
Начните стратегию проектирования на основе контрольного списка для проверки надежности. Определите его соответствие требованиям вашего бизнеса, не забывая при этом о производительности и надежности ваших приложений. Расширьте стратегию, чтобы включить дополнительные подходы по мере необходимости.
Выберите подходящие конфигурации SKU. Выберите SKU среды, которое соответствует требованиям к ресурсам и производительности ваших контейнерных приложений.
Создание избыточности для повышения устойчивости. Для приложений, доступных для входящего трафика (HTTP или TCP), используйте по крайней мере три реплики, чтобы обеспечить доступность. Чтобы свести к минимуму холодный запуск, настройте минимальное количество постоянно готовых реплик.
Используйте зоны доступности как часть вашей стратегии устойчивости, чтобы повысить доступность при развертывании в одном регионе. Многие регионы Azure предоставляют зоны доступности. Зоны расположены достаточно близко, чтобы обеспечить соединение между ними с низкой задержкой, но достаточно далеко друг от друга, чтобы свести к минимуму риск локальных сбоев, затрагивающих несколько зон.
Для критически важных рабочих нагрузок разверните среды Container Apps в нескольких регионах и используйте Azure Front Door или Azure Traffic Manager для управления трафиком. Эти услуги помогают обеспечить высокую доступность и непрерывность бизнеса. В случае регионального сбоя вы можете автоматически перенаправить трафик в дополнительный регион, чтобы свести к минимуму время простоя и потерю данных.
Реализуйте горизонтальное автомасштабирование. Настройте автомасштабирование с помощью правил масштабирования, основанных на HTTP-запросах, TCP-подключениях или пользовательских метриках, таких как пороговые значения ЦП и памяти. Вы можете определить пользовательские метрики в Azure Service Bus, Azure Event Hubs, Apache Kafka и Azure Cache для Redis. Используйте автоскалирование для динамического управления нагрузками и поддержания высокой доступности в периоды пиковых нагрузок.
Убедитесь, что ваши контейнерные приложения могут обслуживать запросы в рамках вашего целевого уровня обслуживания (SLO) при высокой нагрузке.
Следите за надежностью и общими показателями состояния контейнерного приложения. Сбор журналов и метрик для мониторинга состояния системы, выявления тенденций производительности и надежности, а также для устранения проблем. Для получения дополнительной информации о проектировании решения для мониторинга надежности и состояния вашей рабочей нагрузки см. Моделирование состояния для рабочих нагрузок.
Реализуйте инструменты мониторинга и оповещения. Активируйте инструменты мониторинга, такие как Azure Monitor и OpenTelemetry. Настройте оповещения, чтобы своевременно обнаруживать и реагировать на события, влияющие на надежность.
Настройте проверки состояния. Настройте проверки запуска, готовности и активности для всех сервисов, чтобы следить за состоянием и поддерживать работоспособность приложения.
Настройте механизмы самовосстановления для автоматического перезапуска нежизнеспособных контейнеров. Автоматические перезапуски увеличивают надежность и доступность ваших приложений. Они помогают обеспечить быстрое восстановление после отказов без необходимости ручного вмешательства. Используйте проверки состояния для обнаружения неисправных контейнеров и настройте политики устойчивости для автоматической обработки повторных попыток и перекидных автоматических выключателей.
Рекомендации
Рекомендация | Преимущества |
---|---|
Включите поддержку зон доступности контейнеров приложений, чтобы автоматически распределять реплики по зонам в регионе. Трафик распределяется между репликами. | Если происходит сбой зоны, трафик автоматически перенаправляется на реплики в оставшихся зонах. |
Определите квоты ресурсов и ограничения. | Предотвращение конкуренции за ресурсы, чтобы гарантировать справедливое распределение и избежать снижения производительности. Используйте мониторинг с течением времени, чтобы наблюдать фактическое использование ресурсов и соответственно корректировать квоты и пределы. |
Используйте монтирование volume, чтобы хранить данные вне контейнера в состояниях приложений. Чтобы повысить устойчивость данных, используйте хранилище, избыточное между зонами Azure (ZRS), чтобы обеспечить высокий уровень доступности и надежности данных. | Обеспечьте сохранность данных и их целостность при перезапусках и сбоях контейнеров. Используйте ZRS для защиты от потери данных из-за зональных сбоев, что обеспечивает надежное решение для критически важных приложений с сохранением состояния. |
Реализуйте индикаторы готовности, работоспособности и запуска для ваших контейнерных приложений. Механизмы проверки работоспособности обнаруживают и перезапускают контейнеры, находящиеся в неработоспособном состоянии. Рекомендуемые настройки: failureThreshold: 3 , periodSeconds: 10 , timeoutSeconds: 5 , successThreshold: 1 и initialDelaySeconds: 10 Датчики готовности обеспечивают получение трафика только здоровыми контейнерами. Рекомендуемые настройки: failureThreshold: 60 , periodSeconds: 1 , timeoutSeconds: 1 , successThreshold: 1 и initialDelaySeconds: 5 Пробы запуска предотвращают преждевременные перезапуски, позволяя медленно запускающимся приложениям правильно инициализироваться. Рекомендуемые настройки: failureThreshold: 60 , periodSeconds: 1 , timeoutSeconds: 1 , successThreshold: 1 и initialDelaySeconds: 0 |
Правильная настройка зонда помогает гарантировать, что ваши контейнерные приложения работают бесперебойно и справляются с трафиком. Неправильные настройки зондов могут привести к незапланированным перезагрузкам или простоям. |
Используйте встроенные функции наблюдаемости Container Apps, такие как потоковая передача логов, консоль контейнера и метрики и оповещения Azure Monitor, для обеспечения проактивного мониторинга и эффективного отладки. | Приложения Container Apps предоставляют расширенные возможности для наблюдения, включая интеграцию с информационной панелью .NET Aspire и метриками Java. Эти инструменты обеспечивают расширенные возможности для анализа основных экосистем. Вы также можете использовать сборщик OpenTelemetry для всестороннего распределенного отслеживания и сбора метрик. Эти функции повышают надежность приложения, поскольку вы можете быстро выявлять и устранять проблемы. |
Реализуйте политики устойчивости для обнаружения служб, такие как повторные попытки, тайм-ауты и автоматические выключатели, чтобы проактивно предотвращать, выявлять и устранять сбои в запросах к службам. | Улучшите надежность ваших контейнерных приложений, обеспечив более плавную и устойчивую межсервисную связь. |
Реализуйте горизонтальное автомасштабирование, используя правила масштабирования, основанные на HTTP-запросах, TCP-соединениях или пользовательских метриках, таких как пороговые значения для процессора и памяти. Вы можете определить пользовательские метрики в Service Bus, Event Hubs, Apache Kafka и Azure Cache for Redis. | Рабочая нагрузка может динамически управлять нагрузками и поддерживать высокий уровень доступности в периоды пиковой нагрузки. |
Безопасность
Цель компонента "Безопасность" — обеспечить конфиденциальности, целостности и доступности гарантии рабочей нагрузки.
Принципы проектирования безопасности предоставляют стратегию проектирования высокого уровня для достижения этих целей, применяя подходы к техническому дизайну приложений-контейнеров.
Контрольный список проектирования
Начните стратегию проектирования, основываясь на контрольном списке проверки проектирования для безопасности, и выявляйте уязвимости и меры управления для улучшения состояния безопасности. Расширьте стратегию, чтобы включить дополнительные подходы по мере необходимости.
Просмотрите базовые показатели безопасности. Чтобы улучшить позицию безопасности вашей рабочей нагрузки, ознакомьтесь с базовым уровнем безопасности для контейнерных приложений.
Интеграция с Microsoft Entra ID для идентификации и управления доступом. Используйте управление доступом на основе ролей (RBAC) с идентификатором Microsoft Entra ID для доступа с минимальными привилегиями.
Используйте управляемые удостоверения с идентификатором Microsoft Entra ID для безопасного доступа к ресурсам Azure без учетных данных.
Реализуйте сегментацию и управление сетью. Разверните окружения приложений в контейнерах в частной сети и используйте внутренний режим входа для изоляции от публичного интернета.
Контролируйте исходящий трафик. Чтобы предотвратить утечку данных, интегрируйте среду своих контейнерных приложений в настраиваемую виртуальную сеть с маршрутами, определяемыми пользователем, для повышения безопасности исходящего трафика.
Поддерживайте укреплённую цепочку поставок программного обеспечения нагрузки. Реализуйте сканирование с учетом контейнеров в ваших безопасных конвейерах непрерывной интеграции и доставки (CI/CD). Эта функция обнаруживает уязвимости и помогает обеспечивать целостность образов ваших контейнеров. Для получения дополнительной информации см. Containers Secure Supply Chain.
Уменьшите поверхность атаки. Укрепите образы контейнеров и удалите неиспользуемые компоненты. Используйте лёгкие и минимальные базовые образы, такие как образы Alpine и Chiselled Ubuntu.
Интеграция с Microsoft Defender. Используйте Microsoft Defender для контейнеров, чтобы сканировать изображения в Azure Container Registry.
Шифруйте данные в состоянии покоя и данные при передаче. Используйте современные методы, соответствующие отраслевым стандартам, для обеспечения конфиденциальности и целостности.
Используйте Azure Key Vault. Храните конфиденциальные значения конфигурации и секреты в Key Vault для защиты от несанкционированного доступа.
Включите взаимную безопасность транспортного уровня (mTLS). Используйте mTLS для аутентификации и шифрования трафика между службами. Эта функция проверяет обе стороны, что повышает безопасность.
Обеспечьте использование HTTPS. Настройте прокси-сервер Envoy для перенаправления всего HTTP-трафика на HTTPS. Конфигурация по умолчанию для Envoy -
allowInsecure: false
.Реализовать стратегию мониторинга безопасности. Записывайте подробные журналы для мониторинга и аудита. Отправляйте журналы систем и консолей в рабочее пространство Log Analytics, Event Hubs или в решение, не принадлежащее Microsoft, для целей мониторинга и аудита. Очистите журналы от конфиденциальных данных. Журналы консоли поступают из потоков
stderr
иstdout
в приложении.
Рекомендации
Рекомендация | Преимущества |
---|---|
Используйте управляемые идентификаторы для доступа к ресурсам, защищённым Microsoft Entra ID. Назначьте управляемую идентичность вашему приложению-контейнеру, чтобы получить доступ к ресурсам Azure, защищенным Microsoft Entra ID, таким как учетная запись хранения или ключевой хранилище, без необходимости использования ключей или паролей. | Централизуйте управление идентификацией и устраните необходимость в ручном управлении учетными данными. Упростите безопасный доступ к ресурсам Azure. |
Разверните контейнерные приложения в частной сети, чтобы интегрировать их в существующую виртуальную сеть. Используйте такие функции, как подключение к частным приложениям, вложение группы безопасности сети (NSG) и обмен ресурсами через частный IP-адрес. | Обеспечьте изоляцию от общего интернета и обеспечьте безопасное взаимодействие между контейнерными приложениями и другими сетевыми ресурсами. |
Используйте Key Vault для управления сертификатами и секретами приложений с повышенной безопасностью. Key Vault хранит сертификаты и другие секреты приложений отдельно от конфигурации вашего приложения. Она также предоставляет журнал аудита доступа, который фиксирует время обновления, получения и замены сертификатов и секретов. | Помогите защитить конфиденциальную информацию, обеспечить соблюдение требований и поддержать безопасное управление секретами, используя возможности ведения журнала и ротации сертификатов. |
Используйте включенный шлюз приложений Azure с веб-аппликационным файрволом, чтобы помочь защитить HTTP и HTTPS трафик, когда вы публикуете ваше контейнерное приложение через реверсивный прокси. Межсетевой экран веб-приложений сканирует входящий HTTP-трафик на предмет потенциальных атак в рамках Проекта по обеспечению безопасности веб-приложений (OWASP). | Повышайте безопасность, защищая от распространенных уязвимостей веба и обеспечивая централизованное управление трафиком. |
Пройдите проверку подлинности с помощью идентификатора Microsoft Entra в Реестре контейнеров , чтобы избежать использования административных учетных данных. Вы можете контролировать доступ с помощью управления доступом на основе ролей (RBAC). | Включите детализированное управление доступом через РКД для управления образами контейнеров, что помогает обеспечить безопасную аутентификацию без использования учетных данных. |
Используйте правила NSG, чтобы помочь защитить трафик, который обращается к внутренней точке входа ваших контейнерных приложений. Правила NSG обеспечивают более детальный контроль над тем, какие виртуальные сети могут взаимодействовать с контейнерными приложениями. | Улучшите безопасность сети, ограничив доступ только к доверенным сетям, что минимизирует поверхности атак. |
Управляйте исходящим трафиком с помощью определяемых пользователем сетевых маршрутов. Управляйте тем, как контейнеры взаимодействуют с ресурсами за пределами контейнерной среды. Вы можете направлять трафик на Azure Firewall, Azure NAT Gateway или на устройство, не относящееся к продуктам Microsoft. | Обеспечьте контролируемый и безопасный исходящий трафик, поддерживающий продвинутые политики маршрутизации и инспекции. |
Настройте параметры ведения журнала для отправки журналов в рабочую область Log Analytics, Концентраторы событий или решение стороннего производителя. | Поддерживайте централизованный мониторинг, диагностику и аудит, обеспечивая при этом соответствие политикам обработки конфиденциальных данных. |
Оптимизация затрат
Оптимизация затрат фокусируется на обнаружении шаблонов расходов, приоритете инвестиций в критически важные области и оптимизации в других в соответствии с бюджетом организации при выполнении бизнес-требований.
Принципы проектирования оптимизации затрат обеспечивают высокоуровневую стратегию проектирования для достижения этих целей и принятия необходимых компромиссов в техническом проектировании, связанном с контейнерными приложениями и их средой.
Контрольный список проектирования
Начните стратегию проектирования на основе контрольного списка оценки для оптимизации затрат при инвестициях. Настройте структуру, чтобы рабочая нагрузка соответствовала бюджету, выделенному для рабочей нагрузки. Проект должен использовать правильные возможности Azure, отслеживать инвестиции и находить возможности для оптимизации с течением времени.
Выберите подходящие тарифные планы. Выбирайте наиболее экономичные тарифные планы для приложений-контейнеров в зависимости от требований к рабочей нагрузке и ожидаемых шаблонов использования.
Воспользуйтесь планом экономии Azure для вычислений, заключив обязательство по фиксированной почасовой ставке на один или три года. Используйте план накоплений, чтобы сэкономить до 17% по сравнению с тарифами оплаты по мере использования. Оптимизируйте ваш бюджет и сократите общие расходы для долгосрочных, предсказуемых рабочих нагрузок.
Оптимизируйте затраты на компоненты рабочей нагрузки. Регулярно пересматривайте и корректируйте распределение ЦП и памяти, чтобы соответствовать потребностям ваших приложений. Эта практика предотвращает избыточное выделение ресурсов и минимизирует затраты.
Используйте уровни управляемых дисков. Когда вы используете монтирование томов, выбирайте соответствующие уровни и размеры управляемых дисков, чтобы оптимизировать затраты на хранение для постоянных данных. Платите только за то, что вам нужно.
Используйте упрощенные и оптимизированные образы контейнеров, чтобы улучшить время запуска и эффективность использования ресурсов, что снижает затраты на хранение и подключение к сети.
Оптимизируйте расходы на масштабирование. Настройте политики авто масштабирования для автоматического уменьшения ресурсов в периоды низкого спроса и увеличения в пиковое время. Эта практика обеспечивает эффективное использование ресурсов.
Оптимизируйте затраты на сетевые ресурсы. Оптимизируйте сетевые пути для минимизации затрат на передачу данных, особенно для приложений с большими объемами пропускной способности.
Используйте инструменты управления затратами. Используйте инструменты Microsoft Cost Management для отслеживания и анализа расходов, устанавливайте бюджеты, создавайте оповещения о стоимости и внедряйте единые теги для всех ресурсов.
Эти инструменты обеспечивают детальную видимость затрат на облачные услуги, помогают выявлять возможности для экономии, обеспечивают соблюдение бюджетных ограничений и позволяют тщательно отслеживать и отчитываться о затратах, связанных с конкретными рабочими нагрузками, приложениями и средами.
Рекомендации
Рекомендация | Преимущества |
---|---|
Регулярно проверяйте и корректируйте ЦП, выделение памяти и другие метрики в соответствии с фактическими потребностями приложений. | Предотвращайте избыточное предоставление ресурсов и сокращайте ненужные затраты, обеспечивая оптимальное соответствие ресурсов рабочим нагрузкам. |
Реализуйте правила авто-масштабирования до нуля для приложений, которые не нужно запускать непрерывно. | Исключите расходы в периоды бездействия, что гарантирует, что вы будете платить за ресурсы только тогда, когда они вам нужны. Такой подход значительно снижает затраты на приложения с переменчивыми или нечастыми шаблонами использования. |
Выберите подходящие уровни управляемых дисков для приложений с сохранением состояния. При выборе используйте производительность и емкость хранилища, а также рассмотрите возможность использования зарезервированных дисков для прогнозируемых рабочих нагрузок. | Убедитесь, что вы платите только за необходимую производительность хранилища, что позволяет избежать чрезмерных затрат на избыточное выделение ресурсов хранения. Зарезервированные диски могут обеспечить значительную экономию средств при долгосрочных требованиях к хранилищу, предлагая скидки по сравнению с оплатой по мере использования. |
Операционное превосходство
Операционное совершенство в основном сосредоточено на процедурах, касающихся практик разработки , наблюдаемости и управления релизами.
Принципы проектирования операционной эффективности обеспечивают высокоуровневую стратегию проектирования для достижения этих целей в соответствии с операционными требованиями рабочей нагрузки.
Контрольный список проектирования
Начните разработку стратегии на основе контрольного списка проверки проекта для повышения операционной эффективности , чтобы определить процессы наблюдения, тестирования и развертывания, связанные с контейнерными приложениями.
Реализуйте подход к развертыванию инфраструктуры как кода (IaC). Реализуйте развертывание на основе шаблонов с помощью таких инструментов, как Bicep или Terraform. Убедитесь, что все развертывания повторяемы, отслеживаемы и сохраняются в репозитории исходного кода.
Автоматизируйте развертывание инфраструктуры и рабочих нагрузок. Используйте стандартные программные решения для управления, интеграции и автоматизации развертывания ваших рабочих нагрузок.
Настройте конвейеры развертывания для повторного развертывания среды в другом регионе в случае регионального сбоя. Такой подход помогает быстро восстанавливать и повторно развертывать критически важные данные и конфигурации в другом регионе, что расширяет возможности аварийного восстановления и сводит к минимуму время простоя во время региональных сбоев.
Создайте автоматизированные процессы для настройки ваших сред с необходимыми конфигурациями и развертыванием, используя CI/CD конвейеры.
Реализуйте комплексную стратегию мониторинга. Настройте параметры диагностики для сбора журналов, метрик и диагностических данных. Используйте такие инструменты, как Azure Monitor и Application Insights, для отслеживания состояния и производительности приложений, выявления тенденций в производительности и надежности, а также для устранения неполадок.
Выдавайте данные телеметрии для рабочих нагрузок. Разработайте свои рабочие нагрузки так, чтобы они генерировали телеметрические данные, включая статусы доступности и готовности, для облегчения мониторинга и устранения неисправностей.
Отслеживайте показатели производительности. Непрерывно отслеживайте ключевые показатели эффективности, такие как использование ЦП, памяти и сети, чтобы выявлять возможности для оптимизации затрат и повышения эффективности работы.
Внедрить хаос-инжиниринг. Применяйте практики инженерии хаоса, используя такие инструменты, как Azure Chaos Studio, чтобы выявлять потенциальные проблемы с надежностью в вашей среде Container Apps. Проведите эксперименты, чтобы убедиться, что ваши приложения могут выдерживать неожиданные сбои. Проводите нагрузочное тестирование производительности с помощью таких инструментов, как Azure Load Testing, чтобы убедиться, что правила масштабирования работают должным образом и не вызывают сбоев у клиентов.
Реализуйте согласованное добавление тегов к ресурсам во всех контейнерах, приложениях и других ресурсах рабочей нагрузки. Последовательная маркировка способствует эффективному управлению ресурсами, контролю затрат и автоматизации.
Обеспечьте управление рабочей нагрузкой. Azure Policy помогает обеспечивать постоянное соблюдение организационных стандартов, автоматизирует применение политик и предоставляет централизованную видимость и контроль над ресурсами вашей нагрузки.
Рекомендации
Рекомендация | Преимущества |
---|---|
Сохраните конфигурации вашей среды Container Apps в виде IaC, и настройте конвейеры развертывания для повторного развертывания среды в другом регионе в случае регионального сбоя. | Убедитесь, что вы можете быстро восстановить и повторно развернуть критические данные и конфигурации в другом регионе, что улучшает возможности восстановления после катастроф и минимизирует простои в случае региональных сбоев. |
Используйте ревизии, чтобы реализовать развертывания по методу blue-green или canary. Требуется, чтобы вы тегировали и версиями контейнерные образы правильно. Вы можете использовать метки на ревизиях для облегчения обмена, например, для проведения тестирования на принятие пользователем или ограниченных предварительных просмотров. |
Сведите к минимуму время простоя и уменьшите риски во время выпуска за счет безопасного развертывания и быстрого отката. |
Настройка Azure Monitor и Application Insights. | Отслеживайте производительность и состояние ваших контейнерных приложений, предоставляя подробные данные о производительности и надёжности приложений. Используйте эти сведения для проактивного обнаружения и решения проблем. |
Эффективность производительности
Эффективность производительности заключается в поддержании пользовательского опыта даже в условиях увеличения нагрузки за счёт управления ресурсами. Стратегия включает масштабирование ресурсов, определение потенциальных узких мест и оптимизацию для достижения пиковой производительности.
Принципы проектирования эффективности производительности предлагают высокоуровневую стратегию для достижения этих целей по емкости с учетом ожидаемого использования.
Контрольный список проектирования
Начните вашу стратегию проектирования, основываясь на контрольном списке обзора проектирования для повышения производительности для определения базового уровня, исходя из ключевых показателей эффективности для контейнерных приложений.
Разработайте подробный план емкости, чтобы убедиться, что ваши контейнерные приложения имеют достаточные ресурсы для обработки переменных нагрузок, избегая при этом избыточного выделения ресурсов. Планирование емкости помогает оптимизировать затраты и производительность.
Регулярно обновляйте свой план, чтобы документировать корректное распределение ресурсов, настройки автомасштабирования и стратегии переключения на резерв для ваших контейнерных приложений. Этот подход обеспечивает возможность быстро восстановить и развернуть критичные данные и конфигурации в другом регионе, что улучшает возможности по восстановлению после аварий и минимизирует время простоя в случае региональных сбоев.
Включите автомасштабирование. Настройте политики автоматического масштабирования, чтобы автоматически регулировать количество экземпляров контейнеров в зависимости от текущего спроса. Это обеспечивает оптимальную производительность в периоды пиковых и непиковых нагрузок.
Оптимизация выделения ресурсов. Постоянно контролируйте и корректируйте распределение CPU и памяти на основе показателей производительности, чтобы обеспечить эффективное использование ресурсов и предотвратить чрезмерное выделение.
Проводите нагрузочное тестирование. Проводите регулярное нагрузочное тестирование, чтобы оценить производительность и масштабируемость ваших контейнерных приложений при различных условиях. Тестирование помогает гарантировать, что приложения в контейнерах могут справляться с ожидаемыми уровнями трафика.
Отдельные рабочие нагрузки. Размещайте критические и чувствительные рабочие нагрузки в отдельных средах Container Apps, чтобы избежать проблем с шумными соседями. Распределите рабочую нагрузку по нескольким средам, чтобы гарантировать, что критически важные приложения имеют выделенные ресурсы. Этот метод также гарантирует, что требования к производительности менее критически важных приложений не влияют на критически важные приложения.
Рекомендации
Рекомендация | Преимущества |
---|---|
Настройте политики автомасштабирования, чтобы автоматически регулировать количество экземпляров контейнера в ответ на требования к ресурсам. | Помогите поддерживать производительность приложения и экономическую эффективность. Убедитесь, что ресурсы доступны, когда это необходимо, и сохраняются, когда они не нужны. Используйте Azure Load Testing для проведения нагрузочных тестов и при необходимости корректируйте политики авто масштабирования. |
Используйте выделенный уровень профилей рабочей нагрузки для приложений, которым требуется предсказуемая производительность и гарантированное распределение ресурсов. | Предоставьте выделенные ресурсы для критически важных приложений, что обеспечивает стабильную производительность и снижает риск конфликтов ресурсов. |
Используйте пользовательские метрики масштабирования, такие как метрики на основе данных, специфичных для приложения, для принятия решений об автоматическом масштабировании. | Убедитесь, что масштабирование осуществляется на основе актуальных требований рабочей нагрузки, что повышает эффективность и отзывчивость ваших контейнерных приложений. |
Политики Azure
Azure предоставляет обширный набор встроенных политик, связанных с контейнерами приложений и их зависимостями. Некоторые из предыдущих рекомендаций можно проверять с помощью политики Azure. Например, можно проверить, можно ли:
Необходимо включить параметры диагностики: Включите ведение журнала по группам категорий для сред контейнерных приложений (
microsoft.app/managedenvironments
), чтобы отправлять информацию в хранилище. Этот параметр гарантирует, что хранилище будет согласованно собирать журналы и метрики для мониторинга, устранения неполадок и обеспечения соответствия.Аутентификация для приложений в контейнерах должна быть включена: Включите аутентификацию, чтобы предотвратить анонимные HTTP-запросы, и аутентифицируйте запросы с помощью токенов до того, как они попадут в среду приложений в контейнерах.
В средах контейнеров приложений следует использовать внедрение в сеть: Настройте среды контейнеров приложений с внедрением виртуальной сети, чтобы изолировать их от общедоступного Интернета, обеспечить сетевую интеграцию с ресурсами в локальной среде или другими виртуальными сетями Azure и обеспечить детальный контроль над сетевым трафиком.
Доступ к публичной сети должен быть отключен: Отключите доступ к публичной сети, чтобы улучшить безопасность, предоставляя доступ к среде контейнерных приложений через внутренний балансировщик нагрузки. Этот подход блокирует доступ к интернету для всех контейнерных приложений в рамках среды.
Доступ к внешней сети должен быть отключен: Применяйте внутренний входящий поток, чтобы обеспечить ограничение входящей связи для контейнерных приложений только на вызывающие источники внутри среды приложений контейнеров.
Необходимо использовать HTTPS: Убедитесь, что приложения в контейнерах доступны только через HTTPS, чтобы защитить данные в процессе передачи от атак на сетевом уровне.
Должны быть включены управляемые идентификации: Требовать управляемые идентификации для сред приложений контейнера, чтобы безопасно аутентифицироваться в любом ресурсе, который поддерживает аутентификацию с использованием Microsoft Entra ID.
Для всестороннего управления ознакомьтесь с встроенными определениями Azure Policy для контейнерных приложений и другими политиками, которые могут повлиять на безопасность сетей.
Рекомендации Помощника по Azure
Помощник по Azure — это персонализированный облачный консультант, который поможет вам следовать рекомендациям по оптимизации развертываний Azure.
Для получения дополнительной информации см. Azure Advisor.