前言 ⚡️
作为一个很小的工作小组,维护着 KusionStack
这个开源项目,日常工作中要同时兼顾研发和运营不是一件容易的事儿。所以团队需要借助各种工具变得更加高效、有序,找到正确的工具就像周一早上的第一杯咖啡一样重要 ☕️。
本文记录了团队过去用到的种种工具,从 GitHub
这样的代码托管平台,到 Slack
和 Reddit
这些用户交流社区,到 OSS Insight
这样的洞察工具,再到生成式 AI 的加持,正是这些工具让一切变得可能。
研发 🛠
GitHub - 代码托管
没什么好说的,Github 是做开源项目的首选,“全球最大同性交友网站”的戏称不是白叫的(狗头.jpg)。
值得一提的是,Github 提供的配套工具也很能打,后面会介绍。
Github Action - CICD
在 2018 年之前,如果 GitHub 开源项目需要搭建 CI/CD
流水线,可能会选择第三方服务,比如 Travis CI
、Circle CI
等。不过自从 GitHub Action
推出后,它显然成为了最优选。
Github Action
可以做很多事情,我们通过它搭建了 KusionStack
所有项目的测试、代码扫描、E2E、合规检查、安全扫描、构建发布等自动化“一条龙”研发工作流。
针对 Public 的仓库,Github Action
是免费的,无使用限制。
体验下来,Github Action
稳定可靠,生态丰富,文档完善,YYDS 👍
Github Projects - 项目管理
GitHub Projects
是 GitHub 提供的一个项目管理工具,它可以基于 Issue 进行更灵活、更全面的项目管理。
对于完全围绕着 Github 进行日常研发工作的小型团队来说,通过 Github Projects
进行项目管理是个不错的选择,而且完全够用。
我们基于 Github Projects
搭建了一套日常迭代的工作流:发现问题->创建 Issue->关联 Project->评估 Estimate->定期 Review & Schedule,循环往复,简单有效。
对 Github Projects
,我们的感受是简单、好用、够用 👍
Docusaurus - 官网构建
运营一个开源项目,通常需要一个官方网站,为用户聚合项目介绍、使用指南、贡献指南、最新动态(博客)等相关信息。
社区中有很多搭建官方网站(文档站点)的开源工具,其中最流行的是 Facebook 推出的 Docusaurus
框架,一些知名开源项目比如 React Native
、KubeVela
也都采用了 Docusaurus
搭建官网。
我们使用 Docusaurus
搭建官网一段时间后,发现它可以一定程度上解放双手,你不需要在文档版本化、文档搜索、第三方集成等站点功能问题上花费精力,因为 Docusaurus
对它们都提供了内置支持,作为项目维护者只需要专注在文档编写上:编写 Markdown,提交 PR,合并,结束。
PS:当然如果你有资本 💰 从零设计开发一个官网网站,那当我没说。
Algolia - 文档搜索
Algolia
提供专业的文档搜索,只需要在 Docusaurus
中简单配置就可以开启。
Vercel - 服务部署
我们的官网通过 Vercel
部署,其实一开始采用的是 Github Page
,但是发现在国内访问速度不佳(基本打不开),于是选择了综合体验较好的 Vercel
。
Vercel
提供免费的静态站点部署服务,部署时会识别出官网使用的框架并加载对应的配置,3min 完成部署,体验十分丝滑。
使用过程中,有两个点值得夸赞:
1. 当你发起一次文档修改的 PR 时,
Vercel
会生成一个预览链接以评论的形式追加到 PR 的信息流中,直观查看变更效果Vercel 机器人留的评论 🤖 2. PR 合并后
Vercel
会自动发起一次部署,更新到主干最新版本,真正的 GitOps 体验Vercel 丝滑的 GitOps 体验
分析和洞察 📊
Google Analytics - 流量分析
Docusaurus
对 Google Analytics
提供了内置支持,只需要一个插件就可以快速接入。接入后我们发现 Google Analytics
提供了相当丰富的报表,方便对官网数据进行全面的统计分析,比如文档 PV/UV 统计、追踪流量来源、用户地理位置分析、文档好评率等,通过分析这些数据指标,我们可以更好的对开源项目进行运营决策。
Google Analytics
Github Insight - 开源仓库访问量统计
Github 内置了仓库访问量统计,包含 Clone 数量、访问量、来源分析等一些简单指标。
Github Insight
OSS Insight - 研发洞察
Oss Insight
是 PingCap
旗下的知名开源洞察产品,数据丰富全面,常用的开源研发洞察基本看这个就行。洞察指标包括:Star 来源区域分析、Issue 分析、PullRequest 分析、贡献者来源分析等。
钉钉 & Github Webhook - 研发洞察
我们使用钉钉订阅 Github Webhook
实时捕捉开源项目的研发动态。
开源小工具 - 下载量统计
如果你的开源项目有制品产出,比如 binary
、tar.gz
包,你可以通过一些开源小工具统计每个版本的制品下载量,这里列出几个常用的小工具,它们的功能都差不多:
• https://qii404.me/github-release-statistics
• http://gra.caldis.me
• https://hanadigital.github.io/grev
feedback-widget - 满意度统计
如果想跟踪每篇官网文章的满意度,需要在文章最后添加一个反馈组件,但是 Docusaurus
官方目前没有内置支持,原因是不想和“第三方平台太过耦合”,但好在 Docusaurus
足够灵活,只需要稍微写点 React 代码,就可以拥有一个文章反馈组件,同时支持通过 Google Analytics
自动统计每篇文章的满意度。
提供反馈组件后,当用户点击文章页面底部的“喜欢”或“不喜欢”按钮时,组件会自动将事件发送到 Google Analytics
,稍后我们便可以在 Google Analytics
控制台中查看到这些事件的统计数据。
社区运营 📚
Medium - 博客
不管是从排版还是社区曝光度来说,Medium
都很适合作为博客站点,于是我们干脆把博客发布这件事情从 Docusaurus
全部搬到了 Medium
,当你在官网点击【Blog】按钮,会直接跳转到 KusionStack Medium 主页。
Reddit - 论坛
Reddit
相当于国外版的贴吧,但是技术氛围相当活跃,一些最流行的技术讨论经常会在 Reddit
中发起。
Hacker News - 论坛
Hacker News
同样是国外在技术圈十分活跃的论坛,别看排版简单古老,充斥着一种上个世纪 BBS 风,但是内容硬核,经常可以看到非常有价值的讨论。
Wechat - IM、公众号
国内使用最多的 IM 工具是微信,所以我们建立了多个微信群,用于和社区用户的日常沟通,同时微信公众号也是重要的内容运营渠道。
Slack - IM
和国外用户的日常沟通使用 Slack
,同时也会通过 Slack
参与到其它社区的讨论中。
钉钉 - IM、内部会议
团队内部日常沟通和会议使用钉钉。
Stable Diffusion XL - 吉祥物设计
在运营的过程中,我们也尝试过使用生成式 AI 帮助设计我们的吉祥物,其中一个就是刚刚发布的 Stable Diffusion XL
。虽然最后没有采用,但是它的方案还是给了我们很多设计灵感,让没有艺术细胞的我们也体验了一把创造的快乐。
我们使用了 Stable Diffusion XL
的迭代功能对生成的图像细节微调,调整颜色对比度,改变表情或服饰,甚至可以添加一些独特的元素,比如骑在摩托车上戴着墨镜的酷酷珊瑚!
ChatGPT - 写代码、Logo 设计、翻译,以及所有
ChatGPT
的强大不再赘述,我们会用 ChatGPT
去做 UT 的补齐、代码的优化、文档和文章的国际化等等,一定程度上从重复工作中解放了我们的双手。我们也尝试过用 GPTs
里的 LogoCreator
为产品设计一个 Logo (虽然最后并没有采用),甚至这篇文章的封面也是由 GPT4
中的 DALL·E
辅助生成的。
我们未来也会去做更多的尝试,用 AI 解放更多的生产力。