首页 > 解决方案 > Cloud Run 构建 API 最佳实践

问题描述

我正在为具有许多子功能的大型应用程序设计一个 API,我想知道在 Cloud Run 上部署它并将其与新的 API 网关一起使用的最佳实践是什么。

例如,假设我有多个具有多种功能的模块,我将以书店应用程序为例:

管理员 - 创建用户

管理员 - 删除用户

admin - 获取用户详细信息

书籍 - 创建书籍

书籍 - 获取书籍

书籍 - 删除书籍

用户 - 添加到购物车

用户 - 从购物车中删除

用户 - 提出新的投诉

用户 - 结帐

在这种情况下,最佳实践是将每个功能部署为自己的单独 Cloud Run 部署,还是应该部署 3 个单独的 Cloud Run 部署,例如 Admin、Books 和 User,每个都有各自的功能。或者我应该在我的烧瓶应用程序中使用端点规范将所有这些部署在 1 个大型部署中?

这些方法的优点和缺点是什么?

标签: google-cloud-run

解决方案


在这个想法中,你有 3 个服务:Admin、Book 和 User。不要为每个端点创建一个函数。

现在,您的问题取决于很多事情,我认为您的问题将被关闭。但是,我可以简单地建议您搜索一下单体和微服务之间的区别。

微服务独立扩展并允许更好的发布周期(每个团队各自工作,独立交付)。然而,这种架构意味着服务到服务的通信(和监控 -> Istio 很受欢迎!)、延迟、集成测试复杂性......

如果好处不超过问题,则更喜欢单体架构(即,3 个服务只有一个 Cloud Run 服务)。尤其是如果开发所有服务的是同一个团队,并且您不需要独立扩展。


推荐阅读