共计 2995 个字符,预计需要花费 8 分钟才能阅读完成。
周鹏飞,CNCF Ambassador,KubeSphere SIG-Advocacy Lead。
周鹏飞作为一个开源相干从业者,认为开源其实是一把双刃剑,开源并非只有大家上述看到的好处。开源还有很多“阴暗面”和让人劝退的中央,特地是在国内开源商业化环境不佳,比方开源用户的付费意识和对开源的了解认知无限的状况下,要做好一个开源我的项目和开源社区,最终实现开源商业化的正向增长,这绝非易事。
在我的项目晚期,开源我的项目在寰球的推广与技术流传对很多开源我的项目的开创团队和维护者而言,其实也十分有挑战。周鹏飞在之前四年作为晚期团队成员深刻参加过 KubeSphere 开源我的项目、社区与生态从零到一的建设。因而,此次分享更多地以 KubeSphere 社区为例介绍他们的教训。
最近两年,开源作为一种新的凋谢合作模式,在国内疾速被越来越多的大厂和守业公司承受和推崇。咱们看到各个大厂先后成立的开源办公室,以及 VC 们对各家开源商业化初创企业的继续投入,让“开源”这个关键词备受关注。
事实上,开源这个事件也是千人千面。在企业看来,开源能够通过跨组织凋谢合作的形式帮忙我的项目取得更多的奉献,建设生态;在开发者看来,参加或发动开源我的项目能给本人带来好的技术口碑和职业倒退的竞争力;而在局部 VC 看来,借助开源社区可能疾速迭代产品和推广,造成一种新的获客增长和商业模式。
KubeSphere 是基于 Kubernetes 的一个发行版,愿景是打造一个云原生分布式操作系统,帮忙用户更不便地装置、应用和运维 Kubernetes,并在 Kubernetes 之上实现利用的部署、散发和生命周期治理。最近这两年,KubeSphere 开源我的项目和社区的倒退都十分疾速,至今已有近百万下载量,总的贡献者人数约 300 人,社区有三个子项目 OpenFunction、OpenELB、Fluent Operator 都进入了 CNCF 孵化。开源是一场有限的游戏,咱们才刚刚开始,接下来咱们来聊聊如何从零做好开源我的项目的技术流传。
从写好 README 开始
对于开源我的项目来说,README 是开发者的第一印象。为什么要强调开源我的项目 README 的重要性呢?因为很多开发者,其实对文档类的货色是不太器重。然而,咱们最起码要确保 README 的内容品质,因为它是一个开源我的项目的第一张名片。特地是在项目前期没有专门的人去做我的项目的布道和推广的时候,肯定要把 README 文档写得足够清晰简洁,文档里 Demo 和 Quick Start 肯定要非常简单易用。从我的项目官网的第三方流量长期察看来看,来自 GitHub 的用户关注度是最高的。
Kelsey Hightower 之前说过一句话:Documentation is a feature。对开发者来说,文档也是最实用的 marketing 资料。依据 CNCF 调研,当开发者去学习一项新的技术或开源我的项目,文档是排名第一位的。
一个简洁易读的 README 是什么样的规范?比方在 10 分钟内能不能让一个新的用户疾速理解你的我的项目,一刻钟内能不能把这个我的项目部署起来。其实在 README 外面能够嵌入很多动态化的元素。比方 Gif 动图、表情符号、视频等。此外,还能够退出资源导航,将 README 做的和网站一样。须要特地留神一些不太适合的行为,比方在 README 外面放一些商业产品的宣传,或者是中文英文混用,内容过于简短或简短,形容与定位不清晰等等。
对于如何写好最根底的开源我的项目文档,谭中意老师也发动和组织了几位有过业余技术文档写作的业内人士编写了一个中文版的《开源技术我的项目文档指南》(github.com/CommunityLe… 老师也有一篇文章《开源软件的技术写作》(www.tisonkun.org/2022/05/08/…
找到前 1000 个种子用户
HashiCorp 的联结创始人 Armon 说他能分明地记得他们第一个产品的前一千名种子用户的名字。换句话说就是要跟晚期的种子用户放弃更严密的更高效的沟通,理解用户实在的产品需要和痛点,与用户一起解决实在。
在开源我的项目冷启动的后期推广布道和技术流传次要分为四大局部:
第一点是对于线上线下的技术流动,加入一些我的项目相干畛域的线下流动会更容易接触到这个畛域的关注者,在线下进行交换和分享更容易与开发者建设信赖。比方云原生畛域的 KubeCon、ApacheCon Asia、Kubernetes Community Days、Open Source Summit 等都是十分出名的业内流动。
第二点就是要理解开发者所关注的平台,理解国内和海内哪些技术媒体和开发者社区是比拟风行的。酒香也怕巷子深,输入了好的技术布道内容还须要找到更匹配的平台去公布和流传,才更容易取得新用户的关注度。我在这里总结了国内外几个比拟沉闷的适宜做技术内容流传的开发者社区。
第三点是刚刚提到的要有业余的文档和教程,文档包含用户指南和贡献者指南。文档的内容模式也能够丰盛多样,除了惯例的图文以外,用“asciinema”录制命令口头画也很酷,能够把命令口头画嵌入到官网中。如果是带用户界面的开源我的项目,录制一些操作视频和中立的技术教程公布到 YouTube 或者 B 站上成果通常也不错。
最初一点是重视晋升内容的 SEO 和社交媒体经营,这一点可能偏 Marketing 的角度,但也的确是十分有必要去关注的。如何让开发者在搜索引擎通过高频的关键词就能在排名靠前的搜寻后果中疾速找到你的我的项目官网内容十分要害。Twitter 也是很多开源社区喜爱的社媒平台,咱们也常常用 Twitter 跟社区的用户和合作伙伴进行公开的互动。
造就衰弱的开发者关系与生态
当社区有了开发者退出后,怎么把开发者留下来并深度参加社区?这可能是很多做开源社区的敌人十分关怀的问题,衰弱的开发者关系和沉闷的社区生态很要害。这里所谓开发者关系能够分类两类,别离是社区与开源用户和贡献者之间的开发者关系,这就十分依赖咱们常常提到的开发者体验。对于一些资深用户而言,即便他们不会写代码,通常咱们也能够激励用户参加非代码奉献,比方测试、文档、国际化、翻译、用户案例分享、线下演讲等等;而对于一些深度参加的代码贡献者,在 Apache 基金会和 CNCF 基金会都有相似的认可机制,比方邀请贡献者退出社区成为 Member、PMC、Maintainer,往往这样的社区 title 会让社区成员取得十分大的认可和信任感。
社区通常是一个大型而离散的虚构组织,而通过组织一些小范畴的线下或线上的趣味探讨小组和 Meetup 也可能帮忙气味相投的人群在一起合作,建设共识。比方 KubeSphere 社区平时会组织一些特地兴趣小组的 SIG 讨论组和例会,并且日程在 KubeSphere 官网的日程表上也能够公开拜访,中文例会的回放会上传到 B 站,这个也是学习 K8s 社区的玩法。
对于社区生态,咱们十分关注咱们的开源产品与上下游的支流开源我的项目的相互集成,以及跟云厂商的单干。当开源软件相互集成后,两个社区彼此都会很乐意去帮忙相互推广。此外,咱们还发现海内的云厂商单干心态会更加凋谢,比方 KubeSphere 跟 AWS、Azure、DigitalOcean 和 Civo Cloud 的利用商店都有上架,与其私有云上的托管 K8s 服务提供了集成计划,这也为 KubeSphere 在各大云上的疾速部署带来便当,以及各个云上的用户。