前言
在 jenkins 的根底上,设计 CICD 流程。具体流程如下:
- 拉取代码
- 代码扫描
- 构建镜像并推送到仓库
- 部署到 k8s
- 音讯告诉
一、流程阐明
1.1 环境阐明
两套 k8s 环境,分为开发测试环境(dev)和生产环境(pro),同时,镜像仓库也分为两套。两套环境都能连贯上 gitlab 和 jenkins。
注:dev 和 pro 需在物理上进行隔离。
1.2 流程
需创立两条流水线:
dev 流水线:研发编码实现后,将代码提交到仓库,触发构建流程,先进行代码扫描,再生成镜像并推送到 dev 仓库,主动部署到开发测试环境。
所有功能测试验证通过后。
pro 流水线:运维手动触发流水线,将 dev 仓库的镜像推送到 pro 仓库,部署到线上环境。
注:上线前需思考预公布,比方蓝绿部署,金丝雀部署等,后续再进行欠缺。
二、代码构造
创立一个新工程,以单体 flask 利用为例,须要蕴含以下文件。
├── Dockerfile # 镜像构建文件
├── deploy
│ ├── dev # dev 环境部署文件
│ └── pro # pro 环境部署文件
└── tests