Spring Cloud 或 Netflix OSS 和 AWS 或 Azure 云如何组合在一起以提供基于微服务的解决方案

abh*_*h c 2 saas amazon-web-services paas microservices spring-cloud-netflix

我对 Spring Cloud 或 Netflix OSS 和 AWS 或 Azure 云如何组合在一起以提供基于微服务的解决方案有一些疑问。如果我们想使用容器化(Docker)和容器编排(Docker Swamp 或 Kubernetes)在 AWS 中部署基于 Spring Cloud 的微服务解决方案,技术架构会是什么样子。

下面列出的组件如何在 AWS 或 Azure 中组合在一起。- Netflix Ribbon(负载平衡) - Netflix Zuul(路由) - Netflix Hystrix(断路器) - Netflix Eureka(服务发现) - Spring Cloud 安全(身份验证和授权)

例如,AWS 拥有自己的内容交付网络 (Amazon CloudFront),AWS 拥有自己的 API 网关,负责负载平衡、路由以及身份验证和授权。

现在,如果我使用 Netflix OSS 和 Spring Cloud 创建微服务,那么如何使用容器化将它放在 AWS 中?

Osw*_*ann 6

Netflix 堆栈旨在自给自足运行,无需来自云提供商的任何托管服务。所以你可以选择:

  1. 在 AWS/Azure 上租用一堆虚拟机并自己部署完整的 Netflix 软件堆栈。(仅使用 AWS 作为基础设施提供商,IAAS)
  2. 仅使用 AWS/Azure 托管服务,不使用 netflix 组件(例如 AWS 负载均衡器而不是 Ribbon、AWS API 网关而不是 Zuul、AWS Kubernetes 用于容器托管/服务发现、AWS Cognito 而不是 Spring Security 等)。这意味着除了基础设施(IAAS 加 PAAS、SAAS)之外,您还可以将 AWS 用作平台和软件服务提供商。
  3. 或者这两种情况的任意组合。例如,使用 AWS 进行负载平衡,但在您的应用程序前面的您自己的 EC2 实例上部署一些 Zuul 网关。

一般准则是 - 由您自己管理的架构中的任何平台或软件元素的基准成本会更便宜,但会增加额外的设计/开发/管理成本。什么最适合您取决于您​​的使用场景、可扩展性预期、资源可用性等。

听起来您可以从了解 IAAS、PAAS、SAAS 的差异中受益。请参阅此链接。

关于你的问题:

现在,如果我使用 Netflix OSS 和 Spring Cloud 创建微服务,那么如何使用容器化将它放在 AWS 中?

一种合理的方法是使用 AWS Kubernetes(或 AWS ECS)作为容器托管基础设施,然后将您仍然需要的 Netflix 和 Spring 组件部署为容器。对于 Kubernetes 和 ECS,您已经内置了负载平衡、服务发现和更多功能(请参阅此链接)。因此,您必须仔细查看每个 Netflix 组件,并确定它是否真的包含您需要且容器平台尚未涵盖的功能。