在GAE项目/应用程序级别与服务/模块级别实施CI / CD环境的优势?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在GAE项目/应用程序级别与服务/模块级别实施CI / CD环境的优势?相关的知识,希望对你有一定的参考价值。

Naming Developer Environments中,Google提出了两种为GAE应用程序实现不同CI / CD环境的方法

  • 基于同一项目/应用程序内的不同服务(以前称为模块):

如果您选择仅使用多个服务来创建微服务应用程序,则可以为每个环境创建一个App Engine项目并相应地命名它们,例如web-app-devweb-app-qaweb-app-prod

  • 基于不同的项目/应用程序:

或者,如果您选择使用多个项目创建微服务应用程序,则可以在环境之间实现相同的分离,但是您需要使用更多项目,例如web-app-devweb-app-produser-service-devuser-service-prod。您将需要使用代码模式来确保dev项目仅调用其他dev项目,而prod项目仅调用其他prod项目。

enter image description here

上述文档片段中的措辞似乎表明两种方法大致相同,但两种方法之间至少存在一个显着差异:基于项目/应用程序的方法确保数据隔离,而基于服务/模块的方法不 - 数据存储区和内存缓存由所有服务共享。

Comparison of service isolation and project isolation中记录了从隔离角度看两种方法之间的更详细比较:

下表提供了在微服务体系结构中使用多个服务和多个项目之间的比较:

enter image description here

我的问题是:除了上述差异外,使用基于项目的方法还是基于服务的方法还有其他优点吗?或者任何可能被视为劣势的事情?

答案

基于项目的方法还允许您分离计费问题和IAM角色。

您可以直接使用不同的信用卡收费,或者只是单独设置结算限额(由于开发错误超过了您的结算限额,谁希望生产停止?)。您还将获得单独的结算报告,因此我们可以更轻松地确定您的产品费用。

基于服务的方法可能会最大限度地减少管理工作。例如,如果由于某种原因需要设置VPN或其他网络方面,单个项目意味着您只需要配置一次,而不是每个项目配置一次。

以上是关于在GAE项目/应用程序级别与服务/模块级别实施CI / CD环境的优势?的主要内容,如果未能解决你的问题,请参考以下文章

GAE灵活和Stackriver日志严重级别与python

GAE 中数据级别的唯一约束

项目管理如何建立组织级别的项目管理体系

Lync 项目经验-11-项目总结01-某上市企业的Skype for Business规划与实施

Python:从项目层次结构中同一级别的另一个目录导入模块

GraphQL 在查询级别获取数据导致冗余/无用请求