没有合适的资源?快使用搜索试试~ 我知道了~
首页如何从零开始搭建CI/CD流水线
如何从零开始搭建CI/CD流水线
5星 · 超过95%的资源 35 下载量 183 浏览量
更新于2023-03-03
评论 3
收藏 1.32MB PDF 举报
在当前DevOps的趋势下,持续集成(CI)和持续部署(CD)具有支柱性地位,那么能够成功搭建CI/CD流水线就至关重要了。我们可能会在各种角色的岗位描述中发现关于「持续集成」和「持续部署」技能的要求,比如:数据工程师、云解决方案架构师、数据科学家等。为了在开发团队和运营团队之间搭建桥梁,CI/CD流水线实现了应用程序的自动构建、自动测试和自动部署。在介绍CI/CD流水线的工作原理之前,我们先了解一下什么是DevOps。DevOps是一种软件开发方法。它将持续开发、持续测试、持续集成、持续部署和持续监控贯穿于软件开发的整个生命周期。当前几乎所有的顶尖公司均采用了该方法,用以提高软件开发质量,并
资源详情
资源评论
资源推荐
如何从零开始搭建如何从零开始搭建CI/CD流水线流水线
在当前 DevOps 的趋势下,持续集成(CI)和持续部署(CD)具有支柱性地位,那么能够成功搭建 CI/CD 流水线就至关重要
了。我们可能会在各种角色的岗位描述中发现关于「持续集成」和「持续部署」技能的要求,比如:数据工程师、云解决方案
架构师、数据科学家等。为了在开发团队和运营团队之间搭建桥梁,CI/CD 流水线实现了应用程序的自动构建、自动测试和自
动部署。
在介绍 CI/CD 流水线的工作原理之前,我们先了解一下什么是 DevOps。
什么是 DevOps?
DevOps 是一种软件开发方法。它将持续开发、持续测试、持续集成、持续部署和持续监控贯穿于软件开发的整个生命周期。
当前几乎所有的顶尖公司均采用了该方法,用以提高软件开发质量,并缩短软件开发生命周期。从而以达到每个公司对软件产
品的期望,交付出客户最满意的产品。
DevOps 生命周期
要想完整的理解 DevOps,我们还需要了解一下 DevOps 的生命周期。接下来,我将通过一张图来展示 DevOps 的生命周期
以及它和软件开发生命周期之间的关系。
什么是 CI/CD 流水线?
CI 代表持续集成(Continuous Integration),CD 代表持续交付(Continuous Delivery)和持续部署(Continuous
Deployment)。也可以将它们看作是类似于软件开发生命周期的过程。
现在我们来看一下它是如何工作的。
如上图所示,该流水线展示了一个软件在其最终交付给客户或者投入上线之前,它在其生命周期内各个阶段中的移动过程。
接下来我们具体看一下该 CI/CD 流水线。假如我们要构建一款 Web 应用程序,并将它部署在一个现场 Web 服务器上。同时
我们有一组开发人员,他们主要负责编写代码,并将代码构建为 Web 应用程序。假设现在开发团队已经将代码提交到版本控
制系统(如:Git,SVN)中了。
构建阶段
接下来,代码将会经历构建阶段,这也是 CI/CD 流水线的第一阶段。在此之前,开发者已经将他们的代码加上合适的标签,
并提交到版本控制系统中了。
假如我们采用的是 Java 语言,那么还需要先进行代码编译。因此,代码在通过版本控制阶段之后,会先在构建阶段予以编
译。该阶段会从代码库的各个分支中获取到所有的功能代码,合并后最终通过一个编译器来编译它们。这整个过程都被称为
「构建阶段」。
测试阶段
构建阶段结束后,将会继续进入到代码的「测试阶段」。在这个阶段中,我们会进行各种各样的测试,单元测试就是其中之
一。在该阶段中,我们会测试代码中多个组件间的关系或者单个组件的功能,同时也会进行软件的可用性测试。
部署阶段
测试阶段完成后,就要进入「部署阶段」了。在该阶段,代码将会被部署到准生产环境服务器(staging server)或者测试环
境服务器(test server)中。同时在该阶段中,我们既可以查看程序代码,也可以在模拟器中运行该应用程序。
自动测试阶段
只要我们的代码部署成功,我们就可以运行另一组可用性测试了。该阶段结束后,如果所有的测试都通过了,那么就可以将其
部署到生产环境中了。
部署到生产环境
另外值得一提的是我们可能在每一个阶段的执行过程中遇到一些错误。在这种情况下,我们可以将错误邮件发回到开发团队
中,以便他们能够及时修复这些错误。当开发团队修复完成后,就可以将代码重新提交到版本控制系统中,然后再次从头开始
执行该流水线。
如果在执行测试的过程中遇到了任何错误,那么这些错误也将反馈给开发团队,等他们修复完成后,同样会再次触发该流水
线,进行新一轮的持续迭代。
度量和验证阶段
因此,整个生命周期将会继续迭代下去,直到我们得到可以直接部署到生产环境中的代码或者产品。除此之外,在生产环境中
我们还需要对代码进行度量和验证,以实时监控应用的线上运行状态。
到目前为止,我们已经了解了 CI/CD 流水线及其工作原理,接下来我们将继续介绍什么是 Jenkins ,以及如何使用 Jenkins
部署示例代码,并自动化整个过程。
终极 CI 工具 - Jenkins
我们的目标是要将软件开发生命周期的整个过程都自动化,从开发人员向代码库中提交代码开始,到将此代码投入生产环境中
使用为止。
为了使整个软件开发流程处于 DevOps 模式或自动化模式,我们就需要对 CI/CD 流水线进行自动化。因此,我们还需要一款
自动化工具来做这件事情,它就是 Jenkins。
Jenkins 为我们提供了各种接口和工具,用以实现软件开发整个过程的自动化。
首先,我们需要拥有一个可以供开发人员提交代码的仓库。同时,Jenkins 也提供了前端展示的页面,我们可以使用该前端页
面来定义整个流水线的作业(job)和任务(task)。对于某一个应用程序而言,我们的目标就是通过特定的工具实现其持续
集成和持续交付的自动化流程。
Jenkins 会从 Git 代码仓库中拉取各个分支的代码,然后将其移动到 “代码提交阶段”。拉取到各个分支的代码之后,Jenkins 就
会将其继续移动到“构建阶段”,该阶段会对代码进行编译工作。如果是像 Java 这类语言的话,我们还可以在 Jenkins 中选用
maven 之类的构建工具,通过 maven 对代码进行编译。之后在部署过程中,还可以将编译好的代码进行一系列的测试,同时
这些测试也会由 Jenkins 监督执行。
之后,Jenkins 就会将代码移动到准生产环境,并使用 Docker 进行部署。在准生产环境中会运行一系列单元测试和可用性测
试。如果能够通过所有的测试,Jenkins 就会将它继续移动到生产环境中。
这就是 Jenkins 在持续集成和持续交付中所发挥的作用,它几乎能够自动化所有的事情。现在,我们还需要一个和生产环境一
致的环境用以部署代码,它就是 Docker。
Docker
剩余11页未读,继续阅读
weixin_38594252
- 粉丝: 7
- 资源: 920
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论5