首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

带我走出程序员中年危机的开源项目,刚刚从 LF AI&DATA 基金会毕业了

经过一年多的孵化,近期,由 Zilliz 开发和开源的向量数据库 Milvus 从顶级开源基金会 LF AI & Data 毕业。这意味着,Milvus 得到全球技术专家的认可,成为世界顶级的开源项目之一,并在 LF AI & Data 技术咨询委员会获得投票席位。

作为在大数据和数据库领域拥有近 20 年经验的专家,Zilliz 合伙人、首席布道师顾钧代表 Zilliz 出席 LF AI & Data 基金会技术咨询委员会,并全程负责 Milvus 向量数据库在基金会的孵化工作。

开源为什么会是出路?个人的职业命运又何以与技术的历史进程环环相扣?在本文中,顾钧主要从自己的职业历程出发讲述了技术产业变迁的逻辑,以及他和 Milvus 团队在 LF AI & Data 基金会的成功经验。与各位共享~

带我走出程序员中年危机的开源项目

刚刚从 LF AI & DATA 基金会毕业了

程序员最害怕什么?按照我的排名,第三位是上班 996、虚耗生命;第二位是年终 325、一年白干;排名第一自然是自己倾注了大量心血研习的技术突然被淘汰了。还有更糟的吗?!有,就是那时候你已经过了 35 岁。

我,恰好遇见了最糟糕的情况。而那带我爬出深坑的绳子,叫做“开源”。

  唯技术论的坑

2004 年,我从北大毕业加入宇宙行的数据中心,成为了一名支持大半个中国区核心系统的数据库工程师。我那时接触的技术平台,自然是“高端”的 IBM 大型机 Db2 数据库集群。给高端打上引号并非是反义或者嘲讽,而是为了强调 IBM 大型机一贯的两个标签:技术先进、价格昂贵。那时的我信奉技术至上,相信更先进的技术未来必有一席之地。

不过,我很快发现宇宙行的大型机团队规模增速远不及小 / 微型机团队。也许这是因为甲方部门的发展空间有限?没关系,我可以去到乙方服务整个中国银行业。于是我加入 IBM,成为大型机数据库售前工程师。到了 2010 年左右,生意真是越来越难做了,市场上到处都在喊“去 IOE”。也许这是中国国情所致?没关系,东边不亮西边亮,我还可以加入美国的银行呀。于是我加入了大摩的 IT 部门,这下总能安稳做技术了吧。

可惜美好的时光是短暂的。安稳日子没过 5 年,连美国的银行都开始将核心系统下移到 X86 服务器,甚至尝试使用开源数据库,你们也去 IOE,这是什么道理?技术至上的逻辑出了什么问题吗?

   IT 产业的逻辑

虽然没有哪一个开源数据库敢说自己打败了 Oracle 与 Db2,但不妨碍开源数据库以及开源软件得到越来越广泛的应用。在很多行业,开源软件开始侵蚀传统闭源软件的市场份额。从技术角度来看,这似乎是一种“逆向淘汰”。“免费的往往是最贵的”,很多人这么嘲笑开源软件用户只是贪图便宜。

但要探寻技术至上逻辑的漏洞,首先得放下成见。我问自己,“技术至上”究竟是 IT 产业的逻辑,还是我的一厢情愿?技术上的“逆向淘汰”在 IT 产业一而再、再而三地重复上演。比如,小型机在很多领域替代了大型机,而微型机几乎已经彻底淘汰了小型机。从技术角度看,这实在是反直觉。但如果换个角度来看,我们就会有不一样的答案——IT 能力的普及。

IT 产业的逻辑链里不单有技术因素,还有经济因素。在小型机代替大型机、X86 服务器代替数据库集群等大趋势成型的临界点上,往往不是我们有了更先进的新技术,而是我们有了能大幅度降低成本且够用的新技术。简而言之,存在这样一个趋势:强大、复杂又昂贵的技术很有可能会被够用、简单、低成本的技术所取代。虽然 X86 和智能手机已经把 IT 能力普及到了个人,但接下来还有物联网设备、自主机器人等等,只要 IT 能力的普及还未结束,这个趋势不会轻易停止。

   可能的出路

想明白了这个道理,我开始探究是否存在这样一种可能——再也不用担心技术大方向更迭对程序员的职业生涯产生较大影响,通过参与开源软件社区来开拓出路。

当然,我所指的开源软件不是光光用了开源许可证的软件。

我所说的开源软件是一群人(贡献者),出于一个特定的主题(项目愿景),基于设定的规则(社区章程),共同开发的(开放协作)、使用开源许可证的软件产品。这为外部人员的参与提供了可能性。外部程序员如果能够深度参与一个开源项目,那么自然便可以对其施加一定的影响,他的投入就会更有保障。反之如果是闭源软件,或者封闭社区的产物,外部人员所花费的心力随时可能因为项目方修改技术路线而打水漂。所以,谨慎选择造神型的开源社区。

除此以外,在选择开源社区时,还需要考虑这个开源软件是否符合前文提到的技术趋势。提供足够功能这一点自不必说,我想提醒大家关注的是,该开源软件的功能是否足够单纯、与上下游的界限是否足够清晰。要谨慎看待那些大而全的开源项目,耦合度太高,鸡蛋都在一个篮子里。虽然短期来看学习成本似乎比学习多个项目要简单一些,但由于缺乏多样性,如果项目本身被淘汰,开发者付出的机会成本还是非常高的。

所以我认为,尽量使用多个小型 / 单纯的开源软件来构建系统。这样一方面可以参与到更多的开源社区里面,另一方面也可以抵御大型项目难免的系统性风险。

   我是这样做的

拳王泰森有一句名言:“Everyone has a plan until they get punched in the mouth.”关于“开源”的道理我们可以讲很多,但如何践行才是关键,尤其我脸上已经挨了一拳。学游泳的第一步是跳到水里,于是我加入了创业团队,和伙伴一起从头开始构建一个开源社区——Milvus 向量数据库,并将之孵化成为第二个从 Linux 基金会毕业的由中国团队发起的 AI 开源项目。这两年间的经历初步验证了前文的理论。

首先,我们需要厘清项目的愿景——为什么创造这个项目。当我们在 GitHub 上创建一个 Repo 的时候,需要的是只是一个灵感、一种信念。但如果我们想把这个 Repo 推荐给其他开发者,让他们加入社区,那么我们需要一个清晰的理念来打动他。以 Milvus 为例,我们想要传达的理念是端到端的 AI 应用构建模式非常低效、不灵活,应该采用更加模块化的方式,算法层就负责模型的事情,后续的部分交给 Milvus 向量数据库,从而大大提升 AI 应用构建的效率。

愿景(有的社区会称之为宣言)的作用在于,帮我们更容易找到那些有相同想法的伙伴,为社区的参与者建立一个共同的目标。

其次,我们需要明确项目的定义。通常我们会把愿景设置得宏大一些,但远大的目标需要一步步脚踏实地才能达到。作为起点,项目的定义要单纯一些、落地一些,以确保项目一开始就处于一种基本可用的状态。然后通过不断的迭代去接近最终的目标。Milvus 向量数据库的核心功能非常单纯,就是服务于 AI 场景中由模型生成的嵌入向量(embedding vector)。最初,不少人担心“功能这么单纯(不客气的说法就是‘单薄’),会有人用么?”这两年来的近千家社区用户,充分证明了功能纯粹的开源基础软件有着很强的适应性。

设置沟通渠道的时候,也需要考虑社区中不同人群的特点。一个活跃的社区通常包含这么几类人:软件使用者,代码贡献者,非代码贡献者等等。

对于软件使用者,他们需要在碰到问题时寻求解决的方法,因此对于 FAQ 型内容的沉淀有较高要求,可以考虑为他们设置论坛(比如使用 GitHub 自带的论坛功能)。而贡献者需要频繁展开讨论,对沟通的及时性、讨论结论的保存与分享有较高的要求,因此可以利用 IM 与一些在线文档工具。

由此可见,一个社区存在多种沟通渠道是很常见的。所以我们需要在项目网站上列出这些渠道以及这些渠道的使用指南,让用户与开发者更容易找到组织。

在开源的世界里,自身努力很重要,外部协作也非常重要。Milvus 项目在整个 AI 技术栈中和很多上下游项目有交界面。我们不能放弃这些互动的机会,但要和这么多不同的社区建立联系也不是件容易的事情。这里倒也有个取巧的方法——加入专项开源基金会。

专项基金会由于针对细分技术领域,其中的开源项目通常存在很多潜在的合作机会。Linux 基金会旗下专注于云计算的 CNCF 基金会是目前最广为人知的专项基金会,针对 AI 领域的另一个专项基金 LF AI & Data 基金会也是势头生猛,Milvus 项目在去年初便加入其中进行孵化。在基金会的帮助下,我们得到了很多合作和推广 Milvus 的机会,目前 Milvus 已经成为了毕业项目。

不过,加入基金会也意味着我们放弃了 Milvus 项目的商标等法律权利。很多人对此颇为犹豫,但这其实是开源社区最重要的一点,不要尝试去控制社区。来的都是朋友,而不是免费劳力。

我在开源中找回了技术的乐趣,希望你也可以。如果对 Milvus 项目感兴趣,欢迎在 GitHub 上搜索 milvus。要是能随手点个星,那就更好了。

Github@Milvus-io|CSDN@Zilliz Planet|Bilibili@Zilliz-Planet

Zilliz 以重新定义数据科学为愿景,致力于打造一家全球领先的开源技术创新公司,并通过开源和云原生解决方案为企业解锁非结构化数据的隐藏价值。

Zilliz 构建了 Milvus 向量数据库,以加快下一代数据平台的发展。Milvus 目前是 LF AI & Data 基金会的毕业项目,能够管理大量非结构化数据集。我们的技术在新药发现、计算机视觉、推荐引擎、聊天机器人等方面具有广泛的应用。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210629A0AI0M00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券