什么样的持续交付工具和平台最适合你的组织?

持续交付和DevOps的方法论及实践已经存在很不少年,其主要要解决的问题就是,如何快速,安全的完成从开发到发布、运维,及后续的线上监控等一系列活动。npm

持续交付和DevOps包含了不少内容,好比分层自动化测试、流水线卡点,infrastructure as code,线上机器auto healing、auto scale等等。但最重要的是,这些活动要有一个靠谱的工具平台来承载。安全

好在市面上可选的工具平台也是很是的多种多样。屈指一算,大概有这么几类:负载均衡

轻量级CI SaaS运维

以travis-ci为表明的轻量级CI,成为了开源项目的标配。可以提供丰富多样的构建环境和灵活的构建策略(好比并行构建等)。很是适合运行测试,可是在后续的部署、运维领域略显乏力。maven

单机版CD工具工具

以Jenkins为表明。Jenkins是一个以Job为核心概念,用各类插件不断丰富和武装本身的工具。在近几年前后推出了Jenkins 2.0(pipeline as first class citizen),Jenkins X(cloud native as first class citizen)。测试

Jenkins本质上是一个灵活的流程引擎,没有任何业务概念。所以对于不少场景化的需求须要进行上层的封装,能够是本身去配置一个个Job和Pipeline,也能够经过API批量调用。Jenkins的扩展能力很强,但对于企业的场景来讲,仍是会有一些限制。阿里云

云原生工具插件

平台自己和云平台有着很好结合。如前面提到的利用云平台的auto scaling的能力。事实上可以利用的能力还有不少,包括机器建立销毁,操做负载均衡,开启日志服务及监控等等。日志

目前比较有表明性的单机工具是Netflix的spinnaker。因为是国外的产品,他对AWS和Google Cloud等支持的比较好,但阿里云的支持仍是有限。

企业级平台

为企业的场景而生。通常内置项目、应用、流水线等模型,很好的匹配到企业的组织结构。同时提供企业研发所必须的一些配套基础设施,好比maven私服,npm私服等等。通常来说,企业级平台是场景化的。好比阿里云的一站式研发协同平台,云效,对主流语言(Java,Node,Php)的构建和主流平台(Linux)的部署都支持的很好。用户基本上简单的点点选选,一个从构建到发布的流程就能跑起来了。

这种平台可能的一个缺点就是,相比Jenkins这类产品,通用能力和灵活性不足。不少活动都须要在一些模型的概念下进行。

那么来聊聊吧

你的组织规模如何,你在组织内的角色是什么

正在使用什么样的持续交付工具链,又遇到什么问题

是否使用了云平台,你的工具链和云平台的集成度如何?

是否使用了Kubernetes等集群管理,你的工具链和Kubernetes的集成度如何?

你心中理想的持续交付工具链是什么样子的

参与话题赢好礼

相关文章
相关标签/搜索