0

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

我们需要将这些 Spring Boot 应用程序移动到 azure Cloud。我看到两个选择 -

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

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

总体而言,从易于部署、自动扩展、总体成本、监控/日志记录的角度来看,哪个是更好的方法?

4

1 回答 1

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 中,您需要先将应用程序容器化。

Auto Scaling 由于 Azure Spring Cloud 实际上利用 AKS 作为底层基础结构并与 Azure 监视器进行了内置集成,因此您可以在两个平台上进行自动缩放。但是,Azure Spring Cloud 将为您提供有关应用程序的更多指标(即:“应用程序 CPU 使用率”)。AKS 中仅提供容器级别的指标。

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

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

监控 Azure Spring Cloud 在应用程序级监控方面提供了更多关键差异。除了与 Azure 监视器的内置集成外,Azure Spring Cloud 还提供与 New Relic、Dynatrace 和 AppDynamics 的开箱即用集成。所有这些也可以与 AKS 一起使用,但需要额外的设置和维护。

于 2022-01-25T08:56:20.523 回答