流水线简介
一、什么是流水线?
1、Jenkins 本身并不是流水线
2、只创建一个新的 Jenkins 作业并不能构建一条流水线。
3、可以把 Jenkins 看做一个遥控器,在这里点击按钮即可。当你点击按钮时会发生什么取决于遥控器要控制的内容。
4、Jenkins 为其他应用程序 API、软件库、构建工具等提供了一种插入 Jenkins 的方法,它可以执行并自动化任务。Jenkins 本身不执行任何功能,但是随着其它工具的插入而变得越来越强大。
5、流水线是一个单独的概念,指的是按顺序连接在一起的事件或作业组:
6、“ 流水线(pipeline)”是可以执行的一系列事件或作业。
二、为什么要是用流水线?
1、当前现状技术痛点
1、如上图可见,从程序包分发出去开始,即由项目实施人员对程序包进行安装、部署。其中部署环境包括kafka/nginx/redis/jdk/mysql/grafana/influxdb等等。
2、产品的正常运行,还依赖各种配置文件的正确设置(如xml文件/properties文件/其它文件/db/等,需配置相应的ip/端口/名称/地址等),一旦有地方配置有误,运行报错,实施人员则需要反复检查相应的配置文件/环境配置是否正确。
3、若无法检查出问题,则还会需要找相应的开发人员寻找原因。这个过程对于实施人员是反复且痛苦的。
以上流程,若是通过手工执行,痛点有以下几点:
1、产品分发管理不规范:给了多少项目组使用,各项目使用的是什么版本
2、部署包传送麻烦:QQ/FTP
3、部署过程复杂
4、配置文件繁琐
5、配置容易出错
6、出错难定位问题
7、实施人员-开发人员耦合度高