# 开源文档的构建、运营和贡献 本文介绍开源站点常用的构建方法,运营思路和吸引贡献者的经验。 ## DaoCloud 自主和捐献的开源站点 本节列出 DaoCloud 自主开源和捐献给社区的一些项目和站点。 ### 自主产品 目前 DaoCloud 的主打产品为云原生操作系统 DCE 5.0 和算力运营管控平台 d.run。 | 网站 | 介绍 | 生成器 | 构建方式 | Repo 地址 | |-----|-----|-------|---------|----------| | [DCE 5.0](https://docs.daocloud.io) | 一款高性能、可扩展的云原生操作系统。其文档站的源代码完全开源 | mkdocs-material | cloudflare/wrangler-action@v3 | https://github.com/DaoCloud/DaoCloud-docs | | [d.run](https://docs.d.run) | AIGC 综合算力运维、大模型服务和运营平台。其文档站的源代码完全开源 | mkdocs-material | cloudflare/wrangler-action@v3 | https://github.com/d-run/drun-docs | ### CNCF Sandbox DaoCloud 捐献给 CNCF 并加入 Sandbox 的开源项目: | 网站 | 介绍 | 生成器 | 构建方式 | Repo 地址 | |-----|-----|-------|---------|----------| | [Clusterpedia](https://clusterpedia.io/) | 这个工具可以方便地检索容器化集群中的所有资源 | Hugo | gh-pages | https://github.com/clusterpedia-io/website | | [HAMi](https://project-hami.io/) | 这是一个算力虚拟化的中间件,可以支持多种架构的 GPU | Docusaurus 3 | gh-pages | https://github.com/Project-HAMi/website | | [HwameiStor](https://hwameistor.io/) | 这是一个云原生化的本地存储方案 | Docusaurus | gh-pages | https://github.com/hwameistor/hwameistor | | [Kubean](https://kubean-io.github.io/kubean/) | 这是基于 Kubespray 构建的 Kubernetes 平台安装工具 | MkDocs | gh-pages | https://github.com/kubean-io/kubean | | [Merbridge](https://merbridge.io/) | 使用 eBPF 加速网格的工具 | Hugo | gh-pages | https://github.com/merbridge/merbridge | | [Piraeus](https://piraeus.io/) | 一个云原生数据仓库 | mkdocs-material | gh-pages | https://github.com/piraeusdatastore/piraeus | | [Spiderpool](https://spidernet-io.github.io/spiderpool/) | 基于 Kubernetes 构建的 Underlay 和 RDMA 网络方案 | mkdocs-material | gh-pages | https://github.com/spidernet-io/spiderpool | ### 更多开源站点 经 DaoCloud 开源,仍在发展中的站点: | 网站 | 介绍 | 生成器 | 构建方式 | Repo 地址 | |-----|-----|-------|---------|----------| | [CloudTTY](https://cloudtty.github.io/cloudtty/) | 这是一个网页版的命令行工具 | 未指定 | gh-pages | https://github.com/cloudtty/cloudtty | | [EgressGateway](https://spidernet-io.github.io/egressgateway/) | 提供固定的 Egress IP 地址方案 | mkdocs-material | gh-pages | https://github.com/spidernet-io/egressgateway | | [kdoctor](https://kdoctor-io.github.io/kdoctor/) | 这是一个 Kubernetes 数据面的测试组件,主动探测集群的功能和性能 | mkdocs-material | gh-pages | https://github.com/kdoctor-io/kdoctor | | [KLTS](https://klts.io/) | 对社区当前 4 个版本之外的 Kubernetes 提供长期维护支持 | Hugo | gh-pages | https://github.com/klts-io | ## 社区热门开源站点 | 网站 | 介绍 | 生成器 | 构建方式 | Repo 地址 | |-----|-----|-------|---------|----------| | [k/website](https://kubernetes.io/) | CNCF 社区的基石,云原生的起点 | Hugo | Netlify | https://github.com/kubernetes/website | | [istio.io](https://istio.io/) | 目前最流行的服务网格 | Hugo | Netlify | https://github.com/istio/istio.io | | [opentelemetry.io](https://opentelemetry.io/) | 收集和导出分布式系统可观测数据的开源工具集 | Hugo | Netlify | https://github.com/open-telemetry/opentelemetry.io | | [vLLM](https://docs.vllm.ai/en/latest/) | 一个高效的开源库,用于加速大语言模型的推理性能 | Sphinx | Read the Docs | https://github.com/vllm-project/vllm | | [Pytorch](https://pytorch.org/) | star 87k,一个开源的深度学习框架,广泛用于研究和生产环境中,以其动态计算图和易用性著称 | Hugo | 未指定 | https://github.com/pytorch/pytorch | | [huggingface](https://huggingface.co/) | star 140k,汇总了全世界的大模型 | Docusaurus | .github/workflows | https://github.com/huggingface/transformers | | [KWOK](https://kwok.sigs.k8s.io/) | DaoCloud 捐献给 kubernetes-sigs 的模拟测试项目 | Hugo | Netlify | https://github.com/kubernetes-sigs/kwok | | [Kueue](https://kueue.sigs.k8s.io/) | DaoCloud 与 kubernetes-sigs 联合维护的 Kubernetes 原生的 Job 排队管理器 | Hugo | Netlify | https://github.com/kubernetes-sigs/kueue | | [LWS](https://github.com/kubernetes-sigs/lws) | DaoCloud 与 kubernetes-sigs 联合维护,无缝兼容 vLLM、SGLang 等主流架构,一键部署企业级 AI 服务 | 无 | Netlify | https://github.com/kubernetes-sigs/lws | ### 静态生成器对比 仅列出一些上文提及的静态生成器: | 项目名称 | Star 数量 | 编写语言 | 开源时间 | 体量大小 | Repo 地址 | |-----------|-----------|---------|--------|--------------|----------| | **Hugo** | 78.1k | Go | 2014 年 | **超轻量级,极快** | [Hugo repo](https://github.com/gohugoio/hugo) | | **MkDocs** | 19.9k | Python | 2014 年 | **轻量级** | [MkDocs repo](https://github.com/mkdocs/mkdocs) | | **Docusaurus** | 58.4k | React | 2017 年 | **中等,依赖 React** | [Docusaurus repo](https://github.com/facebook/docusaurus) | | **Sphinx** | 6.8k | Python | 2008 年 | **中等,功能强大** | [Sphinx repo](https://github.com/sphinx-doc/sphinx) | ### 构建方式对比 | **构建方式** | **优点** | **缺点** | |----------------|---------|---------| | **GitHub Pages** | ✅ 免费托管,适合开源项目
✅ 与 GitHub 仓库深度集成,自动部署
✅ 支持 Jekyll,可直接渲染 Markdown 文件 | ❌ 仅支持静态网站,功能较单一
❌ 自定义域名需手动配置 HTTPS
❌ CI/CD 能力有限,难以满足复杂部署需求 | | **Netlify** | ✅ 支持自动化 CI/CD,构建、预览、部署一体化
✅ 绑定 Git 仓库,支持多种静态站点生成器
✅ 提供 Serverless Functions,可支持动态功能 | ❌ 免费额度有限,流量或构建超出需付费
❌ 部署日志较简洁,调试复杂构建问题时可能不够直观
❌ 需要额外配置 DNS 以充分利用 Edge Network | | **Cloudflare Pages** | ✅ 全球 CDN 加速,特别适合国内用户
✅ 内置 DDoS 防护,安全性高
✅ 支持 Pages Functions,可结合 Workers 运行动态逻辑 | ❌ 免费版功能有限,部分高级功能需订阅付费方案
❌ 部署过程较 Netlify 复杂,需手动配置构建和路由
❌ 部分第三方插件或工具兼容性较差 | ### 开源站点常见 Bot 在 GitHub 上的开源项目(如 Kubernetes 和 Transformers)中,常见的机器人(bots)用于自动化 CI/CD、代码质量检查、发布管理等。以下是一些常见的 bot 及其用途: | 分类 | Bot 名称 | 功能描述 | |-----|----------|--------| | **代码质量 & Lint** | GitHub Actions Bots | 运行 `black`、`flake8`、`eslint`、`prettier` 等 lint 任务,确保代码风格一致 | | | LGTM Bot | 分析代码质量,检测潜在的安全漏洞 | | | Codecov Bot | 检查测试覆盖率,并在 PR 中提供覆盖率变化的报告 | | | Prettier Bot | 自动格式化 JavaScript、Markdown 等文件,保持代码风格一致 | | **PR & Issue 管理** | k8s-ci-robot(Prow) | Kubernetes 及 CNCF 生态常用,自动管理 PR、CI/CD 任务 | | | Stale Bot(probot-stale)| 自动关闭长期未活动的 Issue 和 PR,保持项目整洁 | | | CLAassistant Bot | 检查贡献者是否签署了贡献者许可协议(CLA) | | | welcome Bot(probot-welcome) | 对新贡献者的首个 PR 发送欢迎信息 | | **版本管理 & Release** | Release Drafter | 自动生成 Release Notes,归类 PR 变更 | | | Semantic Release | 根据 commit 信息自动管理版本号,并发布新版本 | | | Dependabot | 检测依赖项是否有更新,并自动创建 PR 进行升级 | | **安全 & 依赖管理** | Snyk Bot | 扫描项目的依赖项,检测安全漏洞 | | | GitHub Security Bot(Security Alerts) | 自动提醒安全漏洞,并建议修复方案 | 这些 Bot 大多基于 GitHub Actions 或 Prow,可用于提升项目的自动化程度、代码质量和安全性。 ## 开源站点运营思考 吸引贡献者的一些举措: - [构建 Mentor 体系](https://contribute.cncf.io/about/mentoring/),培训贡献者成长 - 为优秀贡献者提供 d.run 等试用的时间和权限 - 评选公司外部的年度贡献者,并给予 [Badge](https://www.credly.com/users/michael-yao0422/) 或试用奖励 - 定期组织线上线下开源会议,邀请贡献者参与,交流开源技术,拓展人脉资源 文档是拓展开源影响力的重要组成,参见 [2024 中国开源年度报告](./open-source-report.md#35-2024-10)和 [2024 年度中国企业黑马 DaoCloud 的解读](./open-source-report.md#36-2024-openrank-10)。 ![DaoCloud 全国排名第 5](https://hackmd.io/_uploads/rkA0CtQU1g.png) ## 开源贡献 在开源社区,贡献不仅仅局限于代码,还包括文档、测试、用户反馈等多个方面。 以下是一些主要的贡献方式,以及如何有效地参与到开源项目中。 ### 文档贡献 | 贡献类型 | 具体操作 | |---------|--------| | 新编文档 | 翻阅 Issue、Release notes,了解最近的文档需求 | | 修复错误 | 发现文档中的错别字、格式问题或过时信息,直接提交 PR 进行修复 | | 改进可读性 | - 通过增加示例、优化表述方式,使文档更加易读和易用 | | | - 采用 Markdown 等格式,提高排版质量 | | 本地化 | - 参与项目的 i18n(国际化)工作,贡献多语言版本的文档 | | | - 例如 Kubernetes、Istio 等项目都设有不同语言的 SIG(Special Interest Group) | ### 社区互动也是一种贡献 | 贡献类型 | 具体操作 | |---------|--------| | **回答问题** | - 在 GitHub Discussions、Slack、论坛、微信群等地方,帮助解答新手问题 | | | - 贡献 FAQ(常见问题解答),降低维护者的支持成本 | | **组织和参与活动** | - 参与线上或线下的开源会议,例如 KubeCon、Open Source Summit | | | - 组织 meetup、workshop,推广项目和分享经验 | ### 贡献奖励机制 为了激励贡献者,开源项目通常会设置奖励机制,如: - **贡献者徽章(Badge)**:如 CNCF 的贡献者认证 - **T-shirt & 周边**:许多开源项目会赠送纪念品给活跃贡献者 - **Mentor 计划**:为新手贡献者提供指导,加速成长 - **优先访问权限**:如 d.run 等云服务可为活跃贡献者提供试用额度 ### 如何开始? | 步骤 | 描述 | |-----|------| | 选择感兴趣的项目 | 关注 CNCF Landscape、GitHub Trending,找到与你的技术栈匹配的项目 | | 阅读贡献指南 | 每个开源项目通常都有 `CONTRIBUTING.md`,阅读并遵循贡献流程 | | 加入社区 | 订阅邮件列表、加入 Slack / Discord、参与定期会议 | | 从小任务开始 | 先贡献文档、小 bug 修复,逐步熟悉项目 | | 持续贡献 | 通过多次贡献建立信誉,成为项目的长期贡献者,甚至晋升为 Maintainer | 开源贡献不仅能提升技术能力,还能拓展人脉,为职业发展打开更多机会。希望更多开发者加入开源社区,共同推动技术进步! 写在最后,开源文档站不仅能扩大企业的影响范围,还能促进产品和文档的自我优化和演进。 在透明、开放的环境下,用户和开发者可以直接反馈问题,推动改进,甚至贡献内容,使文档更具时效性和实用性。 同时,一个活跃的开源文档站点也能帮助企业建立更紧密的社区联系,增强用户粘性,形成良性的技术生态。 唯有持续更新、紧跟行业动态,才能确保文档的生命力,使产品保持长期的竞争力和影响力。