DevOps Practice - Multistage Deployment

一套完整的开发流程,必不可少的有几个不同的环境,用于开发的不同阶段。每个环境有自己专属的使用人群、数据源:

- Development

Dev 环境是有开发人员自己的数据库,为了开发,会准备一些专用数据,不被清零。数据源可以是 Prod 过滤掉敏感数据后的(同步周期不一样)。

- Test

Test 环境用的是测试人员专有数据库,每次跑自动化脚本,会清空数据库,使用 clean_db, fake 等来进行清空,构建测试数据等。

- Stage

Staging 环境,用的是线上数据库副本,每 天/周 同步。用于做上线前的测试准备工作。

理论上,无论开发珠江实业 是测试使用,都不应该直连线上数据库。

- Production

Production 环境,直接线上数据库。

Environments & Domains

每个环境都会有自己的入口,清晰的入口可以减少沟通成本。建议通过域名层级来进行定义区分。

- 产品(一级)域名

一般来说,每个产品都应该有自己的域名,所有的业务都绑定在该域名下。这样域名的形式为: app1.com

但也有情况是多个产品用同一个域名。这时,就要加上一个产品名了: app1.lanvige.com,以下所有的域名都以此为 base。

- 业务(二级)域名

业务上通过二级域来区分,像 api,admin 等。

  • api.lanvige.com
  • admin.lanvige.com
  • editor.lanvige.com

- 环境(三级)域名

不同的环境通过三级域名来区分,Production 环境 不适用。

  • dev.api.lanvige.com
  • test.api.lanvige.com
  • stage.api.lanvige.com
  • api.lanvige.com

开发、测试环境由于只是公司内部使用,完全可以配置在公司内部 DNS 上,限制访问源,增加安全性。当然,通过申请一个新的独立域名,也可以来做这件事,像 lanvige.local 这样,专门用于公司内部。

  • dev.api.lanvige.local

REF::