Milvus Committer Ji Bin: Participating in open source is an investment in yourself



✏️ Editor's note: 

In March 2022, Ji Bin officially joined the ranks of Milvus committers after the unanimous vote of the community.

In the past 3 months, in addition to submitting 40 PRs for the community , he is also active in the Milvus user group, helping answer technical questions from many users.

In the next article, Bin Ji will share with us how he grew from an "open source tracker" to a committer for the Milvus open source project.


Who is Ji Bin

First of all, let me briefly introduce myself. My name is Ji Bin, a system engineer at Unisight Huazhi. Currently, I am in charge of software pre-research work related to Unisinsight cloud native and artificial intelligence. Previously, I worked on 5G and cloud-related software development at Nokia, and was keen to track participation in open source. In addition to writing code, I will also summarize some of what I have learned in my public account "Code Memo", and friends who are interested can go and have a look. Usually I like to study coffee, drink tea and cook.

Getting to Know the Milvus Community

At first, our company hoped to do an internal project to improve the quality of the code, we needed to use some pattern features to compare the historical code, and some vector comparison techniques would be used, so we went to find it at that time. There are some open source solutions. Although this project was not completed in the end, this opportunity made us understand the existence of the vector database Milvus. Later, we gradually tried to use Milvus in our external products, and now we actually use Milvus 1.1.

my open source path

I first participated in open source contributions in 2014, and the project I contributed to was Facebook-thrift, when the code was still submitted via email. At that time, I just thought that if the project is upgraded in the future, I can seamlessly upgrade the new version of thrift, so I tried to submit jira and patch to the community, but I didn't expect it to be merged into the mainline very soon. It is a pity that I did not continue to contribute to the community at that time.

最近一次接触到开源协作的模式是我在诺基亚工作时,诺基亚整个工作流程就是参考 GitHub 的开源模式,所以我在最初加入 Milvus 贡献时,上手还是相当快的。我之所以成为开源项目的贡献者是因为我觉得作为程序员使用一项技术,无论是开源还是商业技术,很大程度上这是一种投资行为。当你选用了一种技术栈,你需要投入大量的资源,甚至要放弃一些其他的机会。所以,作为一种投资行为本身来讲,我不希望这是一件「白嫖」的事情,希望能向上游社区做一些回馈。一个人的力量可能非常有限,但是如果人多的时候,这个社区会越来越活跃,那么产品才会保持一个生命力。久而久之,投资获得回报的这个可能性和概率就会越来越高。

另外,我认为在社区里给用户提供一些解答或是讨论,能够帮助我个人和团队保持技术敏感度,这点是非常重要的。因为开源技术往往在技术上会比较领先,所以它吸引到的用户在各方面的思路和思想都值得我们借鉴。在数据库这个软件领域里,在技术选型、技术参与的时候,就能够看到参与开源社区中所带来的好处。因为,参与开源之后,你会更了解软件的实现机制、优点缺点,知道未来怎么在生产中扬长避短,这是非常有意义的一件事情。因为数据库的特殊性在于,随着你的使用、随着你数据量的增长,它的一些性能会有一些变化。大部分使用场景下,我的业务可能没有办法在短时间达到规模的数据量,它可能会在未来两年三年才达到数据量的峰值。这个时候就需要跟踪和长期的监控数据库的表现。

我在 Milvus 社区的体验

印象比较深刻的是社区中良好的互动。我们是从 Milvus 0.10.0 这个版本开始使用的。在刚开始使用的时候,很多小伙伴因为第一次接触向量数据库,在 API 的调用上遇到问题,不了解内部实现机制。当我们遇到困难的时候,会收到来自微信社区和工程师们的协助。我们从 Milvus 0.10 这个版本开始就能够在公司的产品中使用起来,这是非常重要的一件事情;另外一件让我印象深刻的事是当我在做 Milvus 2.0 支持 Windows 编译的项目时,我采取了本地私人仓库临时开发,有很多的 commit 触发到了 issue 状态更新。这个时候,小凡主动的来找我,问我是不是需要一些协助,我觉得这个就是非常良好的互动和正向反馈,增强了我们未来在产品中长期使用 Milvus 数据库的信心。

对 Milvus 社区的贡献

我在社区里主要贡献的有这几个 repo:milvus-io/milvus-sdk-cpp、milvus-io/milvus 和 milvus-io/knowhere。

以下是我做过的一些比较有意思的项目,包括但不限于:

我的一些小建议

为什么要参加开源:程序员的工作压力普遍较大,很多时候我们不得不「996」或「卷起来」,而且对未来总是充满焦虑。也是因为这样,很多人不明白贡献开源的意义。为什么我要牺牲我的时间、精力来免费替不认识的人打工?

我参与开源的初衷是为了要破局、寻求更高效的学习方法。因为要跳出自己原本的层级,或是原本的知识圈,从更大的范围内来看一件事,才可能对现在做的事有一个革命性的改变,这个时候的努力才会是一种高效的努力。

Upstream first:如果你使用开源软件,你一定要有一个信念:upstream first。这点非常重要,你的改动一定要合并到上游,因为上游更新一定会比你快。为了未来可以去享受到上游带来的好处,同时你又不想把自己修改的这部分丢掉,那么最简单的一件事情其实就是 upstream first。

做好时间管理:除了工作外我还需要兼顾家庭所以平时我会起得会比较早,在清晨花一点时间去看我关注的 Milvus C++ SDK 项目的 PR 或 issue 的更新情况。当工作上的需求比较急迫时,就会使用工作时间来做 Milvus 相关的事情,但对一些不是很急迫的需求,我就会用闲暇时间来维护 Milvus,缓慢提交。另外,在我实际的预研工作中,当我遇到了需要对 Milvus 做修改或者做更新的时候,我会第一时间把这个想法以 PR 或 issue 的形式告诉社区,因为这个时候有效率是最高的。如果整件事情做完了,再回过头来复盘提 PR 那可能就可能会非常痛苦。

如何参与社区

首先,你需要阅读 how to contribute[1] 文档,了解社区的一些规范。然后,你可以尝试先从小的文档贡献开始,熟悉贡献相关流程。

当你熟悉了这个系统后,我相信你会有很多的 idea,也许你想了解更多的技术细节以及这个社区想要发展的方向。你除了可以参与在 GitHub 和微信群里的讨论外,也可以参加社区定期举办的会议- Milvus Technical Meeting[2] 了解社区进展和提出自己的建议。

最后,预祝大家有个美好的开源之旅,也欢迎大家加入 Milvus 贡献者的行列!


相关链接 

[1] how to contribute:https://milvus.io/cn/community/making_your_first_contributions.md

[2] Milvus Technical Meeting: https://wiki.lfaidata.foundation/display/MIL/Milvus+Home


本文分享自微信公众号 - ZILLIZ(Zilliztech)。
如有侵权,请联系 [email protected] 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

{{o.name}}
{{m.name}}

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324145709&siteId=291194637