k8s平台下的CICD工具选型

在当前DevOps的趋势下,持续集成(CI)和持续部署(CD)具有支柱性地位,那么,我们为什么要做CI/CD?

CI/CD可以提高效率,减少人工操作。能够快速确定新代码和原有代码能否集成,降低部署风险,快速发现错误。 促使加速软件发布周期。

什么是CI

持续集成(Continuous integration)频繁的将代码提交然后集成到主干。

k8s平台下的CICD工具选型

基于容器实现CICD的优势

目前非容器环境痛点:

持续集成与持续交付的难点在于如何屏蔽不同语言、不同框架、不同系统之间集成与交付流程的差异性。

运用CICD进行标准化打包方式,解决应用部署依赖问题,通过抹平环境差异提升软件交付和迭代效率,并且减少人为错误。

k8s平台下的CICD工具选型

常见CICD工具

Drone

GO语言开发的一个非常轻量级的开源CI工具,整个镜像大小只有60多M,原生支持docker并且完全基于docker的CI工具,甚至连插件都是容器形式。

没有自己的用户系统及认证系统,通过OAuth2.0协议与对接的代码仓库进行用户登录及代码仓库同步。也就意味着你不需要再单独管理CI系统的用户。

什么是CD

持续交付(Continuous Delivery)是在CI的基础上,将集成到主干的代码、产出的可部署软件版本,部署到类生产环境进行测试验证,确认无问题后,再手动部署到生产环境。

k8s平台下的CICD工具选型

优点:

  • 非常轻量级,部署简单;
  • 高效率(Pipeline as code);
  • 原生支持docker( Everything as docker);
  • 自定义插件和社区插件使用比较简单 ;
  • 难够针对pipeline的单个步骤多事件触发,或分支触发;
  • 通过使用插件能够触发其他CI服务。

缺点:

  • 高度依赖社区,文档不完善;
  • 插件质量参差不齐 ;
  • UI非常简陋;
  • 只支持对接一个代码仓库管理系统。

Gitlab-CI

GitLab CI / CD是GitLab的一部分,gitlab 8.0版本开始新增的功能,是用Ruby和Go语言编写的。根我们通常的CI系统不一样通常的是一个master-slave架构,即使没有slave,master一样可以做CI,slave只是做为一个压力分担功能,gitlab是gitlab-server本身是不执行的,是通过api与GitLab Runner交互让gitlab-runner去执行CI。

k8s平台下的CICD工具选型

优点:

  • 跟gitlab集成度非常高 ;
  • 不需要部署有gitlab>=8.0 就能直接使用 ;
  • runner支持Autoscale ;
  • UI可视化,可操作性强,可针对单个流程进行重复执行及报表展示 ;
  • CI完全对应你这个代码库,每个项目对应自己CI。

缺点:

  • 没有插件,对接第三方系统需要自己实现 ;
  • 只能支持gitlab代码仓库。

Jenkins

Jenkins是一款java开发的功能强大的CI工具,其前身为oracle的Hudson (软件)项目,2011年正式独立出来,Jenkins也是目前非常老牌和主流的CI工具,最早只能支持java语言,后续通过各类语言插件实现多种编程语言支持,Jenkins也是目前插件种类最丰富的CI工具。

k8s平台下的CICD工具选型

优点:

  • 既有功能完善的UI,也支持pipeline as code ;
  • 老牌CI工具运用范围非常广,文档很全面 ;
  • 插件生态丰富,基本上想要对接的工具都能找到对应插件 ;
  • 支持同时对接多个不同代码仓库。

缺点:

  • 对容器、k8s,代码仓库对接配置比较繁琐,目前jenkins基金会推出个jenkins-x子项目专门用于k8s;
  • 自定义插件难度大 ;
  • 独立的用户权限管理系统,多个开发团队共享一个master,会导致权限配置很困难,但若每个团队用各自Jenkins,又容易导致很多重复性工作。
  • 小团队,用的代码管理软件是gitlab,容器编排工具是Kubernetes建议用Gitlab-CI或Drone,开箱即用,可以减少很多工作量。 
  • 对插件有强烈需求,并且喜欢UI操作流水线的建议用Jenkins。

版权声明:

Com&Lan为用户提供容器和paas平台一站式整合服务,包括应用容器化迁移,CICD建设等。Com&Lan拥有厂家认证的专业技术团队,为用户部署容器平台保驾护航。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
动态
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论