在过去的几年间,随着DevOps的兴起,持续集成(Continuous Integration)与持续交付(Continuous Delivery)的热度也水涨船高。在本文中,我们将首先带您了解热门的CI工具及需要克服的挑战。
常见的CI工具
Jenkins是当今流行的持续集成工具之一,有成千上万个副本正在使用,他还是很多技术团队第一个使用的自动化工具。据有关报告估算,有超过70%的 CI 流水线使用Jenkins。
对于小型敏捷开发团队而言,Jenkins在帮助处理每天重复性的代码集成任务时表现非常出色。而随着团队、环境、项目以及所面对的市场规模不断扩大,来自于构建与使用Jenkins流水线的运维压力也会不断加大。
当团队成长和发展到企业级规模时,管理者既期望能让开发者对环境有灵活的控制,又希望实现大规模、可视化的集中管理,而这就催生了一系列挑战。
Jenkins面临的五大挑战
1. 无法达到大规模的集中管理
Jenkins的管理没有被整合,管理者和开发者耗费时间在管理插件上,大规模的集中管理无法实现。
2. 无法让开发者拥有灵活性
开发者不应被束缚,但由于共享服务需要稳定和标准、Jenkins痛苦的设置过程、后续管理负担重等种种问题,让开发者无法拥有灵活性。
3. 无法跟踪控制正在使用或需要使用的插件
每个团队都有自己独立的Jenkins设定和定制的构建流程,这包括他们喜欢的插件。保持偏好清单中的插件可追踪,确保系统稳定以及实现性能最优化的最佳实践对于Jenkins 管理员来说无疑是项考验。
4. 每个团队都有一个自己单独的Jenkins
组织中的每个团队都有自己的Jenkins控制器,解决了Jenkins的问题。但同时,这带来了新的挑战,所有这些独立的服务器都营造出每个团队生活在自己孤岛上的感觉。
5. 担心安全性问题
Jenkins有一个主要缺点,那就是任何人都可以很容易地设置服务器并开始集成代码。用户经常在没有明确定义角色或团队关联的情况下进入。如果没有定义这些重要的特征,像RBAC这样的治理措施基本上就毫无意义。