Jenkins与持续交付的若干问题

栏目: 编程工具 · 发布时间: 7年前

内容简介:Jenkins与持续交付的若干问题

关于译者Ghostcloud

Ghostcloud(中文名:精灵云)是成都精灵云科技有限公司旗下的基于 Docker 的PaaS/CaaS平台品牌。公司成立于2015年,核心团队由来自EMC、Veritas、华为、IBM、Microsoft的核心技术主管和架构师组成。精灵云作为国内首批从事容器虚拟化研发的企业,为企业级行业客户提供针对互联网化、私有云管理平台、大数据业务基础架构的平台服务,在国内Docker社区贡献排名前三。主创团队曾参与Beego开源项目研发,并主导发布《Docker容器实战:原理、架构与应用》一书。Ghostcloud因容器技术而生,致力于为多个领域的“互联网+”转型企业提供服务,是一流的企业级容器云服务专家。

今天我们和大家详细聊一聊一直非常受欢迎的开源工具——Jenkins。

Jenkins与持续交付的若干问题

We Like Jenkins!

众所周知,Jenkins在软件开发流程中非常有用,是一款很棒的工具,但Jenkins和其他CI服务器一样,在软件交付过程中也会或多或少出现一些问题。软件交付团队往往在部署Jenkins以及这类 工具 的时候会犯错,使得开发效率变低,削弱了团队的敏捷开发能力,同时也失去了使用最新技术创新所需的灵活性。

使用Jenkins会出现的若干问题

问题1:Jenkins的插件太多

插件不一定是坏事,当它们都使用正确时,确实是很好的资源。用户可以向其使用的工具中增加额外的功能,这当然是最好的。但Jenkins的插件并不能为平台提供核心功能以外的任何可拓展功能,相反,在大多数情况下,使用Jenkins插件,团队只能完成基础的开发工作。

例如,要Docker一个构建环境,你需要一个插件。你从GitHub下载,同样,你需要一个插件。你想PAM提供支持,你也需要一个插件。

但可以肯定的是,Jenkins的 1500个插件并不是每个人都需要。所以通过插件提供帮助,这很有意义,就比如PagerDuty或Azure Storage兼容性,有一部分用户可能并不需要这些功能。

但如果你想通过Jenkins插件来做任何事情,这都是欠妥的。因为这就意味着交付团队要花更多的时间来安装和配置插件,如此才能开始愉快的工作。然而还有一个更大问题,那就是大多数Jenkins的插件都由第三方编写的,质量不一样,而且在没有详细描述的情况下可能会不支持。

可见,构建基于第三方插件的软件交付链,并不是一个保证可用性或稳定性的好办法。

问题2:Jenkins不是为Docker而设计

早在2000年上半年,在设想容器和微服务作为软件部署的首选基础设施之前,CI服务器就已经存在。它确实是一种相对较老的技术,通常是DevOps的一部分。

因此,传统的CI服务器不能帮助团队使用像Docker容器这样的基础架构,他们只能通过大量插件与Docker进行不恰当的整合。然而事实上,大部分插件由第三方提供,并在与Docker相关的平台上使用。虽然Jenkins为Docker提供了14+个不同的插件,但其中六个是针对Docker的核心平台使用。

Jenkins与大多数其他CI服务器一样,都建立在裸机服务器和虚拟机时代。后来,在Docker的支持下才进行了处理。所以在这个倾向于Docker的大环境下,这并不是CI服务器运行的好方法。

问题3:Jenkins不能较好的支持微服务

Jenkins和大多数CI服务器一样出现在Docker之前,也出现在微服务流行之前。 有些人早在2000年的时候就在开展SOA工作, Jenkins在那时也首次被使用。而在二十世纪八十年代初,微服务的概念就已经存在。但直到Docker出现,微服务才开始真正实现。

看到这里,或许你能猜到Jenkins并不能很好支持微服务, 而事实上也是如此。因为Jenkins缺乏对集成和一次测试多个服务的支持,而这些都是微服务环境下的基本功能。

除非你计划多个流水线的开发,否则Jenkins在帮助开发下一代微服务应用程序方面做得并不是太好。

问题4:CI!=CD

Jenkins和CI服务器最大的问题是,有时交付团队会将持续集成(CI)与持续交付(CD)混在一起。而事实上,这两者是不同的。

CI是CD的一部分,但是要实现完整的CD,需要的不仅仅是CI服务器。

无论什么时候,CD都需要自动发布到当前使用环境中。这需要如“Steps”之类的工具来实现,将软件交付任务自动化到CI服务器的范围之外。CD这一过程需要工具和渠道,使软件交付团队达到无缝协作。

当建立一个CI服务器时,就马上考虑软件交付工作完成,这本身就是在犯一大错误。

改变Jenkins思路

为什么经验丰富的软件工程团队会犯这样的错误?这不是因为他们不了解,亦或是无法跟上最新的创新。问题在于团队被误导去尝试效仿大企业,并使用最有效的软件交付手段,想要做成和Google、Netflix一样。这些企业着力于利用开源工具链和大量基础设施,构建出非凡的敏捷软件交付通道。

然而,这些公司之所以能做到这些,绝不仅仅是因为他们的部署工具,而是他们的思路。这就像是你能使用像Google一样的工具,但你不能像它那样的高效。较小的企业并不能意识到这一点。只有当他们真正拥有正确的思路和过程时,才能克服Jenkins这类工具带来的局限性,并优化他们的软件交付流程。

没有工具链是完美的,但当你有这样思路时,同样可以实现软件交付完美(或至少与其相近的东西)。如果你的软件交付方式仍然围绕Jenkins建立,你无疑会错失做的更好的机会。要实现这些仍需要研发思路与过程的革新。

原文链接:


以上所述就是小编给大家介绍的《Jenkins与持续交付的若干问题》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Python基础教程

Python基础教程

[挪] Magnus Lie Hetland / 袁国忠 / 人民邮电出版 / 2018-2-1 / CNY 99.00

本书包括Python程序设计的方方面面:首先从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句;然后循序渐进地介绍了一些相对高级的主题,包括抽象、异常、魔法方法、属性、迭代器;此后探讨了如何将Python与数据库、网络、C语言等工具结合使用,从而发挥出Python的强大功能,同时介绍了Python程序测试、打包、发布等知识;最后,作者结合......一起来看看 《Python基础教程》 这本书的介绍吧!

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具