作为Apache顶级项目、Apache基金会首个数据库中间件,Apache ShardingSphere无论在国内还是在国际都有着十分广泛的影响力。不久前,在【T·TALK】全年系列直播活动的第四期中,我们邀请到了Apache ShardingSphere的核心初创成员、Apache ShardingSphere PMC、SphereEx联合创始人兼CTO潘娟老师,为我们讲述Apache顶级项目ShardingSphere开源之路背后的故事。【T·TALK】也将本次直播的核心内容进行了整理:
(关注B站,观看往期直播回顾)
ShardingSphere的Apache之旅
提到Apache ShardingSphere,关注全球数据库应用领域的同学应该对它比较熟悉。ShardingSphere是一套开源的分布式数据库解决方案组成的灵活生态圈,我们所倡导的理念是Database Plus,也就是在Database之上构建一套全新的能够为数据库提供增强服务的生态层,我们希望ShardingSphere在这层生态中可以做任何事情,这也是一直以来我们所努力的方向。
另一方面,作为一款开源项目,ShardingSphere在开源之路上也已走过了六年时间。时至今日,ShardingSphere在GitHub上的star数已经超过了15K,并拥有超过300人的贡献者群体。
在ShardingSphere的开源历程中,最具里程碑意义的事件,大概就是2018至2020年期间,ShardingSphere进入了Apache基金会,并在历经了17个月的孵化器之旅后顺利毕业,成为了Apache的顶级项目。也正是这段经历,让ShardingSphere和我都得到了许多的历练与成长。
起初,我们捐赠ShardingSphere进Apache基金会的时候很困难,当时国内有资格能够带领项目进行捐赠的导师并不多,我们摸索了很久,直到遇到了姜宁老师与SkyWalking的吴晟老师,他们给了我们很多指导与建议,并帮助ShardingSphere通过了层层审核,最终成功进入了Apache基金会。我也是从那个时候开始加入到Apache基金会去做相关的事情。
(潘娟、张亮与姜宁、吴晟一起)
当项目成功进入孵化器后,作为“家长”,接下来要面临的就是如何让这个“Baby”长大,这时需要做的便不再只是贡献代码这一件事,还需要承担起社区的建设与运营工作。帮助社区提高知名度,吸纳更多的小伙伴,这也是推进项目发展中非常重要的事情,只有大家一起去做贡献,项目才能变得越来越好。
但社区运营这项工作其实远比写代码更复杂,需要我们在代码层面之外考虑更多方面。当时ShardingSphere 社区就曾遇到过这方面问题,我和另一位创始人张亮,很爱这个项目,想把它做好,因此我们对代码的质量要求非常严格,但这种严格却阻碍了很多新人的加入,当时有很长的一段时间,ShardingSphere的进展都是靠我和张亮老师去支撑。
为了缓解这种尴尬,我们也做了很多尝试与调整,包括去做清晰的代码指导意见,加快回复速度,把一些参与流程类的文档放到最显眼的位置,甚至有时候要降低门槛,去布置更多新手任务,让想要加入进来的人能够进行过渡。
今天,大家可以看到ShardingSphere无论代码还是文档都是非常优雅完善的,这都是我们过去五六年积累下来的东西。当然,除内功外,做meetup、做布道等外功也是必不可少的。特别是对国内来说,早些年大家对开源往往都是“用代码,不要指望我去无偿贡献”、“你是在剽窃我的劳动成果吗?”等态度和想法,我们只有通过在代码之外去做更多的理念、技术布道来扭转这些负面的意识和声音,才能使更多人正确地认识开源并愿意参与其中。
总之,无论是写代码,还是做community的事情,其实都是赋予项目生命力的过程,这个过程会给你带来收获。最开始参与开源的时候,我真的完全是因为兴趣参与进来,但后来慢慢成为了习惯。在这个过程中,我能够清晰地感觉到自己技能和视野的提升,这段经历无论对项目还是对我自身来说都是意义非凡的。
再后来,当项目已经发展的较为成熟后,要考虑的就是毕业了。和在学校一样,项目毕业同样也会面临各种考核,包括在孵化期间,项目是否正常的按照法律法规进行 release;社区是否已具备了自治能力以及积极的可持续发展能力;项目的版权、brand 有没有符合规范等。如果没有问题,就可以向基金会提出毕业,但如果上述某些地方没有做好,就会被打回,然后重做,再提。当然,在项目毕业之后,你依然要持续地去让社区发光发热,为大家去提供价值。这大概就是 ShardingSphere 当年所走过的一条开源之路。
SphereEx的商业化实践
在此之后,随着ShardingSphere的持续发展与社区的不断壮大,越来越多的新想法被注入到项目之中。但与此同时,越来越多的研发资源需求也逐渐成为了ShardingSphere发展道路上的一道无形障碍。2021年,为了打破这样的阻碍,继续把ShardingSphere做得更好,我和张亮老师以ShardingSphere为基础创办了SphereEx公司,我们希望借助商业化的力量去支持ShardingSphere的持续发展,通过SphereEx为ShardingSphere注入更多新的活力。
由于ShardingSphere项目本身足够成熟,因此我们将所有的基础框架、功能都放在开源里,我本身是一个热爱开源的人,我从开源中受益,所以我希望尽自己所能地去让社区的其他同学受益,这也是SphereEx对待开源的态度。而面向商业客户的部分,我们会选择提供一些在相对特殊的场景下的面向小众企业用户的功能,包括我们会给用户提供除了核心ShardingSphere之外,更多高级功能和一些全套的解决方案,这是SphereEx对开源与商业的不同部署。
SphereEx的创始成员,包括我们所招聘的同学,许多都是来自于ShardingSphere的开源社区。我在进行邀请的时候,会很直接地说,你已经熟悉了开源社区的玩法,如果你想换一份工作,以开源工程师作为你的下一个职业选择,我很欢迎,我希望你能加入到SphereEx,我会付全款让你去做部分开源、部分商业。我也希望通过这种方式,能够让更多热爱开源的小伙伴有机会全身心地投入其中,去做更有趣、更有价值的事情。
对于身边的同学,我们会尽量帮助大家提高综合素质,我会推荐研发同学去写技术博客,去conference或meetup上做一些分享。让运营的同学帮助技术同学做二次编辑、审稿。
在SphereEx,每天的工作内容、接触到的人、完成的目标、工作的氛围,都和很多传统大厂有所不同。我们更愿意花时间去打造技术本身,而不是要赶着上线。即使你今天没写代码,就思考了一个方案,就写了一篇文章,就做了一个分享,我都觉得没有问题,这些都是很有意义的事情。
未来,SphereEx还会继续探索开源商业化的道路,我们也将尝试和云厂商合作,在云上提供我们的产品,包括海外的一些Cloud行为,这些都会在今后以SphereEx的身份去持续输出。SphereEx也会继续在Apache ShardingSphere背后去做支撑,去赞助社区的一些活动,举办更多更有价值的meetup。我也真诚地希望,有了这个公司的支撑,ShardingSphere社区能够变得更好。
“娟”to“娟神”的成长之路
最后一个话题,抛开PMC、创始人、CTO这些title,我还想以个人的身份讲一些小秘密,也算是对我成长经验的一些总结和分享。熟悉我的同学可能知道,我是DBA出身,做DBA、做运维其实是一件很辛苦的事,而且从晋升的渠道来说,相比于其他岗位,DBA也不太容易出彩,晋升的机会和概率都不算多。这也是为什么大多数人,尤其是女生不愿意选择这个岗位的原因。
我做DBA时也是一样,可以说那时才知道什么叫痛苦。记得初入职场的时候,当时有一个业务,要从凌晨一点迁到早晨五点,期间是没法休息的。又因为当时我跟业务同学配合得不是很好,迁移过程出了问题,可能需要回滚,相当于今天和之前的很多努力都白废了。当时真的非常崩溃,加上一天没有合过眼,三点多的时候真的坚持不住,我直接哭了,坐在那说了很多如”这事我不干了,简直不是人干的事,一点价值也没有”等等情绪类的话。
但是埋怨归埋怨,第二天起来后你面临的还是同样的局面,还是要去上班,依然要自己去面对这个业务,依然要完成没做好的工作。这件事给我上了很重要的一课,既然你在最开始就已经确定好要做这个行业,有些事就不是你有资格去做选择的,你必须去面对一些挑战,去承担你该承担的工作,不做就是不负责任的表现,并且在做所有事之前,充分的准备都是必要的。自此之后,对待任何事,我都会始终保持谨慎的态度,做任何操作前,也都会与负责同事进行反复确认。这件事无论对我个人还是对我的职业生涯都有非常重要的影响。
也正是在这件事之后,我的抗压能力、做事情的能力有了非常大的提升。当时我是团队里唯一的女生,一开始大家都叫我“娟”,后来DBA做得比较好了,叫我“娟姐”,再后来慢慢变成“娟爷”,直到有一天又变成“娟神”。其实我对title并不是很在意,有些可能就是大家互相之间出于客气为了表示尊重叫的,有些则算是开个玩笑,这些都没问题。但称号的改变其实也能说明很多东西,至少说明你在一步步成长,一步步把自己的事情做得更好。我不在乎title,但我重视这个过程,这个经历。我认为有的时候成长、经历是比结果更重要的。
我在创业的时候,有时需要去做布道,去海外做演讲,我会发现五六十人的分享者名单中,很难看到华人身影,有时只有我一个人。当然这可能是因为语言、跨领域等缘故。但我觉得如今国内开源已经发展得如此火热了,我们的技术在海外也得到了大家的认可,我们应该去做更多的尝试,去将我们好的东西呈现到世界的舞台之上。只有这样,才能证明我们的成长,证明我们可以去做更多的事。同时,这些同学也将有机会联合起来,一起做更伟大的事情,这将会形成推动整个行业发展的力量。
最后,我也真诚地希望开源领域的工作者、贡献者,以及即将踏入这一领域的同学能够在未来共同努力,坚持我们的信仰,为这个领域,这个行业去创造更多的价值,加油!
嘉宾介绍
潘娟,SphereEx 联合创始人 & CTO, Apache Member & Incubator mentor, Apache ShardingSphere PMC, AWS Data Hero, 中国木兰开源社区导师,腾讯TVP。曾负责京东数科数据库智能平台的设计与研发,现专注于分布式数据库 & 中间件生态及开源领域。被评为《2020 中国开源先锋人物》,2021 OSCAR 尖峰开源人物。
会议推荐
在即将于5月14日-15日在北京举办的WOT全球技术创新大会2022中,潘娟老师也将作为演讲嘉宾莅临大会“架构设计与架构实践”专场。届时,潘娟老师将围绕Database Plus的理念,为大家进一步介绍Apache ShardingSphere的架构设计理念与设计哲学。
此外,快狗打车运维效能总监唐斌斌、转转架构部负责人杜云杰、腾讯云产品架构师崔凯三位业界资深技术专家,也将在这一专题中为大家带来精彩的技术分享。感兴趣的同学可扫描下图二维码了解更多参会信息。