原文:https://medium.com/edureka/ci-cd-pipeline-5508227b19ca
作者:Saurabh Kulshrestha
在参加一次分享会上大佬口中时常提到平时工作中不怎么熟悉的词汇如DevOps、CI/CD等,一下子勾起我的求知心,它们究竟是什么?为何在前端领域有流行趋势?下面是记录学习的笔记,然后我也尝试着安装了docker和Jenkins镜像实践操作一波,因为我们不光要知所以然也要知其所以然,动手实践才是真正学到,而不是走马观花式不求甚解。
DevOps是什么?
DevOps 是一种软件开发方法,它将持续开发、持续测试、持续集成、持续部署和持续监控贯穿于软件开发的整个生命周期。(DevOps is a software development approach which involves continuous development, continuous testing, continuous integration, continuous deployment and continuous monitoring of the software throughout its development life cycle.)
先明白其概念,DevOps是什么,按照作者的解释是一种有关软件开发的方法。落实到我们实际工作中翻译大白话则是开发(Dev)和运维(Operation)的结合体(Integration)。
平时我们开发和运维的流程是分析需求(plan)
-> 代码开发(code)
-> 打包构建(build)
-> 用例测试(test)
-> 上线部署(deploy)
-> 项目运营(operation)
-> 埋点或异常监控(monitor)
。在整个流程中一般公司常常会分配三个岗位(开发、测试、运维),而在DevOps出现后,只需一个岗位即可,这个岗位则是囊括了开发、测试和运维的工作,集成了开发、交付、维护、监控等。当前几乎所有的顶尖公司均采用了该方法,用以提高软件开发质量,并缩短软件开发生命周期。从而以达到每个公司对软件产品的期望,交付出客户最满意的产品。
DevOps 生命周期
要想完整的理解 DevOps,我们还需要了解一下 DevOps 的生命周期。接下来通过一张图来展示 DevOps 的生命周期以及它和软件开发生命周期之间的关系。
简单解释:第1步是版本控制和源码管理;第2步是持续集成包括通过编译、代码冗余检测、代码review、单元测试;第3步是持续交付在测试环境测试用例和业务功能;第4步是持续部署和上线。而整个过程是可以被持续监控(Continuous Monitor)的,比如用Jenkins。
什么是 CI/CD 流水线?
CI 代表持续集成(Continuous Integration),CD 代表持续交付(Continuous Delivery)和持续部署(Continuous Deployment)。也可以将它们看作是类似于软件开发生命周期的过程。
如上图所示,该流水线展示了一个软件在其最终交付给客户或者投入上线之前的移动过程,它在其生命周期内的各个阶段包括:版本控制、构建、单元测试、部署、自动化测试、部署到生产环境、度量和验证阶段。
至此,我们了解DevOps和CI/CD及流水线工作原理。之所以要采用 DevOps 模式,目的就是为了可以更快速更可靠的构建出高质量的软件,同时还能够加深团队之间的沟通和协作。
希望关注DevOps的开发者动起手尝试着操作一波安装docker和Jenkins来跑一个项目,想必可以体会到自动化部署的feel爽。
网友评论