在 GCP 中实现多区域/多区域云功能故障转移

在 GCP 中实现多区域/多区域云功能故障转移

我正在寻找一种解决方案来减轻今天(7.02.19)发生的云功能区域/区域中断的影响。

我立即想到了负载均衡器后端设置,其中有一个后端配置可以让我热插拔区域或地区。

我的具体用例确实不允许我快速http://us-east1-project-id.cloudfunctions.net/my-function换成http://us-east4-project-id.cloudfunctions.net/my-function-2

我觉得在这种情况下使用 LB 可能不是一个好主意,但如果能有一个地方指向服务然后允许我交换后端(手动或自动)就好了。

我研究过使用 NGINX 来实现这一点的解决方案,但我觉得有一种方法可以做到这一点。

此外,我还阅读了一些关于 GCP 上的端点的信息......不过,完成这项工作并不一定很简单,因为看起来我还需要使用一些 Google App Engine 的功能。

答案1

鉴于这些函数将区域和项目编码到主机名中,我认为 DNS CNAME 在这里没有帮助。您可以运行一个代理,将请求重写到适当的区域和功能。

但是,您要在哪里托管这个与区域中的功能服务一样可靠和可扩展的服务?考虑到在区域中断后仍能生存的目标,理论上您可以在其他数据中心运行它,但这会造成延迟损失。

我的具体用例确实不允许我快速 http://us-east1-project-id.cloudfunctions.net/my-function换成 http://us-east4-project-id.cloudfunctions.net/my-function-2

重新考虑函数 URL 的构造方式。将区域项目和函数设为变量使得切换过程成为可能。我怀疑编写一个更大的应用程序来包装该函数的工作量是否更少。

相关内容