本篇介绍的是大名鼎鼎的开源软件基金会 Apache 所使用的服务(Services)和工具(Tools),这或许能帮助你打开视野,在选择工具的时候提供参考。如果你是一名 DevOps、SRE 或是 Infra 工程师,通过本篇文章内容结果帮助你更好的展示团队所提供的服务有哪些,以及窥探到 Apache Infra 是怎样组织和管理他们的。
如果你不太了解 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 基础设施各部分状态的监控工具,则向所有人开放。
这里只列出了几个挺有意思的连接,比如项目网址检查器,它会检查顶级项目是否有 License, Donate, Sponsors, Privacy 等正确的连接。
不属于 ASF 社区但希望提交有关 ASF 项目产品的 Jira 票据的人员可使用该平台申请 Jira 账户[4]。
如果你想更新账户详情或丢失了账户访问权限,ASF 账户管理[5]可为你提供指导。
Infra 支持许多 LDAP 的 ASF 服务[6]。你可以使用 LDAP 凭据登录这些服务。
Infra 支持孵化项目。
Infra 支持一系列工具和服务,以帮助项目开发和支持其应用程序及其社区,包括
Apache 提供并由 Infra 维护代码库,Apache 项目可使用这些代码库来保证项目代码的安全、团队成员的可访问性以及版本控制。
ASF 支持以下用于跟踪问题和功能请求的选项:* Jira[20]* GitHub 问题跟踪功能[21]
由于历史原因,一些项目使用 Bugzilla[22]。我们将继续支持 Bugzilla,但不会为尚未使用它的项目设置。
Apache Allura[23] 是另一个问题跟踪选项。如果你觉得它可以满足你的项目需求,请通过 users@allura.apache.org 邮件列表直接咨询 Allura 项目。
请参阅 issues.apache.org,查看各项目使用的问题列表。
以下是为你的项目申请 bug 和问题跟踪器的方法[24]。
以下是撰写优秀错误报告的指南[25]。
Infra 可以为你的项目激活 Subversion 和 Git 与 Jira 票据的集成[26]。
Apache 支持并模拟持续集成和持续部署(或 CI/CD)。ASF 构建和支持的服务页面提供了有关 ASF 提供和/或支持的 CI 服务的信息和链接。
其他可考虑的工具:
请参阅产品名称选择指南[30]
SonarCloud[35] 是一款代码质量和安全工具,开源项目可免费使用。它允许对代码质量进行持续检查,因此你的项目可以通过对代码进行静态分析来执行自动审查,以检测 20 多种编程语言中的错误、代码气味和安全漏洞。
你可以检查许多 Apache 项目软件源的状态[36]。
有关在 ASF 项目中使用 SonarCloud 的指导,请点击此处[37]。
使用 ASF Nexus Repository Manager[38] 浏览和审查 ASF 项目的代码发布。
Infra 可为项目提供 Ubuntu 虚拟机。
nightlies.a.o 如其名称所示,是一种 "短期 "存储解决方案。请参阅 nightlies 使用政策[45]。
项目可使用 Apache STeVe[46] 投票系统实例(不使用时离线)。工具名称指的是作为投票选项之一的单一可转移投票系统。为 Infra 开立 Jira 票单,以便为你的项目使用 STeVe 做好准备。
Infra 管理在 Namecheap 注册的 ASF DNS。
URL 短缩器[47]
Paste[48] 是一项服务,ASF 成员可以发布代码片段或类似的文件摘要,以说明代码问题或供重复使用,通常是与其他项目成员共享。你可以以纯文本形式发布内容,也可以以多种编码和格式发布内容。
主机密钥和指纹[49]
Apache Whimsy[50] 自称为 "以易于使用的方式提供有关 ASF 和我们项目的组织信息,并帮助 ASF 实现企业流程自动化,使我们众多的志愿者能够更轻松地处理幕后工作"。
Whimsy 有许多对项目管理委员会和个人提交者有用的工具,例如提交者搜索。
以上就是 Apache 开源软件基金会用到的一些服务和工具,总体的感觉就是写的很全面,并且每个连接都对应着完整的文档,这也是这种开源协作方式最重要的地方:通读文档。另外这种组织方式对于想参与的人来说很清晰,值得学习。
以上 Apache 所使用的服务和工具,借用理财中风险评估等级划分是属于稳健型,而非一味的追求“新”、“开源”和“免费”。
为了文章的可读性,本文做了部分修改和删减。原文在这里[51]。
参考资料
[1]
Apache 项目网站检查器: https://whimsy.apache.org/site/
[2]
自助服务系统: https://selfserve.apache.org/mailinglist-new.html
[3]
自助服务平台: https://selfserve.apache.org/
[4]
申请 Jira 账户: https://infra.apache.org/jira-guidelines.html#who
[5]
ASF 账户管理: https://infra.apache.org/account-mgmt.html
[6]
LDAP 的 ASF 服务: https://cwiki.apache.org/confluence/display/INFRA/LDAP+enabled+services+at+the+ASF
[7]
Infra 孵化器介绍: https://infra.apache.org/infra-incubator.html
[8]
项目或产品名称选择指南: https://apache.org/foundation/marks/pmcs.html#naming
[9]
Confluence 维基: https://infra.apache.org/cwiki.html
[10]
本地化工具: https://infra.apache.org/localization.html
[11]
发布审核工具 (RAT): https://creadur.apache.org/rat/
[12]
OAuth: https://oauth.apache.org/api.html
[13]
SVN 代码库的只读 Git 镜像: https://infra.apache.org/git.html
[14]
可写的 Git 代码库: https://infra.apache.org/project-repo-policy.html
[15]
Apache 与 GitHub: https://infra.apache.org/apache-github.html
[16]
GitHub 仓库的访问角色: https://infra.apache.org/github-roles.html
[17]
Subversion 的信息: https://infra.apache.org/svn-basics.html
[18]
Subversion (SVN) 版本库: https://svn.apache.org/repos/asf/
[19]
ViewVC(SVN 主版本库的浏览器界面): https://svn.apache.org/viewvc/
[20]
Jira: https://issues.apache.org/jira
[21]
GitHub 问题跟踪功能: https://guides.github.com/features/issues/
[22]
Bugzilla: https://bz.apache.org/bugzilla/
[23]
Apache Allura: https://allura.apache.org/
[24]
申请 bug 和问题跟踪器的方法: https://infra.apache.org/request-bug-tracker.html
[25]
撰写优秀错误报告的指南: https://infra.apache.org/bug-writing-guide.html
[26]
激活 Subversion 和 Git 与 Jira 票据的集成: https://infra.apache.org/svngit2jira.html
[27]
PyPubSub: https://infra.apache.org/pypubsub.html
[28]
Travis CI: https://travis-ci.org/
[29]
Appveyor: https://www.appveyor.com/
[30]
产品名称选择指南: https://apache.org/foundation/marks/pmcs.html#naming
[31]
访问 Digicert 代码签名服务: https://infra.apache.org/digicert-access.html
[32]
使用 Digicert: https://infra.apache.org/digicert-use.html
[33]
苹果应用程序商店发布: https://cwiki.apache.org/confluence/display/INFRA/Distribution+via+the+Apple+App+Store
[34]
代码签名和发布: https://cwiki.apache.org/confluence/display/INFRA/Code+Signing+and+Publishing
[35]
SonarCloud: https://sonarcloud.io/
[36]
检查许多 Apache 项目软件源的状态: https://sonarcloud.io/organizations/apache/projects
[37]
此处: https://cwiki.apache.org/confluence/display/INFRA/SonarCloud+for+ASF+projects
[38]
Nexus Repository Manager: https://repository.apache.org/#welcome
[39]
当前发布: https://www.apache.org/dyn/closer.lua
[40]
历史发布存档: https://archive.apache.org/
[41]
Rsync 分发镜像: https://infra.apache.org/how-to-mirror.html
[42]
Nexus: https://repository.apache.org/
[43]
虚拟机策略: https://infra.apache.org/vm-policy.html
[44]
申请虚拟机的流程: https://infra.apache.org/vm-for-project.html
[45]
nightlies 使用政策: https://infra.apache.org/nightlies.html
[46]
Apache STeVe: https://steve.apache.org/
[47]
URL 短缩器: https://s.apache.org/
[48]
Paste: https://paste.apache.org/
[49]
主机密钥和指纹: https://infra.apache.org/machines.html
[50]
Apache Whimsy: https://whimsy.apache.org/
[51]
这里: https://infra.apache.org/services.html