Облако Azure spring V/s AKS для микрослужб весенней загрузки

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

Нам нужно переместить эти весенние загрузочные приложения в лазурное облако. Я вижу два варианта -

  1. Контейнеризируйте эти приложения и разверните их в службе Azure Kubernates.
  2. Разверните эти приложения в Azure Spring Cloud.

Судя по документации Azure Spring Cloud, это служба PaaS с управляемыми облачными службами и службами обнаружения. Кроме того, нам может не потребоваться вносить большие изменения (контейнеризация) в наши текущие локальные приложения для развертывания. Но учитывая, что мы не используем сервер конфигурации и обнаружение служб в нашем текущем локальном приложении, будет ли хорошим вариантом использовать Azure Spring Cloud вместо AKS?

В целом, с точки зрения простоты развертывания, автоматического масштабирования, общей стоимости, перспектив мониторинга/регистрации, какой подход будет лучшим?

1 ответ

Azure Spring Cloud и AKS — отличные места для запуска приложений Spring Boot. Azure Spring Cloud — это полностью управляемая платформа приложений, специально разработанная для приложений Spring, тогда как AKS — это универсальная служба Kubernetes для всех контейнерных приложений. Для приложений Spring Boot Azure Spring Cloud предлагает более глубокую поддержку и функции, чем AKS, и я собираюсь разбить его на разные точки зрения, которые вы задали в своем вопросе.

Развертывание В Azure Spring Cloud вы можете напрямую развертывать свои приложения без контейнеризации. Вы можете подключить существующий конвейер CI/CD к Azure Spring Cloud или даже напрямую выполнить развертывание из исходного кода. В AKS вам необходимо сначала поместить приложение в контейнер.

Автоматическое масштабирование Поскольку Azure Spring Cloud фактически использует AKS в качестве базовой инфраструктуры и имеет встроенную интеграцию с монитором Azure, вы можете выполнять автоматическое масштабирование на обеих платформах. Однако Azure Spring Cloud предоставит вам больше показателей для ваших приложений (например, «Использование ЦП приложения»). В AKS доступны только метрики на уровне контейнера.

Общая стоимость В качестве управляемой PaaS Azure Spring Cloud всегда будет дороже, чем AKS, из-за дополнительной стоимости управления. При сравнении затрат, а не просто при просмотре цены на стикере, также важно учитывать следующее:

  • Затраты на оплату труда управляемого AKS
  • Исправления и обновления на уровне JDK и Spring. См. текущую сетку ответственности, описанную в этой статье.
  • Накладные расходы на ресурсы, необходимые для запуска приложений в AKS. (например: входной контроллер, фрагментация узла, резервирование узла для быстрого масштабирования…)

МониторингAzure Spring Cloud предлагает больше ключевых отличий, когда речь идет о мониторинге на уровне приложений. Помимо встроенной интеграции с монитором Azure, Azure Spring Cloud также предлагает готовую интеграцию с New Relic, Dynatrace и AppDynamics. Все они также могут работать с AKS, но потребуют дополнительной настройки и обслуживания.

Другие вопросы по тегам