亚马逊AWS官方博客
为什么 Jenkins 可以持续为开发人员服务
对于大约 1500 百万开发人员而言,Jenkins 是印有其标志性谦逊管家形象的贴纸的代名词,这些颇具收藏价值的贴纸推出过无数版本,装点着世界各地的笔记本电脑。管家代表着无处不在的开源持续集成 (CI) 技术,该技术在过去十多年来默默地自动执行了无数件开发任务。
Jenkins 的起源可以追溯到 2004 年底的 Sun Microsystems,它诞生时的名字是 Hudson。它的创建者川口耕介 (Kohsuke Kawaguchi) 是一名程序员,他的初衷是让他的开发人员同事们能够找回更多的空闲时间,用于编写优秀的软件。2011 年,在 Sun 被收购后,该项目从 Oracle 解放出来,更名为 Jenkins。Jenkins 由一个大型开源社区维护,已成为蓬勃发展的多功能自动化引擎,用于执行枯燥的重复性软件开发工作。Jenkins 采用持续集成这个术语来表示无限往复的时间和资源密集型测试和集成处理,这些操作的目的是解放软件交付团队的生产力,以达成持续生成和更快交付。
这种引擎中内置的可扩展性仍然是其目前广受欢迎的主要原因。它采用插件架构进行设计,使软件开发人员可以快速编写自己的插件,或者从 Jenkins 社区贡献的数千种插件中进行选择。此模型允许团队生成自定义的持续交付 (CD) 管道,该管道可连接到任何代码存储库,并使用团队首选的工具来生成、测试、存储、版本化、部署和监视其软件项目,从而触发自动化作业。
已自动执行 4000 万 Jenkins 作业,并且此数量还在不断增长
自 2007 年 4 月以来,Jenkins 项目一直在收集基准数据,即有关 Jenkins 使用情况的匿名统计信息。这些统计信息仅包含尚未退出数据收集的项目。实际项目总数要大得多,因为很大一部分软件是在有防火墙隔离的组织内部生成的。尽管如此,这个数字仍然很可观。
Jenkins 在过去 5 年中的增长(2015 年至 2020 年)
- 已安装的服务器增长 145% 代表着新团队的持续采用。
- 作业增长 535% 代表 Jenkins 自动执行的独特任务 — “作业”的增长。
- 插件增长 583% 代表创建了大量自动执行无数特定用例的插件。
专为提高软件交付速度而打造
当今的大多数开发人员都在云平台上运行全部或部分交付管道,创建在云中运行的服务和应用程序。AWS 专用的 Jenkins 插件不下 37 个,可帮助开发人员自动执行各种工作,从在交付管道之间传递 AWS 凭据,到使用 AWS 支持的 CodeBuild 插件执行生成。
使用 ECS 和 Fargate 的架构完善的 Jenkins
Jenkins 是一种服务器<>工作者架构,由于插件众多,它容易受到版本控制和配置问题的影响。AWS 团队最近创建了一个新的 Jenkins-on-AWS 项目,该项目可以使用由 AWS Fargate 管理的 Amazon Elastic Container Service (Amazon ECS),在 AWS 中生成和部署一个不可变、具有容错能力和高成本效益的 Jenkins 环境。
使用 Jenkins 部署 Lambda
无服务器部署提供了一种新的应用程序交付方式,在交付应用程序时无需考虑和依赖于底层基础设施。当团队采用这些新实践时,可以调用 Jenkins 作为帮手。Cloud Guru 是 AWS 的合作伙伴,他们分享了一篇关于如何在 Amazon Simple Storage Service (Amazon S3)、Amazon CloudWatch 和 Jenkins 的帮助下,使用 AWS 部署 Lambda 函数的文章。
走向未来
这一切都表明,在未来许多年里,开源项目仍将是富有成效且实用的。为了掌控新一代的 Kubernetes 开发,一个名为 Jenkins X 的新项目于 2019 年问世。
使用 EKS 的 GitOps 和容器化应用程序交付
Jenkins 具有高度可扩展性,并且依赖于插件实现广泛的多功能性,而 Jenkins X 专为 Kubernetes 原生开发而设计。Jenkins X 检测项目,预测所使用的开发、转储和生产环境,并为您创建管道。Jenkins 专注于成为像瑞士军刀那样的多面手,而 Jenkins X 致力于成为完善 Kubernetes CI/CD 的专业工具。
Jenkins X 的设计旨在使开发人员能够更轻松地采用开发运营原则和最佳实践。该系统的核心是 Kubernetes,它已成为供开发运营使用的一个热门的虚拟基础设施平台。Jenkins X 还提供 GitOps 实践,这是一种以 Git 存储库为核心的方法,用于管理和部署容器化的无服务应用程序。
对于那些心怀大志、热爱新事物的团队,博客文章《万物皆可无服务 — 在 AWS EKS 上使用 Jenkins X 提供 GitOps》提供了丰富的见解,让您深入了解关于容器化无服务器应用程序交付的所有最新 CI/CD 创新发展。
Jenkins 项目现在在 AWS 上运行
AWS 致力于与新的和现有的开源项目合作,为之提供支持并做出贡献。在云计算以及微服务、容器、编排和无服务器计算等所有快速演变的方法的兴起过程中,Jenkins 一直在软件开发领域扮演着重要的角色。为确保该项目继续运作,AWS 在 2020 年赞助了支持 Jenkins 项目的基础设施。我们通过持续交付基金会 (CDF) 为 Jenkins 项目提供支持,希望这位谦逊的管家能够为新一代云原生软件开发团队提供更多年的服务。