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