Облако Azure spring V/s AKS для микрослужб весенней загрузки
У нас есть несколько микросервисов весенней загрузки, развернутых на локальных серверах, работающих на встроенном tomcat. Они не используют сервер конфигурации. Также используется балансировка нагрузки на стороне сервера; так что отдельного сервера обнаружения служб тоже нет. В настоящее время эти приложения не контейнеризированы.
Нам нужно переместить эти весенние загрузочные приложения в лазурное облако. Я вижу два варианта -
- Контейнеризируйте эти приложения и разверните их в службе Azure Kubernates.
- Разверните эти приложения в 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, но потребуют дополнительной настройки и обслуживания.