分享一个CI/CD的自动部署想法
Posted 跨界架构师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了分享一个CI/CD的自动部署想法相关的知识,希望对你有一定的参考价值。
- sql1 研发将配置、DB变更文件与代码一起提交到Gitlab 仓库。 如果检测到 Gitlab 的 commit 信息中带 Jira ID,那么会触发构建,并且将该镜像与 commit 中的 Jira ID 关联。 然后根据 Jira ID 去找 infra_changes 目录中与该 Jira ID 相关的变更文件,将它们与镜像放到一起。 在自动部署之前,尽可能提前检测出部署后会导致该程序的上下游甚至整个系统不可用的风险。比如,通过静态代码检测。 部署之后,尽可能广的识别上下游以及整个系统的异常,及时回滚。比如,通过冒烟测试。 配置和数据库变更文件的标准制定 能够识别配置和数据库变更文件的新增 能够将构建的镜像、变更文件打包到一起通知到运维与 DBA(条件允许的话,直接在系统层面打通) 在部署 Alpha 环境前的可用性检测。 每个程序提供健康检查接口,用于检测部署结果。 自动化的冒烟测试。用于检测 Alpha 环境的可用性,并触发回滚。 推荐阅读: goroutine配上panic会怎样? 2021,我的巨变之年 原创不易,如果你觉得这篇文章还不错,就「点赞」或者「在看」一下吧,鼓励我的创作 :) 也可以分享我的公众号名片给有需要的朋友们。 如果你有关于软件架构、分布式系统、产品、运营的困惑 可以试试点击「阅读原文」 - sql2
- sql1
- sql2
- XXXProject-2564
Gitlab CI/CD自动部署方案探索
如上图所示,当我们提交代码到 GitLab 仓库后,满足指定条件后就会触发 Pipeline 进行自动化构建、测试、发布等。
Gitlab
gitlab是做代码的版本管理,gitlab本身就用CI/CD的功能,原定是使用gitlab+Jenkins+Docker的流行部署框架的,但是gitlab-runner配置简单,很容易与gitlab集成。当新建一个项目的时候,不需要配置webhook回调地址,也不需要同时在jenkins新建这个项目的编译配置,只需在工程中配置gitlab-ci.yml文件,就可以让这个工程可以进行编译。
在gitlab你的project下面,需要新建一个.gitlab-ci.yml文件.
.gitlab-ci.yml 文件
.gitlab-ci.yml 文件是一个申明式配置文件,放在项目的根目录下,用 stages 定义 Gi
以上是关于分享一个CI/CD的自动部署想法的主要内容,如果未能解决你的问题,请参考以下文章
CI/CD技术专题「Jenkins实战系列」如何通过Gitlab对接Jenkins构建提交自动触发部署构建体系指南(上部)