GitLab CI/CD详解
Continuous Integration(CI)持续集成
Continuous Delivery (CD)持续交付
Continuous Deployment (CD)持续部署
Gitlab CI/CD内置于GitLab,是Gitlab一个简洁好用的的持续集成/持续交付/持续部署的框架
持续集成 (CI)可以将您的团队提供的代码集成到共享存储库中。开发人员在“合并(拉)”请求中共享新代码。在合并存储库中的更改之前,该请求触发了构建,测试和验证新代码的管道。
持续交付 (CD) 的实践 可通过结构化的部署管道确保将经过CI验证的代码交付给您的应用程序。
CI和CD 一起 可以加快团队为客户和利益相关者交付成果的速度。CI可帮助您在开发周期的早期发现并减少错误,并且CD可以将经过验证的代码更快地移至您的应用程序中。
CI和CD必须无缝协作,以使您的团队快速有效地进行构建,并且对于确保完全优化的开发实践至关重要。
什么是CI?
持续集成(Continuous integration),简称CI,是一种软件开发实践。开发人员提交代码后,系统自动进行构建、(单元)测试,通过自动化测试保障所有的提交在合并主线之后不会出现质量问题,对可能出现的一些问题进行预警。
continuous-integration带来的效益
- 通过自动化测试可以拿到测试结果,避免将一些问题提交到交付生产中
- 发布编译将会更加容易,因为合并之初已经将所有问题都规避了
- 减少工作问题切换,研发可以很快获得构建失败的消息,在开始下一个任务之前就可以很快解决
- 测试成本大幅降低,你的CI服务器可以在几秒钟之内运行上百条测试
- 团队花费在测试上面的时间会大幅缩短,将会更加侧重于质量方面的提升上面
什么是CD?
持续交付(Continuous Delivery),简称CD:是一种软件工程的手法。持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(production-like environments)中,也就是我们通常说的预发布环境。交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。持续交付并不是指软件每一个改动都要尽快部署到产品环境中,它指的是任何的代码修改都可以在任何时候实施部署。
continuous-delivery带来的效益
- 没有了繁琐的部署工作,开发团队不再需要花费几天的时间去准备一个发布
- 你可以更快的进行交付,这样就加快了与需求方之间的反馈环
- 轻松应对小变更,加速迭代
持续部署(Continuous Deployment),也是简称CD:指当交付的代码通过评审之后,自动部署到生产环境中。持续部署是持续交付的最高阶段。开发人员可以专注于构建软件,他们看到他们的修改在他们完成工作后几分钟就上线了。基本上,当开发人员在主分支中合并一个提交时,这个分支将被构建、测试,如果一切顺利,则部署到生产环境中。
continuous-deployment带来的效益
- 发布频率更快,因为不需要停下来等待发布,每一处提交都会自动触发发布流
- 在小批量发布的时候,风险降低了,发现问题也可以很轻松的修复
- 客户每天都可以看到我们的持续改进和提升,而不是每个月或者每季度,或者每年
持续交付与持续部署的关系
持续部署意味着所有的变更都会被自动部署到生产环境中。持续交付意味着所有的变更都可以被部署到生产环境中,但是出于业务考虑,可以选择不部署。如果要实施持续部署,必须先实施持续交付。
持续交付表示的是一种能力;而持续部署则是一种方式。
GitLab CI/CD:https://gitlab.houselai.com/help/ci/quick_start/README
安装 gitlab-runner:https://docs.gitlab.com/runner/install/
配置 runner:https://gitlab.houselai.com/help/ci/runners/README.md#registering-a-specific-runner
注册 runner:https://docs.gitlab.com/runner/register/