6.1.3 Jenkins
说到持续集成,就不能不提Jenkins。Jenkins是一个开源的自动化服务器,可以用来进行构建、测试和部署软件等任务。它是一个开源的自动化平台,你可以把各种流行的自动化工具,包括各种Shell脚本通过它"拼装"、"粘合"成一条流水线,并且通过Jenkins来对你的流水线进行有效的任务调度。从而建立起持续集成的环境,如图6-2:
图6-2 Jenkins Pipeline
Jenkins对持续集成的支持也是经历了Pipleline,Blue Ocean,和Jenkins X三个阶段。Pipeline引入的Jenkins允许用户通过脚本将各个Stage串联起来,定义持续集成流水线,也可以通过pipeline script from SCM将脚本上传到产品的代码库,这样在Jenkins执行产品构建任务时,就会自动执行指定位置的Pipeline Script,如代码清单6-1所示。
代码清单6-1 Pipeline Script
1. pipeline { 2. agent any 3. stages { 4. stage('Build') { 5. steps { 6. echo 'Building..' 7. } 8. } 9. stage('Test') { 10. steps { 11. echo 'Testing..' 12. } 13. } 14. stage('Deploy') { 15. steps { 16. echo 'Deploying....' 17. } 18. } 19. } 20. } |
同时Pipeline插件提供了Stage View供用户查看Pipeline执行时每个Stage的详情。
Blue Ocean是为Jenkins Pipeline开发的一套全新的用户界面,它为用户提供了全程可视化的Pipeline编辑界面,相较于经典界面,Blue Ocean通过图形界面使得持续集成流水线以图形的形式展现给用户,即使没有Jenkins使用经验,也能理解Pipeline的功能定义,如图6-3:
图6-3 Blue Ocean定义Pipeline
通过Blue Ocean的界面,用户定位问题的难度也大大降低,基本不用在日志文件里翻找错误信息。同时,通过Blue Ocean的可自定义的仪表盘,用户可以只展示对自己有用的Pipeline相关信息,排除不必要的干扰,如图6-4:
图6-4 Blue Ocean Dashboard
Jenkin X是基于 Jenkins 和 Kubernetes 实现的高度集成化的 CI/CD 平台,区别于以前的Jenkins的单体应用的设计和文件存储系统,它是一个原生的云应用。同时它能帮助团队解决微服务体系架构下的云原生应用的持续交付的问题,简化整个云原生应用的开发、运行和部署过程。Jenkins X提供了更强的自动化的能力,比如选择项目类型自动生成Jenkinsfile定义流水线,自动生成Dockerfile并打包容器镜像,自动创建Helm Chart并运行在Kubernetes集群等等;它还提供了手动或自动部署应用,应用部署升级,同时将所有的环境,应用列表,版本,配置信息统一放在代码库中进行版本控制等等功能来帮助团队实现DevOps。
对于中小型团队来说,使用Jenkins来打造持续集成环境是比较经济的选择,尤其是Jenkins X对于Kubernetes 的原生支持,可以让团队以很少的投入就能方便的体会到持续集成带来的好处以及容器化带来的环境维护方面的便利。这里我们不继续介绍Jenkins部署和使用的详细步骤了,这方面的资源网络上有很多,下面主要详细描述我们部门是怎样基于容器环境建设持续集成系统的。
相关推荐:
版权声明:51Testing软件测试网获人民邮电出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。