无服务器框架是否支持将相同的 API 部署到多个云提供商(AWS、Azure 和 IBM)并基于传统的负载均衡器方法(即循环或延迟)将请求路由到每个提供商的能力?
Serverless Framework 是否直接支持这个功能?
Serverless 是否与全局负载均衡器(例如 dyn 或 neustar)集成?
无服务器框架是否支持将相同的 API 部署到多个云提供商(AWS、Azure 和 IBM)并基于传统的负载均衡器方法(即循环或延迟)将请求路由到每个提供商的能力?
Serverless Framework 是否直接支持这个功能?
Serverless 是否与全局负载均衡器(例如 dyn 或 neustar)集成?
无服务器框架是否支持将相同的 API 部署到多个云提供商(AWS、Azure 和 IBM)的能力
只需使用 3 个不同的serverless.yml
文件并将每个功能部署 3 次。
并根据传统的负载平衡器方法(即循环或延迟)将请求路由到每个提供商?
无服务器概念基于信任:您相信您的云提供商将能够以适当的可扩展性和可用性处理您的流量。没有多云模式,单一的云提供商必须能够满足您的需求。为此,他们必须在内部实现适当的负载平衡模式。
如果您不信任您的云提供商,那么您就不是在以无服务器方式思考。无服务器意味着您不必担心支持您的应用程序的基础设施。
当您指定一个serverless.yml
文件时,您必须说明哪个提供商(AWS、Azure、IBM)将创建这些资源。多云意味着serverless.yml
每个云需要一个文件,但源代码(功能)可以相同。当您将相同的功能部署到 3 个不同的提供者时,您将收到 3 个不同的端点来访问它们。
现在,哪台机器将执行负载平衡?如果您不相信单个云可以提供足够的可用性,您将如何定义谁将提供负载平衡功能?
我看到的唯一解决方案是在前端代码中实现这种负载平衡。您的应用程序将知道 3 个不同的端点并随机化请求。如果一个请求返回错误,端点将被标记为不健康。您还可以确定每个端点的延迟并选择首选提供商。所有这些都在客户端代码中。
但是,不要走这条路。只为生产代码选择一个提供商。SLA(服务水平协议)通常提供高可用性。如果这还不够,您仍然应该只使用一个提供商,并且手头有一些脚本可以轻松迁移到另一个云,以防首选提供商大规模中断。