Оркестрация контейнеров для микрослужб
Архитектуры микрослужб обычно упаковывает и развертывает каждый экземпляр микрослужбы в одном контейнере. Многие экземпляры микрослужб могут выполняться в отдельном контейнере. Контейнеры являются упрощенными и короткими, что упрощает их создание и уничтожение, но трудно координировать и взаимодействовать между ними.
В этой статье рассматриваются проблемы запуска архитектуры контейнерных микрослужб в масштабе рабочей среды и способов оркестрации контейнеров. В этой статье представлено несколько вариантов оркестрации контейнеров Azure.
Архитектура контейнерных микрослужб
В этом простом контейнеризованном кластере службы Azure Kubernetes (AKS):
- Один экземпляр Microservice A выполняется в узле 1, другой экземпляр узла 2 и третий экземпляр узла 3.
- Один экземпляр Микрослужбы B выполняется в узле 1, а другой экземпляр в узле 3.
- Контейнерные обратные прокси-серверы работают в узлах 1 и 2 для распределения трафика.
Чтобы управлять кластером, команда DevOps должна выполнять следующие действия.
- Запуск нескольких экземпляров контейнера на каждом узле.
- Балансировка нагрузки трафика между экземплярами.
- Управление взаимодействием между зависимыми экземплярами в отдельных узлах.
- Сохраняйте требуемое состояние кластера AKS.
С помощью оркестрации контейнеров команда DevOps может представлять требуемое состояние кластера в качестве конфигурации. Подсистема оркестрации контейнеров применяет нужную конфигурацию и автоматизирует все задачи управления.
Рассмотрите возможность контейнеризации простого трехуровневого веб-приложения:
- Контейнер размещает интерфейсный компонент.
- Другой контейнер размещает уровень среднего уровня или уровень REST API.
- Уровень среднего уровня взаимодействует с глобально распределенной базой данных.
Выполнение этих контейнеров на одном компьютере разработки может оказаться не слишком сложным. Однако запуск приложения в режиме высокой доступности в большом масштабе в рабочем кластере быстро становится сложной задачей. Оркестрация контейнеров имеет решающее значение для больших и динамических рабочих сред.
Преимущества оркестрации контейнеров
В следующем примере показано, как оркестрация контейнеров может помочь управлять развертыванием кластера, сетью и масштабированием.
Оркестратор контейнера:
Автоматически масштабирует количество экземпляров микрослужб на основе трафика или использования ресурсов. В этом примере оркестратор автоматически добавляет другой экземпляр Microservice A в ответ на увеличение трафика.
Управляет контейнерами для отражения настроенного требуемого состояния. В примере Микрослужба B настроена на два экземпляра. Один экземпляр стал неработоспособным, поэтому оркестратор поддерживает требуемое состояние путем создания другого экземпляра.
Упаковывает контейнеры для каждой микрослужбы в простой уровень служб. Уровень службы:
- Абстрагирует сложности, такие как IP-адрес, порт и количество экземпляров.
- Балансировка нагрузки трафика между экземплярами микрослужб.
- Поддерживает простое взаимодействие между зависимыми экземплярами микрослужб.
Оркестраторы контейнеров также обеспечивают гибкость и управление трафиком для:
- Выпуск новых версий или откат до старых версий микрослужб или наборов микрослужб без простоя.
- Включите параллельное тестирование различных версий микрослужб.
Выбор оркестратора контейнеров Azure
Ниже приведены некоторые варианты реализации оркестрации контейнеров микрослужб в Azure:
Служба Azure Kubernetes (AKS) — это полностью управляемая служба Kubernetes службы оркестрации контейнеров в Azure, которая упрощает развертывание и управление контейнерными приложениями. AKS обеспечивает эластичную подготовку, быстрое комплексное развертывание и расширенное управление удостоверениями и доступом.
Azure Service Fabric — это оркестратор контейнеров для развертывания микрослужб и управления ими в кластере компьютеров. Упрощенная среда выполнения Service Fabric поддерживает создание микрослужб без отслеживания состояния и отслеживания состояния.
Ключевой вариант Service Fabric — это надежная поддержка создания служб с отслеживанием состояния. Вы можете использовать встроенную модель программирования служб с отслеживанием состояния или запустить контейнерные службы с отслеживанием состояния, написанные на любом языке или коде.
экземпляры контейнеров Azure (ACI) — самый быстрый и простой способ запуска контейнера в Azure. При использовании ACI вам не нужно управлять виртуальными машинами или адаптировать службы более высокого уровня.
Для простых сценариев оркестрации можно использовать Docker Compose для определения и запуска многоконтейнерного приложения локально. Затем разверните контейнеры Docker в качестве группы контейнеров ACI в управляемой бессерверной среде Azure. Для полных сценариев оркестрации контейнеров ACI может интегрироваться с AKS для создания виртуальных узлов для оркестрации AKS.
Azure Spring Apps — это полностью управляемая служба для приложений Spring Boot. С помощью Spring Apps вы можете сосредоточиться на создании и запуске приложений без необходимости управлять инфраструктурой. Spring Apps поставляется со встроенным жизненным циклом и управлением оркестрацией, простотой мониторинга и полной интеграцией с Azure.
Azure Red Hat OpenShift (ARO) поддерживает развертывание полностью управляемых кластеров OpenShift в Azure. Для выполнения производственных контейнеров Kubernetes требуется интеграция с платформами и инструментами, такими как реестры образов, управление хранилищами, мониторинг и DevOps. ARO расширяет Kubernetes путем объединения этих компонентов в одну платформу контейнеров в качестве службы (PaaS).
Участников
Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.
Автор субъекта:
- Veerash Ayagari | Главный инженер программного обеспечения
Чтобы просмотреть недоступные профили LinkedIn, войдите в LinkedIn.
Дальнейшие действия
- архитектура микрослужб в службе Azure Kubernetes (AKS)
- архитектур ы микрослужб Azure Kubernetes (AKS)
- CI/CD для приложений AKS с Azure Pipelines
- использование шлюзов API в микрослужбах
- эталонной архитектуре Azure Spring Apps