clouddevents插件必威国际有限公司

互操作性的内容、原因和方式

随着工作负载和团队变得越来越多样化和复杂,越来越需要在应用程序的CI/CD生态系统中自动化各种任务,以降低CI/CD带来的复杂性。

一个跨应用程序不同方面工作的更多样化的团队还需要一套不同的CI/CD工具来测试并交付给广泛的用户。通常情况下,我们需要这些工具一起工作并交换数据,以形成有效的CI/CD管道。然而,将多个服务链接在一起很容易增加复杂性。

如何?这些服务中的每一个都使用不同的“语言”来通信和表示在该服务中发生的实体(事件)。为了让另一个服务理解这种“语言”,该服务可能需要开发定制的客户端和代理,专门根据第一个服务传输给它的内容来理解、遍历和采取行动。

可以把它看作是专门研究ABC语言的翻译人员,每个想要与使用ABC的服务进行通信的服务都必须雇用这个翻译人员,或者可能需要另一个受过训练的翻译人员。而且,也不能保证这个翻译程序也能帮助使用一种完全不同语言的其他服务进行交流。

我们可以看到成本和维护方面的增长是多么容易。一种首选的方法是使用一种共同的语言,每个服务都可以使用和理解,作为彼此通信的一种方式。这样,使用此公共语言发出的事件将对任何感兴趣的接收者可用,而该接收者不需要特殊代理。这种使用公共/标准语言的通信方式也为不可知论通信创造了一种方式,在这种通信方式中,发送方或接收方在不产生紧密耦合的情况下发送和接收数据。

clouddevents规范通过强制使用一种公共语言来实现服务之间的松耦合、事件驱动的通信,该语言定义了事件应该如何在系统之间发出和传输。

CloudEvents和詹金斯必威国际有限公司

CloudEvents规范

以通用方式描述事件数据的规范
  • 一致性

    • 跨工具和服务的一致性。

  • 可访问性

    • 公共事件格式意味着可以使用clouddevents开发跨环境交付事件数据的公共库、工具和基础设施。

  • 可移植性

    • 轻松地跨工具移植事件数据,真正利用事件驱动的架构。

为Jenkins开发的CloudEvents插件是为了必威国际有限公司使Jenkins和CI/CD工具之间的互操作性更容易。针对Jenkins的clouddevents插件是一个必威国际有限公司GSoC项目,在一个了不起的导师团队的帮助下,该项目旨在增强云原生CI/CD工具之间的事件驱动互操作性,使开发人员更容易将Jenkins包含在他们的CI/CD管道中。

通过这个插件,Jenkins可以使用必威国际有限公司clouddevents作为事件格式,向各种CI/CD工具发送和接收与clouddevents兼容的事件。这个插件使链接Jenkins与多种工具,如Tekton必威国际有限公司, Keptn, Knative和更多,非常容易。

GSoC Phase 1 - CloudEvents插件

使用clouddevents插件的Jenkins必威国际有限公司

这个插件允许Jenkins被配置为一个必威国际有限公司源和汇,它可以同时从一系列工具发射和使用clouddevents。

必威国际有限公司詹金斯作为消息来源

将Jenkins配置为S必威国际有限公司ource使Jenkins能够将clouddevents发送到clouddevents接收器。对于这个项目的第i阶段,有对HTTP sink的支持,但是clouddevents支持各种各样的协议绑定.今后,clouddevents还将支持其他协议绑定。

要使用Jenk必威国际有限公司ins作为Source,需要以下配置:

  1. 点击管理詹金斯必威国际有限公司在左侧的Root-Actions菜单中。

  2. 在Manage Jenkins UI必威国际有限公司中,搜索配置系统系统配置

  3. 配置系统UI,向下滚动到clouddevents插件部分,这是所有插件配置将呈现的地方。在这里,你需要输入以下信息:

    • Sink类型(目前,支持clouddevent和HTTP Sink的HTTP协议绑定)

    • Sink URL(你想要发送云事件的Sink的URL)。

    • 您想要发送到clouddevents接收器URL的事件。

第一步:管理Jenkins必威国际有限公司

管理詹金斯必威国际有限公司

步骤2:配置系统

配置系统

步骤3:配置clouddevents Sink

配置接收器以接收事件

配置了Je必威国际有限公司nkins作为Source后,当Jenkins内部发生所选事件时,Jenkins将向配置的接收器发送一个POST请求。每个事件都有特定于所发出事件类型的不同负载。

事件类型、负载和元数据

Jenkins发出的clouddevents遵必威国际有限公司循clouddevents支持的二进制结构,其中clouddevents的元数据出现在头文件中,而事件数据被序列化为JSON,并出现在请求体中。这是clouddevents的HTTP协议绑定。clouddevents的每个协议绑定都遵循特定于绑定协议的定义。

目前,clouddevents插件支持以下Je必威国际有限公司nkins事件作为源:

下面是队列输入的等待cloudevents元数据表:

事件元数据报头键 事件元数据头值

ce-specversion

1.0

这个类型

org.必威国际有限公司jenkinsci.queue.entered_waiting

ce-source

工作/测试

ce-id

123-456-789

所有这些字段都将出现在http请求头中,因为这里使用的clouddevents格式是二进制结构。

下面是队列输入事件的事件负载示例:

{"ciUrl": "http://3.101.116.80/", "displayName": "test2", "entryTime": 1626611053609, "exitTime": null, "startedBy": "shruti chaturvedi", "j必威国际有限公司enkinsQueueId": 25, "status": "ENTERED_WAITING", "duration": 0, " queuecause ": [{"reasonForWaiting": "处于quiet时段。Expires in 0 ms", "type": "entered_waiting"}]}

试一试这个插件

该插件将很快作为clouddevents插件发布https://plugins.必威国际有限公司jenkins.io/!!

下面是插件的GitHub Repo:clouddevents插件GitHub Repo

演示

这是在CDF GSoC期中演示中演示的带有SockEye的CloudEvents插件的视频。红大马哈鱼是一个开源工具,它被设计成一种可视化云事件的方式,这些云事件是从一个接收器发送的。在这个演示中,我们将看一下安装在多节点K8s环境中的Jenkins如何使用clou必威国际有限公司ddevents插件作为Source,通过HTTP向SockEye接收器发送事件。

下一个步骤

  • 必威国际有限公司当云事件从其他工具接收到时,Jenkins作为一个Sink,允许Jenkins触发各种行动。

  • 启用clouddevents元数据上的过滤,使其仅对接收到的特定类型的事件起作用。

  • 在clouddevents中支持其他协议绑定。

反馈

我们非常乐意听取您的建议和反馈。这将帮助我们理解插件的各种用例,并通过迭代来支持各种绑定和格式。

你可以在CloudEvents插件GitHub存储库。我们在CDF松弛下gsoc - 202必威国际有限公司1 -詹金斯cloudevents插件.你也可以开始讨论community.必威国际有限公司jenkins.io.我也喜欢电子邮件!告诉我一个:shrutichaturvedi16.sc@gmail.com

关于作者
专门查图尔维迪

什鲁提·查图维迪是成立工程师Klara是一家致力于彻底改变美容产品购物体验的初创公司。她是一个Oracle认证云从业人员她正在开发云计算解决方案,其中CI/CD是她的主要重点。她作为一个用户与Jenkins一起工作,必威国际有限公司并且非常高兴能够为Jenkins做出贡献并成为社区的一部分。