跳过正文
Background Image
  1. Posts/

看看顶级的开源组织都在用哪些服务和工具

·3253 字·7 分钟· ·
沈显鹏
作者
沈显鹏
目录

本篇介绍的是大名鼎鼎的开源软件基金会 Apache 所使用的服务(Services)和工具(Tools),这或许能帮助你打开视野,在选择工具的时候提供参考。如果你是一名 DevOps、SRE 或是 Infra 工程师,通过本篇文章内容结果帮助你更好的展示团队所提供的服务有哪些,以及窥探到 Apache Infra 是怎样组织和管理他们的。

Apache 是谁
#

如果你不太了解 Apache,下面是关于 Apache 的简要介绍。

Apache 是一个开源软件基金会(Apache Software Foundation,简称 ASF)的缩写。ASF 是一个非营利性的组织,致力于支持和发展开源软件项目。Apache 软件基金会通过提供法律、财务和基础设施支持,帮助开发者共同合作创建和维护开源软件。其中,Apache 软件基金会最为著名的项目之一是 Apache HTTP 服务器,也称为 Apache Web 服务器。此外,ASF 还托管了许多其他流行的开源项目,像 ECharts,Superset,Dubbo,Spark,Kafka 等等。

服务与工具
#

Apache Infra 团队维护着供 PMC(项目管理委员会)、项目提交者和 Apache 董事会使用的各种工具。这些工具中的部分工具只提供给有特定职责或角色的人员使用。其他工具,如显示 Apache 基础设施各部分状态的监控工具,则向所有人开放。

为顶级项目(TLP)提供的服务
#

网站
#

这里只列出了几个挺有意思的连接,比如项目网址检查器,它会检查顶级项目是否有 License, Donate, Sponsors, Privacy 等正确的连接。

电子邮件
#

  • 所有新建电子邮件列表的申请都应通过自助服务系统进行。
  • 电子邮件服务器 - QMail/QSMTPD

ASF自助服务平台
#

  • Infra 的目标之一是让 ASF 成员、PMC 和提交者有能力完成他们需要做的大部分工作,而无需向 Infra 求助。例如,自助服务平台提供了许多方便的工具,拥有 Apache 电子邮件地址的人(基本上是项目提交者、PMC 成员和 ASF 成员)可以使用这些工具:

    • 创建 Jira 或 Confluence 项目、Git 仓库或电子邮件列表(PMC 主席和 Infra 成员)。
    • 编辑你的 ASF 身份或更新你的 ASF 密码。如果要更新密码,则需要访问与 Apache 帐户相关联的电子邮件帐户。重置密钥的有效期只有 15 分钟,因此请务必在收到密钥后立即使用。
    • 同步 Git 仓库。
    • 使用 OTP 计算器为 OTP 或 S/Key 一次性密码系统生成一次性密码(一般用于 PMC 成员)。
    • 将 Confluence Wiki 空间存档并设置为只读。

不属于 ASF 社区但希望提交有关 ASF 项目产品的 Jira 票据的人员可使用该平台申请 Jira 账户

ASF账户管理
#

如果你想更新账户详情或丢失了账户访问权限,ASF 账户管理可为你提供指导。

支持LDAP的服务
#

Infra 支持许多 LDAP 的 ASF 服务。你可以使用 LDAP 凭据登录这些服务。

孵化项目服务
#

Infra 支持孵化项目。

ASF项目工具
#

Infra 支持一系列工具和服务,以帮助项目开发和支持其应用程序及其社区,包括

  • 每个项目都可以在 Confluence 维基上使用专用空间。
    • 如何管理项目维基空间的用户权限。
    • 如何授予用户编辑维基空间的权限。
  • Reporter 提供有关项目的活动统计和其他信息,并提供编辑工具,帮助你撰写和提交项目的季度董事会报告。
  • 你可以创建并运行项目博客。
  • 你可以建立一个 Slack 频道,用于团队实时讨论。一旦你建立了 Slack 频道,Infra 就可以建立 Slack-Jira 桥接,这样你就可以在频道中收到新的或更新的 Jira 票据通知。
  • 团队可以使用 ASFBot 通过 Internet Relay Chat (IRC) 进行并记录会议。不过,你必须按照 Apache 投票流程,在相应的项目电子邮件列表中对决策进行正式投票。
  • 本地化工具
  • Apache 发布审核工具 (RAT) 可帮助你确认所提议的产品发布符合 ASF 的所有要求。
  • ASF OAuth 系统为希望使用身份验证的服务提供了一个协调中心,而不会对存储敏感用户数据造成安全影响。许多 Apache 服务使用它来验证请求访问的用户是否是项目中的提交者,以及是否拥有对相关系统的合法访问权限。了解更多有关 Apache OAuth 的信息。

版本控制
#

Apache 提供并由 Infra 维护代码库,Apache 项目可使用这些代码库来保证项目代码的安全、团队成员的可访问性以及版本控制。

问题跟踪和功能请求
#

ASF 支持以下用于跟踪问题和功能请求的选项: * Jira * GitHub 问题跟踪功能

由于历史原因,一些项目使用 Bugzilla。我们将继续支持 Bugzilla,但不会为尚未使用它的项目设置。

Apache Allura 是另一个问题跟踪选项。如果你觉得它可以满足你的项目需求,请通过 users@allura.apache.org 邮件列表直接咨询 Allura 项目。

请参阅 issues.apache.org,查看各项目使用的问题列表。

以下是为你的项目申请 bug 和问题跟踪器的方法

以下是撰写优秀错误报告的指南

将你的版本库与Jira票据集成
#

Infra 可以为你的项目激活 Subversion 和 Git 与 Jira 票据的集成

源码库发布者/订阅者服务
#

构建服务
#

Apache 支持并模拟持续集成和持续部署(或 CI/CD)。ASF 构建和支持的服务页面提供了有关 ASF 提供和/或支持的 CI 服务的信息和链接。

其他可考虑的工具:

产品命名
#

请参阅产品名称选择指南

代码签名
#

代码质量
#

SonarCloud 是一款代码质量和安全工具,开源项目可免费使用。它允许对代码质量进行持续检查,因此你的项目可以通过对代码进行静态分析来执行自动审查,以检测 20 多种编程语言中的错误、代码气味和安全漏洞。

你可以检查许多 Apache 项目软件源的状态

有关在 ASF 项目中使用 SonarCloud 的指导,请点击此处

代码分发
#

使用 ASF Nexus Repository Manager 浏览和审查 ASF 项目的代码发布。

发布
#

虚拟服务器
#

Infra 可为项目提供 Ubuntu 虚拟机。

使用nightlies.a.o
#

nightlies.a.o 如其名称所示,是一种 “短期 “存储解决方案。请参阅 nightlies 使用政策

在线投票
#

项目可使用 Apache STeVe 投票系统实例(不使用时离线)。工具名称指的是作为投票选项之一的单一可转移投票系统。为 Infra 开立 Jira 票单,以便为你的项目使用 STeVe 做好准备。

其他工具
#

DNS
#

Infra 管理在 Namecheap 注册的 ASF DNS。

URL短缩器
#

URL 短缩器

分享代码片段
#

Paste 是一项服务,ASF 成员可以发布代码片段或类似的文件摘要,以说明代码问题或供重复使用,通常是与其他项目成员共享。你可以以纯文本形式发布内容,也可以以多种编码和格式发布内容。

机器列表
#

主机密钥和指纹

奇思妙想
#

Apache Whimsy 自称为 “以易于使用的方式提供有关 ASF 和我们项目的组织信息,并帮助 ASF 实现企业流程自动化,使我们众多的志愿者能够更轻松地处理幕后工作”。

Whimsy 有许多对项目管理委员会和个人提交者有用的工具,例如提交者搜索。

总结
#

以上就是 Apache 开源软件基金会用到的一些服务和工具,总体的感觉就是写的很全面,并且每个连接都对应着完整的文档,这也是这种开源协作方式最重要的地方:通读文档。另外这种组织方式对于想参与的人来说很清晰,值得学习。

  • 另外我们看到了一些常见的服务和工具,像是 Jira,Confluence,Slack,Git,GitHub,SonarCloud,Digicert,Nexus。
  • 也看到了不太常见的工具,像在 CI 工具上的选择是 Travis CI 和 Appveyor。
  • 还有一些有意思的工具,像是 URL缩短器,代码片段分享,奇思妙想等工具,从访问的网址来看它们是部署在内部。
  • 由于历史原因,还有项目还在使用 Bugzilla 和 SVN 等工具。

以上 Apache 所使用的服务和工具,借用理财中风险评估等级划分是属于稳健型,而非一味的追求“新”、“开源”和“免费”。

为了文章的可读性,本文做了部分修改和删减。原文在这里


转载本站文章请注明作者和出处,请勿用于任何商业用途。欢迎关注公众号「DevOps攻城狮」

相关文章

如何把 GitHub Release Notes 按照 New features、Bug Fixes ... 进行自动分类
·1355 字·3 分钟
本文将分享针对需要对 GitHub Release Notes 的内容按照标题进行自动分类的两种方式。
Docker Buildx Bake:加速构建和管理多平台镜像的利器
·1624 字·4 分钟
本文介绍 Docker Buildx Bake 的概念、优势、使用场景以及如何使用该功能来加速构建和管理多平台镜像。
详解SBOM:定义、关系、区别、最佳实践和生成工具
·2634 字·6 分钟
本文介绍了SBOM的定义、与SLSA和Black Duck的关系和区别、最佳实践以及可用的生成工具,帮助读者更好地理解和应用SBOM。
如果你是项目成员,是 Fork 原始仓库还是直接原始仓库中修改代码?
·1017 字·3 分钟
本文讨论了在开源项目中,作为项目成员是 Fork 原始仓库还是直接在原始仓库中修改代码的利弊,帮助开发者做出更合适的选择。
SLSA 框架与软件供应链安全防护
·2548 字·6 分钟
本文介绍了 SLSA 框架的概念、目的、等级划分以及如何在软件供应链中应用 SLSA 来提升安全性,帮助读者理解 SLSA 在软件开发和部署中的重要性。
如何在 Jenkins 多分支流水线中实现 [skip ci]
·420 字·1 分钟
本文介绍如何在 Jenkins 多分支流水线中实现 [skip ci] 功能,根据提交信息跳过构建。