【头条】请问什么是 CICD

2374ee25ead4ccde04324673384658c5.jpeg

乌翅真鲨,马尔代夫
(© Filippo Bacci/Getty Images)

本文收录于互联网大厂每日一题: Daily Question[1],内含大厂内推机会、面经大全及若干面试题,每天学习五分钟,一年进入大厂中。可在右下角打开原文查看

  • 大厂面经大全: https://q.shanyue.tech/interview

  • 面试准备路线: https://q.shanyue.tech/roadmap

  • CI,Continuous Integration,持续集成。

  • CD,Continuous Deployment,持续部署。

CICD 一般合称,无需特意区分二者区别。从开发、测试到上线的过程中,借助于 CICD 进行一些自动化处理,保障项目质量。

CICD 与 git 集成在一起,可理解为服务器端的 git hooks: 当代码 push 到远程仓库后,借助 WebHooks 对当前代码在构建服务器(即 CI 服务器,也称作 Runner)中进行自动构建、测试及部署等。

它有若干好处:

  1. 功能分支提交后,通过 CICD 进行自动化测试、语法检查等,「如未通过 CICD,则无法 CodeReview,更无法合并到生产环境分支进行上线」

  2. 功能分支提交后,通过 CICD 检查 npm 库的风险、检查构建镜像容器的风险等

  3. 功能分支提交后,通过 CICD 对当前分支代码构建独立镜像并生成独立的分支环境地址进行测试,「如对每一个功能分支生成一个可供测试的地址,一般是 <branch>.dev.shanyue.tech 此种地址」

  4. 功能分支测试通过后,合并到主分支,自动构建镜像并部署到生成环境 (一般生成环境需要手动触发、自动部署)

由于近些年来 CICD 的全面介入,项目开发的工作流就是 CICD 的工作流,请看一个比较完善的 CICD Workflow。

CICD 工具

CICD 集成于 CICD 工具及代码托管服务。CICD 有时也可理解为进行 CICD 的构建服务器,而提供 CICD 的服务,如以下产品,将会提供构建服务与 github/gitlab 集成在一起。

  • jenkins

  • Travis CI

如果你们公司没有 CICD 基础设置,那么你可以尝试 github 免费的 CICD 服务: github actions[2]

公司一般以 gitlab CI 作为 CICD 工具,此时需要自建 gitlab Runner 作为构建服务器。

一段简单的 CICD 配置

每一家 CICD 产品,都有各自的配置方式,但是总体上用法差不多。以下 CI 脚本指当在 master 有代码变更时,自动部署上线。

deploy:
  stage: deploy
  only:
    - master
  script:
    - docker build -t harbor.shanyue.tech/fe/devtools-app
    - docker push harbor.shanyue.tech/fe/devtools-app
    - helm upgrade -install devtools-app-chart .

更多面试

Reference

[1]

Daily Question: https://q.shanyue.tech

[2]

github actions: https://github.com/features/actions

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值