我正在为一个具有许多子功能的大型应用程序设计API,我想知道在云运行上部署它并与新的API网关一起使用它的最佳实践是什么。
例如,假设我有多个具有多个功能的模块,我将以一个书店应用程序为例:
管理-创建用户
管理-删除用户
获取用户详细信息
书籍-创造书籍
书籍-获取书籍
书籍-删除书籍
用户-添加到购物车
用户-从购物车中删除
用户-新投诉
用户-签出
在这种情况下,最佳做法是将每个函数部署为自己的独立云运行部署,还是应该部署3个单独的云运行部署,例如Admin、Books和User,每个都具有各自的功能。或者,我应该把所有这些都部署在一个大部署中,在我的烧瓶应用程序中指定端点吗?
这些方法的好处和缺点是什么?
发布于 2020-11-27 22:35:28
您的问题是基于意见的,所以堆栈溢出不是考虑这个问题的合适地方。(我亲自投票结束,理由:“以意见为基础”)
类似地,这不是云运行(甚至GCP)问题,您的问题可以概括为“将API端点作为单独的服务运行有什么好处”。
围绕这一问题的讨论可能有几十个论点,首先想到的一些论点是:
如果您需要通过部署一个应用程序(例如,如果不同的端点有不同的团队或不同的部署启动,或者用不同的语言编写的
F 29
发布于 2020-11-27 08:08:27
在这个想法中,您有3个服务:管理、图书和用户。不要在每个端点创建函数。
现在,你的问题取决于许多事情,我认为你的问题将结束。但是,我可以简单地建议您搜索monolith和microservices之间的区别。
Microservices独立扩展并允许一个更好的发布周期(每个团队各自独立工作,并独立交付)。然而,这种架构意味着服务到服务通信(并且监视-> Istio是流行的!)、延迟、集成测试复杂性、.
如果好处不超过问题,则更倾向于采用monolith体系结构(即仅为3项服务运行一个云服务)。特别是如果是同一个团队开发了所有的服务,如果您不需要独立地进行扩展的话。
https://stackoverflow.com/questions/65031072
复制相似问题