用于 spring 启动微服务的 Azure spring 云 V/s AKS

Azure spring cloud V/s AKS for spring boot micro services

我们在嵌入式 tomcat 上的本地服务器 运行 上部署了很少的 spring 启动微服务。他们不使用配置服务器。还使用服务器端负载平衡;所以也没有单独的服务发现服务器。目前这些应用程序未容器化。

我们需要将这些 spring 引导应用程序移动到 Azure 云。我看到两个选项 -

  1. 将这些应用程序容器化并部署在 Azure Kubernates 服务上。
  2. 将这些应用程序部署到 Azure Spring 云。

根据查看 Azure Spring 云文档,它似乎是一种具有托管云和发现服务的 PaaS 服务。此外,我们可能不需要对当前的本地应用程序进行太多更改(容器化)即可部署。但是鉴于我们在当前的本地应用程序中不使用配置服务器和服务发现,使用 Azure Spring 云而不是 AKS 是否是一个不错的选择?

总体而言,从易于部署、自动缩放、总体成本的角度来看,monitoring/logging 的角度来看哪种方法更好?

A​​zure Spring Cloud 和 AKS 都是 运行 您的 Spring 引导应用程序的理想目的地。 Azure Spring Cloud 是一个完全托管的应用程序平台,专门为 Spring 应用程序设计,而 AKS 是适用于所有容器化应用程序的通用 Kubernetes 服务。对于 Spring 启动应用程序,Azure Spring 云提供了比 AKS 更多 in-depth 支持和功能,我将把它分解成你在问题中提出的不同观点。

部署 在 Azure Spring 云中,您可以直接部署您的应用程序而无需容器化。您可以将现有的 CI/CD 管道连接到 Azure Spring 云,甚至可以直接从源代码进行部署。在 AKS 中,您需要先将应用容器化。

自动缩放 因为 Azure Spring 云实际上利用 AKS 作为底层基础设施,并且 built-in 与 Azure 监视器集成,所以您可以在两个平台上自动缩放。但是,Azure Spring Cloud 将为您提供更多应用程序指标(即:“App CPU Usage”)。 AKS 中仅提供容器级指标。

总成本 作为托管 PaaS,Azure Spring Cloud 由于额外的管理价值,将始终比 AKS 更昂贵。比较成本时,不要简单地看标价,考虑以下因素也很重要:

  • 管理 AKS 的人工成本
  • JDK 和 Spring 级补丁和维护升级。请参阅 this article.
  • 中概述的持续责任网格
  • AKS 中的 运行 应用需要资源开销。 (即:入口控制器、节点碎片、用于快速扩展的节点预留……)

监控 Azure Spring 云在 application-level 监控方面提供了更多关键差异。除了 built-in 与 Azure 监视器的集成,Azure Spring Cloud 还提供 out-of-box 与 New Relic、Dynatrace 和 AppDynamics 的集成。所有这些也可以与 AKS 一起使用,但需要额外的设置和维护。