在命名开发人员环境中, Google提出了两种为GAE应用程序实现不同CI/CD环境的方法
如果选择仅使用多种服务来创建应用微服务,您可以为每个环境的一个App Engine的项目,并将其命名相应的,如
web-app-dev
,web-app-qa
和web-app-prod
.
另外,如果您选择创建通过使用多个项目您的微服务的应用程序,可以实现环境之间相同的分离,但你需要使用更多的项目,如
web-app-dev
,web-app-prod
,user-service-dev
,和user-service-prod
.您将需要使用代码模式来确保dev
项目仅调用其他dev
项目,并且prod
项目仅调用其他prod
项目.
上述文档片段中的措辞似乎表明两种方法大致相同,但两种方法之间至少存在一个显着差异:基于项目/应用程序的方法确保数据隔离,而基于服务/模块的方法不 - 数据存储区和内存缓存由所有服务共享.
在隔离服务隔离和项目隔离的比较中记录了从隔离角度看两种方法之间的更详细比较:
下表提供了在微服务体系结构中使用多个服务和多个项目之间的比较:
我的问题是:除了上述差异外,使用基于项目的方法还是基于服务的方法还有其他优点吗?或者任何可能被视为劣势的事情?