我最近继承了devops职责的前任总监,负责管理从Heroku / AWS到GCP的过渡。我想知道在GCP中组织项目的最佳实践是什么。应该由每个独立的前端项目或中间件项目来组织它们吗?如果是这样,该函数中的数据库位于何处?中间件项目?
您可以看到有多少个核心问题可以导致相邻的问题。.在这里,有没有人有关于如何组织其GCP项目的最佳实践? >必然的问题:您的项目组织如何影响成本或网络互连?
谢谢!
#1 楼
主要是从Google App Engine(GAE)角度讲。我的首选是环境驱动的项目拆分。这可能很有趣:在GAE项目/应用程序级别与服务/模块级别实现CI / CD环境的优势?这样做(如果您有这样的原因,应详细询问):
避免项目间带宽费用可能很困难(如果不是不可能的话)
增加了配置复杂性用于项目之间的互操作(GCP几乎认为它们是完全隔离的/独立的,除了可能具有共享的IAM权限之外)。可能相关:Google App引擎跨项目资源访问
根据所使用的GCP产品,可能会对同一项目内的架构拆分提供足够的支持。至少GAE会恕我直言。访问各种GCP提供的基础设施/服务仍然需要网络(带宽)成本,但是从项目拆分的角度来看,这些成本是无益的/不可避免的。
#2 楼
我们有两个项目:生产和分期。以后运行dev,也要运行qa。并且出于计费目的,我们相应地标记资源。#3 楼
Google推荐的最佳实践是在GCP内创建组织,以便您可以访问文件夹,然后在GCP内对组织的层次结构进行建模::
应该只有一个代表整个组织的组织;否则,配置目录同步非常痛苦。
文件夹应代表业务部门
项目应代表应用程序或组件的实例
每个环境都使用不同的项目,因为每个环境通常是应用或组件
完全限定每个文件夹或项目的名称,因为GCP经常不显示项目的完整路径。考虑上图中有两个名为
mgmt-prod
的应用程序。但是,由于它们分别称为amido-ops-pmo-mgmt-prod
和amido-people-mgmt-prod
,因此很容易从项目名称中分辨出它们的含义。在组织级别读取权限。这些人将可以使用整个庄园。同样,您还可以根据业务需求在文件夹和项目级别授予精细权限。