Devops 规范
介绍
Devops 通常包含开发、部署、运维及服务查看等流程,我们会对开发环境及核心开发流程进行一个宏观介绍,具体以各自项目实践为准。
开发环境
我们的开发环境包含如下组件:
- YApi,文档管理中心
- GitLab,代码托管平台
- GitLab CI Runner,GitLab CI 运行环境
- SonarQube,代码质量检测平台
- 镜像仓库 harbor,代码镜像仓库
- Kube Operator,Kubernetes 搭建及组件管理平台
- Kuboard,集群管理工具
- 项目 K8S 集群,服务部署环境
- ArgoCD,项目服务管理平台
- Meter Sphere,项目测试管理平台
- ...
其交互关系如上图所示,我们会结合下文开发部署流程对其进行讲解。
开发部署流程
通常,不论是公司内部项目还是外部招标项目,我们都会在公司本地搭建一套开发部署运维环境供开发测试人员调试使用,我们在开发环境通用最佳实践流程如下:
- 架构师、项目负责人与项目核心开发人员共同制定项目各个组件接口,在 YApi 平台上编写在线接口文档,填充 mock 数据并生成 mock 服务调用链接
- 开发人员根据接口文档进行开发,推送代码到 GitLab 上,并向 develop 分支提交 Merge Requests 请求
- GitLab 自动分配 CI 任务,执行代码静态检查及缺陷检查
- 代码检查 CI 通过后,项目负责人对代码进行 Review 并反馈,修改无误后合并代码
- 开发/运维人员在 devops 仓库编写各子项目部署相关服务配置,并在 ArgoCD 中创建项目
- 项目 develop 分支代码合并通过后,会编译镜像、发布至 harbor 镜像仓库,并自动推送更新信息至项目 devops 代码仓库,更新该项目提交信息
- ArgoCD 定时检测 devops 仓库更新,并自动部署服务到集群环境
- 开发测试人员访问线上环境进行调试
我们的开发部署流程最佳实践牵涉多个系统之间交互,各个项目可根据具体项目自行搭配使用,具体流程以实际项目要求为准。