基础设施

概述

作为一个独立的开源项目,Jenkins项目维护了它自己的大部分基础设施,包括帮助保持项必威国际有限公司目运行的服务。属于“基础设施”的内容可以从操作虚拟机、容器、配置网络或开发和维护特定于项目的应用程序,从而使Jenkins核心和插件的开发更加高效。必威国际有限公司

因为我们强烈地相信开源原则,我们还将其应用于我们的基础设施。因此,我们认为自己是一个公开的基础设施项目,每个人都被邀请学习,分享,贡献。

概述

团队

必威国际有限公司詹金斯基础设施由詹金斯基础设施团队维护。该团队由Jenkins贡献者和志愿者组成,他们根据可用性和其他承诺提供最大努力支持。我们一直在寻找有兴趣改进Jenkins服务并帮助维护这些服务的贡献者。

团队结构

这一节正在开发中

会晤

必威国际有限公司Jenkins Infra团队在周五14:00 UTC有一个每周会议。该活动是一个定期安排的会议,用于同步Jenkins项目中正在进行的各种基础设施计划。必威国际有限公司这个会议对所有感兴趣的人开放。看到活动日历用于会议链接。

您可以找到Infra团队会议议程和会议记录必威国际有限公司Jenkins-infra /文件

基础设施

供应

Jenk必威国际有限公司ins项目在Azure上运行其大部分基础架构,由其赞助连续交付基金会.从存储库配置此基础架构必威国际有限公司jenkins-infra /天蓝色使用Terraform和AKS图表

虽然我们尝试坚持Azure,但我们仍然拥有由不同组织赞助的机器,例如Osuosl,AWS,Rackspace或CloudBees。

配置管理

基础设施

jenk必威国际有限公司ins项目的基础架构通过名为git存储库进行管理和策划必威国际有限公司Jenkins-infra / Jenkins-infra使用木偶。我们还使用了一个由必威国际有限公司Jenkins-infra /图表使用Helm&Helmfiles。

监测

基础架构通过DataDog监控。DataDog配置使用TerraForm进行自动化必威国际有限公司Jenkins-infra / DataDog

我们还提供不同的仪表板以分享我们系统的健康状况。

状态页面

融合

报告

PageRduty用于报告Dataadog检测到的问题,我们有一个遵循Sun策略,在我们尝试在“可用”时间期间拨打电话。

服务

Jenkins基础设施项目的另一个主要方面是维护美国或第必威国际有限公司三方提供的所有服务。以下是我们提供和维护的非详尽的服务列表。

Kubernetes中的自主服务

服务 JIRA组件 存储库和链接

账户

账户AccountApp.

代码执掌图表

聊天机器人

ircbot

代码执掌图表

Infra CI - https://infra.ci.必威国际有限公司jenkins.io/

下文

发布CI - https://release.ci.jenkin必威国际有限公司s.io/

ci.必威国际有限公司jenkins.ioci

代码执掌图表

私人文物- https://repo.private.jenkins.io/必威国际有限公司

执掌图表

javadoc.

javadoc

代码执掌图表

Keycloak身份管理

执掌图表

LDAP.

LDAP.

码头工人执掌图表

SSL证书续订

执掌图表

主要网站

必威国际有限公司jenkins.io

代码执掌图表

插件网站

plugins.必威国际有限公司jenkins.io

代码执掌图表

插件站点API后端

plugins.必威国际有限公司jenkins.io

代码执掌图表

民意调查网站

执掌图表

报告网站

执掌图表

上行

上行链路

代码执掌图表

Wiki出口国

GitHub的问题

代码执掌图表

自主服务

服务 JIRA组件 存储库和链接

档案

archives.必威国际有限公司jenkins-ci.org.

木偶的代码

核心和插件CI

ci.必威国际有限公司jenkins.ioci

用户文档部署脚本

镜子

get.必威国际有限公司jenkins.io.

mirrorbits helm图表镜子清单镜子统计数据跑镜子

古老的镜子

mirrors.必威国际有限公司jenkins.io.

旧镜子.jenkins.必威国际有限公司io puppet脚本(搜索mirrorbrain),老镜脚本旧状态页

下载

pkg.必威国际有限公司jenkins.io

木偶脚本

统计

代码发布GitHub页面

更新中心

更新.jenki必威国际有限公司ns.io.

代码

VPN.

VPN.

代码

维基(弃用)

Wiki.

码头工人

萨斯

服务 提供者 JIRA组件 存储库

artifactory.

Jfrog.

artifactory.

-

GitHub.

GitHub.

github

-

监测

Datadog

DATADOG.

代码

PageRduty.

PageRduty.

-

git聊天系统

GitLab

-

内容交付网络

急剧

-

域名注册商

Namecheap上

-

吉拉

Linux基础

Linux基础支持

-

子项目/ SIG服务

必威国际有限公司Jenkins基础架构还举办了一些用于子项目和特殊兴趣团体的服务:

服务 所有者子项目/ sig JIRA组件 存储库

中文网站

汉化

cn.必威国际有限公司jenkins.io.

代码

代码和存储库签名

发布团队

释放

Digicert.

贡献

我们的基础设施是一个开放的基础设施项目,由Jenkins社区创建并为其服务。换句话说,这是一个由贡献者驱动的项目。虽然我们不能公开分享所有信息,如必威国际有限公司机密、证书等,但我们仍然尽可能做到透明,这样每个人都可以在没有特权访问的情况下理解和改进我们的基础设施。如果你有任何可以帮助infra或引起社区兴趣的想法,请随时提出建议。

在进一步之前,我们假设:

贡献的工作流

为了为基础设施项目做出贡献,我们要求人们遵循下一步

拾取任务=>沟通=>实现=> Deploy =>查看

完成一项任务

为了跟踪Jenkins基础设施项目中需要完成的工作,我们使用了“INFRA”项目必威国际有限公司吉拉.因此,在做出任何贡献之前要做的第一件事是找到正确的票,分配给你,然后就它进行沟通。

如果找不到合适的票证,请创建一个新的机票,并清楚描述需要做些什么以及为什么。一些Jen必威国际有限公司kins-infra Git存储库引用可以帮助了解上下文。您还可以使用下一节中的建议指定组件,最后您可以对其进行通信。

备注

虽然一个票据可以有不同的组件分配给它,但我们也使用标签新手友好确定可以通过新贡献者完成的任务。

交流

在任何实现之前,首先验证(仍然)需要某些实现,然后验证过去没有做过任何工作,这一点很重要。最好的方法是查看类似的Jira票,在IRC或邮件列表上询问。你也可以参加我们的每周会议来讨论和协调这些变化。

当主题太宽泛或难以在几行内解释时,我们就写等电位点这个文件的目的是解释我们为什么需要某些东西,我们想如何解决它,以及我们为什么作出最后决定。最后,一旦你有了车票id,你就可以开始寻找知识渊博的人了。

无论如何请记住,拥有太多信息总是更好的,而不是太少,最终你可能是可以在您的案例上工作的最好的人。

简而言之
+----------------------------------+ | | | 接或创建下文票  | | | +----+----+------------------------+ | | 如果没有反应后几天| |促进  | | +------------------------------------------+ | | | | | +--------------------> IRC:利比里亚聊天# jenki必威国际有限公司ns-infra  <----+ | | | | | | | +------------------------------------------+ | | | +------------------------------------------+ | | | | | | | +--------------------> 邮件:必威国际有限公司jenkins-infra@googlegroups.com  <----+ | | | | | +------------------------------------------+ | | 如果这个话题太大了  | | | | +-------------------------------------------+ | | | | | +--------------------> 掌握:https://github.com/jenkins-infra/iep  |--------+ | | +-------------------------------------------+

实现

一旦对方法达成一致,在做出任何改变之前,我们要求贡献者遵守以下规则。

这些规则正是我们认为贡献者驱动的项目的“最佳实践”,可以根据特定的git存储库进行调整。

规则1:所有内容都在git仓库中必威国际有限公司jenkins-infra组织。

因此,每个人都要更容易找到/审查/审核更改并建议改进。

规则2:所有更改都由至少一个常规的基础架构贡献者通过Pull Request进行验证。

所以我们总是有不同的人,他们了解基础架构的变化。

雷姆:非常欢迎非正规的投稿人分享他们的专业知识或只是提问,这也有助于发现不连贯之处。

代码评论目的:

  • 告诉作者和团队代码的变化

  • 发现测试未涵盖的逻辑或安全问题

  • 收集代码可读性或效率的改进建议

    规则3:对所有更改进行测试ci.必威国际有限公司jenkins.io

    所以我们在合并PRS时觉得更舒服,我们避免回归问题。

    规则#4:一切都是自动化的。

    所以我们只有一个真相来源,我们不会破坏别人的工作。如果不可能,则需要进行良好的沟通和记录,参见规则1。

    规则5:所有更改都遵循GitHub.工作流程。
分叉项目->创建特性分支-> Open Pull Request -> Ask Review -> Merge

部署

部署步骤是我们需要批准的唯一时刻,其中许可提高。如上所述,即使我们尽可能开放,我们也不希望与每个贡献者共享特权访问,即使我们相信它们,主要出于安全原因。

在看Jenkins Infra项目时可以有用的各种环节必威国际有限公司