自动构建以及一键部署流程

本贴最后更新于 2271 天前,其中的信息可能已经物是人非

CI&CD 流程实践

为简化部署流程,以及方便开发人员和测试人员持续交付,设计了自构建到部署启动的流程。

下图为物理架设图
cicd

大致流程

CI 流程:

  1. 开发人员提交代码至 gitlab
  2. gitlab-runner 会监听 gitlab 的 push 事件
  3. gitlab-runner 负责构建项目的目标产物,以及对应的 docker 镜像
  4. 上传产物至 nexus 仓库和 docker 镜像仓库
    c1 时序图

CD 流程

方式 1:

  1. 需要部署时,部署人员基于 Jenkins 平台触发构建任务
  2. Jenkins 服务通知 slave 节点
  3. 下载对应产物,如 user-service-3.1.0-assmbly.zip
  4. 上传产物至对应目标服务器集群
  5. 远程执行服务器启动脚本,解压文件并执行
    cd 方式 1 时序图

方式 2:

  1. 需要部署时,部署人员基于 Jenkins 平台触发构建任务
  2. Jenkins 服务通知 slave 节点
  3. 上传启动脚本
  4. 执行,更新 docker 镜像,如 docker pull xxxxxx/user-service:3.1.0
  5. 启动 docker 容器,docker run -e GLOBAL_ENV=xxx -p 8080:8080 xxxxx/user-service:3.1.0
    cd 方式 2 时序图
  • Jenkins

    Jenkins 是一套开源的持续集成工具。它提供了非常丰富的插件,让构建、部署、自动化集成项目变得简单易用。

    53 引用 • 37 回帖
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...