Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Azure предоставляет ряд служб размещения контейнеров, предназначенных для удовлетворения различных рабочих нагрузок, архитектур и бизнес-требований. Это руководство по выбору службы контейнеров поможет группе рабочей нагрузки понять, какую службу контейнеров Azure лучше всего подходит для сценариев и требований к рабочей нагрузке.
Заметка
В этом руководстве рабочая нагрузка относится к коллекции ресурсов приложений, которые поддерживают бизнес-цель или реализацию бизнес-процесса. Рабочая нагрузка использует несколько служб, таких как API и хранилища данных, которые работают вместе для обеспечения конкретных комплексных функций.
Обзор
В этом руководстве приведена статья с введением и другая статья о рекомендациях, которые используются для всех типов рабочих нагрузок.
Заметка
Если вы не привержены контейнеризации, выберите другой вариант вычислений для размещения рабочей нагрузки.
В этой вводной статье описаны службы контейнеров Azure, описанные в этом руководстве, и сравниваются их модели служб на основе настраиваемых и предопределенных решений, таких как управляемые клиентом и управляемые корпорацией Майкрософт подходы. После того как вы определите кандидатов на основе предпочтений модели службы, следующим шагом будет оценка вариантов в соответствии с требованиями вашей рабочей нагрузки, просмотрев статью о общих рекомендациях по сети, безопасности, операциям и надежности.
Это руководство поможет оценить компромиссы на основе технических требований, размеров и сложности рабочей нагрузки. Он также рассматривает опыт вашей команды, чтобы обеспечить информированное принятие решений.
Службы контейнеров Azure в области действия этого руководства
В этом руководстве рассматривается подмножество служб контейнеров, предоставляемых Azure. Это подмножество предоставляет зрелый набор функций для веб-приложений и API, сети, наблюдаемости, средств разработчика и операций. Сравниваются следующие службы контейнеров:
Azure Container Apps — это полностью управляемая платформа, которая позволяет запускать контейнерные приложения без забот об оркестрации и инфраструктуре. Для получения дополнительной информации, см. документацию по приложениям-контейнерам.
служба Azure Kubernetes (AKS) — это управляемая служба Kubernetes для запуска контейнерных приложений. С помощью AKS вы можете воспользоваться преимуществами управляемых надстроек и расширений для дополнительных возможностей, сохраняя самый широкий уровень настраиваемости. Дополнительные сведения см. в документации по AKS .
логотип службы приложений
Веб-приложение для контейнеров — это функция службы приложений Azure. Служба приложений — это полностью управляемая служба для размещения веб-приложений на основе HTTP, которые имеют встроенное обслуживание инфраструктуры, исправление безопасности, масштабирование и средства диагностики. Дополнительные сведения см. в документации по службе приложений .
Полный список служб контейнеров Azure см. в разделе "Контейнеры" в Azure.
Рекомендации по модели службы
Модель службы помогает понять, сколько гибкости и управления каждой службой контейнеров Azure предоставляется. Сложные службы обеспечивают больше контроля, а более простые службы упрощают управление, но ограничивают настройку.
Дополнительные сведения о терминологии и концепциях модели служб, включая инфраструктуру как службу (IaaS) и платформу как службу (PaaS), см. в разделе "Общая ответственность" в облаке.
Сравнение моделей служб решений контейнеров Azure
Служба Azure Kubernetes (AKS)
AKS — это смесь IaaS и PaaS, которая фокусируется больше на контроле, чем простота. В нем используется Kubernetes, которая является стандартной системой для оркестрации контейнеров. AKS упрощает управление базовой базовой инфраструктурой. Однако эта платформа на основе виртуальной машины доступна для ваших приложений и требует соответствующих мер безопасности и процессов, таких как обновление, для обеспечения безопасности и непрерывности бизнеса. Инфраструктура вычислений поддерживается дополнительными ресурсами Azure, размещенными непосредственно в подписке, такими как подсистемы балансировки нагрузки Azure, реестры контейнеров или шлюзы приложений.
AKS предоставляет доступ к серверу API Kubernetes, который позволяет настраивать оркестрацию контейнеров и развертывать вспомогательные приложения из Cloud Native Computing Foundation. В результате команды по управлению нагрузкой, которые не знакомы с Kubernetes, сталкиваются со значительной кривой обучения. Если вы не знакомы с контейнерными решениями, необходимо рассмотреть эту кривую обучения. Следующие решения PaaS обеспечивают более низкий барьер для входа. Вы можете перейти к Kubernetes, когда требования требуют его.
AKS Автоматическая
AkS Automatic упрощает внедрение Kubernetes путем автоматизации сложных задач управления кластерами. Эта автоматизация снижает потребность в расширенном опыте Kubernetes. Он обеспечивает более упрощенный интерфейс PaaS, поддерживая гибкость и расширяемость Kubernetes. Azure управляет настройкой кластера, подготовкой узлов, масштабированием, обновлениями безопасности и по умолчанию применяет конфигурации по передовым практикам. Эта автоматизация снижает эксплуатационные усилия, но ограничивает доступные параметры топологии.
Заметка
Это руководство различает AKS Standard и AKS Automatic там, где это применимо. В противном случае можно предположить, что описанные функции согласованы в обоих предложениях.
Приложения в контейнерах
Контейнерные приложения — это уровень абстракции на вершине Kubernetes, который позволяет приложениям запускать и масштабироваться без прямого управления базовой инфраструктурой. Контейнерные приложения предоставляют бессерверные и выделенные параметры вычислений. Эти параметры обеспечивают полный контроль над типом и объемом вычислительных ресурсов, доступных для приложений. Контейнерные приложения абстрагируют API оркестрации контейнеров, предоставляя встроенный доступ к ключевым функциям, таким как входящий трафик уровня 7, разделение трафика, тестирование A/B и управление жизненным циклом приложений.
Веб-приложение для контейнеров
Веб-приложение для контейнеров — это предложение PaaS, которое ставит простоту выше контроля по сравнению с приложениями-контейнерами. Он абстрагирует оркестрацию контейнеров, поддерживая масштабирование, управление жизненным циклом приложений, разделение трафика, интеграцию сети и наблюдаемость.
Рекомендации по модели размещения
Ресурсы Azure, такие как кластеры AKS, можно использовать для размещения нескольких рабочих нагрузок. Этот подход поможет упростить операции, что снижает общую стоимость. Если выбрать этот параметр, рассмотрите следующие возможности:
AKS обычно используется для размещения нескольких рабочих нагрузок или разрозненных компонентов рабочей нагрузки. Эти рабочие нагрузки и компоненты можно изолировать с помощью собственных функциональных возможностей Kubernetes, таких как пространства имен, элементы управления доступом и сетевые элементы управления, чтобы соответствовать требованиям безопасности.
Вы также можете использовать AKS в сценариях с одной рабочей нагрузкой, если требуется дополнительная функциональность, которую предоставляет API Kubernetes, и ваша команда рабочей нагрузки имеет достаточный опыт работы с кластером Kubernetes. Команды с меньшим опытом использования Kubernetes по-прежнему могут эффективно управлять собственными кластерами с помощью дополнений, которые управляются Azure, и таких функций, как автоматическое обновление кластера, чтобы сократить операционные усилия.
Контейнерные приложения следует использовать для размещения одной рабочей нагрузки с общей границей безопасности. Контейнерные приложения имеют единую логическую границу верхнего уровня, называемую средой "Приложения контейнеров", которая также выступает в качестве расширенной границы безопасности. Нет механизмов более детального контроля доступа. Например, взаимодействие между средами неограниченно, а все приложения совместно используют одну рабочую область Log Analytics.
Если рабочая нагрузка состоит из нескольких компонентов и имеет различные границы безопасности, разверните несколько сред для контейнерных приложений или вместо этого рассмотрите использование AKS.
веб-приложение для контейнеров — это функция службы приложений. Служба приложений группирует приложения в логическую вычислительную границу, называемую планом службы приложений. Так как вы можете ограничить управление доступом на основе ролей на уровне приложения, может потребоваться разместить несколько рабочих нагрузок в одном плане. Однако рекомендуется размещать одну рабочую нагрузку на каждый план, чтобы избежать проблемы шумного соседа. Все приложения в одном плане службы приложений используют одинаковые выделенные вычислительные ресурсы, память и хранилище.
При рассмотрении изоляции оборудования следует помнить, что планы службы приложений обычно выполняются на инфраструктуре, совместно используемой другими клиентами Azure. Вы можете выбрать выделенные уровни для выделенных виртуальных машин или изолированных уровней для выделенных виртуальных машин в выделенной виртуальной сети.
Как правило, все службы контейнеров Azure могут размещать несколько приложений с несколькими компонентами. Однако контейнерные приложения и веб-приложение для контейнеров лучше всего работают для одного компонента рабочей нагрузки или нескольких тесно связанных компонентов рабочей нагрузки, которые совместно используют аналогичный жизненный цикл, и одна команда владеет и запускает приложение.
Если необходимо разместить разрозненные компоненты приложения или рабочие нагрузки на одном узле, рассмотрите возможность использования AKS.
Компромисс между контролем и простотой использования
AKS обеспечивает наиболее настраиваемую возможность, но для настройки требуется больше рабочих усилий по сравнению с другими службами. Контейнерные приложения и веб-приложение для контейнеров — это службы PaaS, которые имеют аналогичные уровни функций, управляемых Корпорацией Майкрософт. Веб-приложение для контейнеров ориентировано на простоту обслуживания целевой аудитории, которая является существующими клиентами службы приложений, знакомыми с интерфейсом.
Лучшие практики
Службы, которые обеспечивают большую простоту, обычно подходят клиентам, которые сосредоточены на разработке функций вместо управления инфраструктурой. Службы, которые обеспечивают больше контроля, обычно подходят для клиентов, которым нужна настройка и имеют навыки, ресурсы и бизнес-обоснование для управления собственной инфраструктурой.
Общие рекомендации для всех рабочих нагрузок
Команда рабочей нагрузки может предпочесть определенную модель службы, но эта модель может не соответствовать общим требованиям организации. Например, разработчикам может потребоваться меньше рабочих усилий, но группы безопасности могут рассмотреть эти затраты, необходимые для соответствия требованиям. Команды должны сотрудничать, чтобы сделать правильные компромиссы.
Общие рекомендации охватывают широкий спектр факторов. К вам может применяться только подмножество соображений в зависимости от типа рабочей нагрузки. Ваша роль в организации также влияет на то, какие соображения важны.
В следующей таблице представлен общий обзор рекомендаций, включая сравнение функций службы. Просмотрите рекомендации в каждой категории и сравните их с требованиями рабочей нагрузки.
Категория | Обзор |
---|---|
Рекомендации по работе с сетями | Сеть в службах контейнеров Azure зависит от вашего предпочтения простоты или настройки. AKS обеспечивает широкий контроль над сетевым потоком, но требует более оперативной работы. Контейнерные приложения (Container Apps) имеют сетевые функции, управляемые Azure, и находятся между AKS и Web App for Containers, которые служат клиентам, уже использующим App Service. Решения по проектированию сети имеют долгосрочные последствия, так как часто требуется повторное развертывание рабочих нагрузок. Некоторые факторы, такие как планирование IP-адресов, балансировка нагрузки, обнаружение служб и частная сеть, зависят от этих служб. Необходимо тщательно проверить, как каждая служба соответствует определенным требованиям к сети. |
вопросы безопасности | Контейнерные приложения, AKS и веб-приложение для контейнеров интегрируются с ключевыми предложениями безопасности Azure, такими как Azure Key Vault и управляемые удостоверения. AKS предоставляет дополнительные функции, такие как защита от угроз среды выполнения и политики сети. Службы PaaS, такие как контейнерные приложения, могут иметь меньше функций безопасности, но отчасти это связано с тем, что Azure управляет больше базовыми компонентами инфраструктуры. Так как эти компоненты не подвержены клиентам, риск ниже. |
операционные вопросы | AKS обеспечивает большую настройку, но требует больше рабочих данных. Решения PaaS, такие как приложения контейнеров и веб-приложение для контейнеров, позволяют Azure обрабатывать такие задачи, как обновления ОС. Масштабируемость и гибкость SKU оборудования важны. AKS предоставляет гибкие варианты оборудования, но контейнерные приложения и веб-приложение для контейнеров имеют меньше вариантов. Отвечая за масштабируемость приложений в AKS, вы можете применять любое решение, совместимое с Kubernetes. AKS Automatic, Container Apps и Web App for Containers ориентированы на более простые подходы. |
рекомендации по надежности | Веб-приложения для Containers и Container Apps имеют более ограниченные настройки проверок состояния по сравнению с AKS. Однако они проще настроить, так как они используют знакомый API Azure Resource Manager. AKS требует API Kubernetes, а также необходимо управлять масштабируемостью и доступностью пула узлов Kubernetes для правильного расписания экземпляров приложений. Эти требования повышают операционные усилия для AKS. Соглашения об уровне обслуживания (SLA) для контейнерных приложений и контейнерных веб-приложений проще вычислить, чем SLA AKS. Контроллерная плоскость AKS и пулы узлов имеют собственные соглашения об уровне обслуживания, которые необходимо объединить. Все службы обеспечивают резервирование зон в центрах обработки данных, которые ее поддерживают. |
После рассмотрения вышеуказанных соображений вы все еще можете не найти идеального соответствия, и это вполне типично.
Оценка компромиссов
Облачные вычисления являются сложными. Он включает совместную работу во многих командах и должен учитывать ограничения в людях, бюджетах и времени. Эти факторы затрудняют выбор облачной службы и полный компромиссов.
Для любой рабочей нагрузки некоторые требования могут быть более важными, чем другие. Например, команда приложений может предпочесть решение PaaS, например контейнерные приложения, но выбрать AKS, так как для их команды безопасности требуется запретить по умолчанию сетевые элементы управления между совместно используемыми компонентами рабочей нагрузки. Эта функция, доступная только в AKS, использует сетевые политики Kubernetes.
Предыдущие общие рекомендации охватывают наиболее распространенные требования, но не являются исчерпывающими. Перед принятием решения необходимо оценить все требования к набору функций предпочитаемой службы.
Заключение
В этом руководстве рассматриваются наиболее распространенные вопросы при выборе службы контейнеров Azure. Она предназначена для того, чтобы помочь рабочей команде принимать обоснованные решения. Процесс начинается с выбора модели облачной службы, которая включает определение требуемого уровня управления. Больший контроль достигается за счет упрощения. Другими словами, цель состоит в том, чтобы найти правильный баланс между самоуправляемой инфраструктурой и управляемой корпорацией Майкрософт инфраструктурой.
Многие команды рабочей нагрузки выбирают службу контейнеров Azure исключительно на основе того, предпочитают ли они PaaS или IaaS. Другие команды должны изучить дополнительные сведения о том, как функции, относящиеся к службам, относятся к рабочей нагрузке или требованиям организации.
Используйте это руководство, чтобы тщательно оценить варианты и избежать принятия решений, которые трудно отменить. Тем не менее, никакое решение не является окончательным, пока разработчики не пытаются попробовать службу и оценить ее на основе практического опыта, а не теории.
Участники
Корпорация Майкрософт поддерживает эту статью. Следующие авторы написали эту статью.
Основные авторы:
- Андре Dewes | Старший инженер клиента
- Маркос Мартинес | Старший инженер службы
- Джули Нг | Старший инженер
Другие участники:
- Мик Альбертс | Технический писатель
- Мартин Gjoшевски | Старший инженер клиента
- Дон Хай | Главный инженер по работе с клиентами
- Nelly Kiboi | Инженер службы
- Сухонг Лю | Старший инженер службы
- Фейсал Мустафа | Старший инженер клиента
- Уолтер Майерс | Главный менеджер по проектированию клиентов
- Соналика Рой | Старший инженер клиента
- Паоло Сальватори | Главный инженер клиента
- Виктор Сантана | Главный инженер клиента
- Карлос Местр дель Пино | Архитектор облачных решений
Чтобы просмотреть неопубликованные профили LinkedIn, войдите в LinkedIn.