首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >云运行构造API最佳实践

云运行构造API最佳实践
EN

Stack Overflow用户
提问于 2020-11-27 01:32:10
回答 2查看 156关注 0票数 0

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

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

管理-创建用户

管理-删除用户

获取用户详细信息

书籍-创造书籍

书籍-获取书籍

书籍-删除书籍

用户-添加到购物车

用户-从购物车中删除

用户-新投诉

用户-签出

在这种情况下,最佳做法是将每个函数部署为自己的独立云运行部署,还是应该部署3个单独的云运行部署,例如Admin、Books和User,每个都具有各自的功能。或者,我应该把所有这些都部署在一个大部署中,在我的烧瓶应用程序中指定端点吗?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-27 22:35:28

您的问题是基于意见的,所以堆栈溢出不是考虑这个问题的合适地方。(我亲自投票结束,理由:“以意见为基础”)

类似地,这不是云运行(甚至GCP)问题,您的问题可以概括为“将API端点作为单独的服务运行有什么好处”。

围绕这一问题的讨论可能有几十个论点,首先想到的一些论点是:

如果您需要通过部署一个应用程序(例如,如果不同的端点有不同的团队或不同的部署启动,或者用不同的语言编写的

  • 不好的状态)来分离服务,那么就不应该分开,如果它们依赖于许多本应位于相同的本地内存
  • 中的缓存状态,那么很好地分离如果端点有不同的扩展需求(例如,在2 qps时调用/foo,但/bar是10k qps),这样您就可以独立部署它们,或者考虑重写/重构不同的端点。

F 29

票数 1
EN

Stack Overflow用户

发布于 2020-11-27 08:08:27

在这个想法中,您有3个服务:管理、图书和用户。不要在每个端点创建函数。

现在,你的问题取决于许多事情,我认为你的问题将结束。但是,我可以简单地建议您搜索monolith和microservices之间的区别。

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

如果好处不超过问题,则更倾向于采用monolith体系结构(即仅为3项服务运行一个云服务)。特别是如果是同一个团队开发了所有的服务,如果您不需要独立地进行扩展的话。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65031072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档