云本地SIG -可插拔存储

当前将所有内容存储到文件系统中的默认方法是Jenkins不适合“云本地”模型的主要原因,该模型具有HA、零停机或按使用付费等特性。必威国际有限公司虽然有很多插件实现了这一愿景的一部分,但配置起来很麻烦,对用户来说是可用性的噩梦JEP-300指出。朝着这样一种模式发展,即在有意义的地方使用云服务,在云或容器化环境中操作Jenkins的整体复杂性将大大降低。必威国际有限公司其他相关项目包括必威国际有限公司詹金斯X必威国际有限公司詹金斯长青酒店这将极大地受益于Jenkins的云本机存储。必威国际有限公司

有几个明确的领域有待改进,在此加以总结,并将在今后的文件中加以详细说明。一个主要的痛点是将本地磁盘用作通用存储,这将导致在容器化或分布式环境上运行的问题,需要高性能的文件系统,以及所有配置上的痛苦,如初始大小调整和停机时间调整。我们相信,通过使用云提供的服务,整体的可用性、性能和可伸缩性可以提高,同时启用新的需求功能。

您可以在中找到有关可插拔存储和优先级的更多信息这篇。詹金斯改善计划的详细名单载必威国际有限公司于Cloud Native SIG页面

状况摘要

您可以在下面找到正在进行的活动及其当前状态的摘要:

类型/状态 评论 实现(年代)

人工制品
(可用)

完全交付,支持直接从代理上传工件。相关中:JEP-202

扩展点

S3上的工件管理器,Azure工件管理器,< >更多的实现

资格证书
(可用)

在引入JEP流程之前完成。

扩展点

Kubernetes凭据提供程序,AWS机密管理器凭据提供程序,< >更多的实现

建立日志
(预览/暂停)

管道日志存储API和参考实现可供预览,仅支持Jenkins管道作业类型。相关JEP:必威国际有限公司JEP-210

必威国际有限公司Jenkins核心api和引用实现还没有被合并/发布,但是原型可以用于评估。相关中:JEP-207,JEP-212

管道日志:

必威国际有限公司詹金斯核心:

系统日志
(可用)

必威国际有限公司Jenkins支持使用标准的自定义日志追加器java.util.logging配置选项

Syslog记录器,非Jenk必威国际有限公司ins实现

任务日志
(未启动)

存储系统日志和各种任务(例如,代理连接或SCM轮询)

不适用

配置
(暂停)

很大程度上被配置代码插件,它允许存储Jenkins配置在SCM或其他位置没有必威国际有限公司数据库。

相关中:JEP-213

不适用

测试结果
(可用)

API可在JUnit插件

JUnitSQL存储

代码覆盖率结果
(未启动)

仅针对基于代码覆盖率API它统一了存储实现。看见运行用于其他覆盖报告类型。

不适用

构建/运行
(未启动)

在外部数据库中存储完整的构建记录。包括存储未列出的构建数据(如日志或测试结果)。

不适用

乔布斯
(未启动)

在外部数据库中存储作业配置和特定于作业的元数据。像Jenkins Pipeline和JobDSL这样的现有插件通过在SCM中保留配置部分解决了这个问题。必威国际有限公司

不适用

指纹
(预览)

必威国际有限公司Jenkins 2.252+包括可由插件使用的外部指纹存储API。更多信息:GSoC项目页面

相关中:JEP-226

复述,,PostgreSQL

工作区
(未启动)

建议作为GSoC 2019项目:外部工作区管理器插件的云特性

不适用

上面的列表不完整。可根据反馈考虑其他存储类型。您可以在中找到有关可插拔存储和优先级的更多信息这篇

构件存储

有许多现有的插件允许从外部存储上传和下载工件(例如S3、Artifactory、通过SFTP发布等),但没有任何插件可以在不使用新步骤的情况下透明地完成这项工作。在许多情况下,工件也通过Jenkins控制器上传,这会增加系统的负载。如果有一个层允许在使用诸如必威国际有限公司存档工件

必威国际有限公司Jenkins 2.118+提供了扩展的必威国际有限公司jenkins.util.VirtualFile的API,它允许使用ArtifactManagerFactory扩展点。

实施示例:

相关中:

建立日志存储

记录磁盘使用情况会导致与前面提到的工件相同的问题。加上一个外部集中日志存储,如AWS CloudWatch日志允许所需的功能,如集中式日志管理、日志保留策略、高级查询等。已经有了将日志从外部发送到后端的选项,或者可以像aws cloudwatch日志发布器插件,但是没有集成的方法来从外部日志存储发送和显示日志。外部日志存储工作跟踪问题:38313[]。

参考实现(s):

相关中:

配置存储

虽然配置不是很大,但外部化它们是获得高可用性或一次性Jenkins控制器的关键任务。必威国际有限公司在Jenkins中有很多方法来存储配置,但95%的情况是由必威国际有限公司XmlFile将对象序列化到磁盘并使用XStream库读取它们的层。将这些外部化XmlFile这将是向前迈出的一大步。

有几种用于外部化配置的原型,例如在DotCI中。还有其他一些实现可以向上传输到Jenkins核心。必威国际有限公司

相关中:

资格证书

凭证插件1.15+有一个CredentialsProvider允许引用和解析外部凭据的扩展点。这个引擎允许为实现凭证API的插件实现外部凭证。

实施示例:

Jenkins中的其他凭证API(如jenkins必威国际有限公司doc:hudson.util.Secret)不受支持。

测试结果

在常见的CI/CD用例中,测试报告占用了大量空间。该数据存储在必威国际有限公司JENKINS_HOME,当前的存储格式在检索统计信息,特别是趋势信息时需要巨大的开销。为了显示趋势,必须加载每个报告,然后在内存中处理。

外部化测试结果的主要目的是通过从专门的外部存储器(例如,从基于文档的数据库,如Elasticsearch)查询所需数据来优化必威国际有限公司Jenkins逻辑。按照目前的计划,,JUnit插件将被扩展,以便在其api中支持这种被测试报告插件广泛使用的外部存储。

地位:

请试用,将问题报告给github以及对GitHub # 142

指纹

指纹被储存在里面必威国际有限公司JENKINS_HOME在基于XML的本地数据库中。外部化指纹减少了Jenkins对控制器物理磁盘存储的依赖,并允许配置更便宜、更可靠的云存储。另一个优点是,它允许跨Jenkins实例和整个CI/CD流跟必威国际有限公司踪指纹。

地位:

其他可插拔存储故事

本页仅概述正在进行的工作的状态。在云本地SIG中,我们还考虑了其他可插拔存储的故事团体的页面查阅更多详情及连结。