前言

在jenkins的根底上,设计CICD流程。具体流程如下:

  1. 拉取代码
  2. 代码扫描
  3. 构建镜像并推送到仓库
  4. 部署到k8s
  5. 音讯告诉

一、流程阐明

1.1 环境阐明

两套k8s环境,分为开发测试环境(dev)和生产环境(pro),同时,镜像仓库也分为两套。两套环境都能连贯上gitlab和jenkins。
注:dev和pro需在物理上进行隔离。

1.2 流程

需创立两条流水线:
dev流水线:研发编码实现后,将代码提交到仓库,触发构建流程,先进行代码扫描,再生成镜像并推送到dev仓库,主动部署到开发测试环境。
所有功能测试验证通过后。
pro流水线:运维手动触发流水线,将dev仓库的镜像推送到pro仓库,部署到线上环境。
注:上线前需思考预公布,比方蓝绿部署,金丝雀部署等,后续再进行欠缺。

二、代码构造

创立一个新工程,以单体flask利用为例,须要蕴含以下文件。
├── Dockerfile # 镜像构建文件
├── deploy
│   ├── dev # dev环境部署文件
│   └── pro # pro环境部署文件
└── tests