你多久没仅为 Have fun 去写一段代码?
你多久没为实现一个天马行空的 idea 而兴奋不已?
你又多久没为和团队一起 Coding 而干劲十足了?
来 TiDB Hackathon 吧,这些体验都能找到!
TiDB Hackathon 2021 已于 12 月 9 日起正式开启报名,我们已经收到了许多新老朋友的组队报名。本届 Hackathon 主题为「Explore the Sky」,将在 2022.1.8 - 9 两个比赛日进行,线上线下联动。大赛邀请了数据库领域知名专家、社区技术大咖、顶级投资人代表等超强阵容担当评委,对项目进行全方位点评指导,为赛事体验保驾护航。
在等待最终比赛日的这段时间,TiDB 社区对评委、选手进行了系列访谈,请他们分享自己关于开源、 Hackathon 的经验,并分享对 Hackathon 参赛选手的建议。这次我们请来了本届 Hackathon 特邀评委 —— 神州数码集团 CIO 沈旸,一起看看他眼中的开源和 Hackathon 吧~
采访对象简介
神州数码集团副总裁兼 CIO 沈旸,曾在 SAP 工作 10 年,为全球客户做数字化转型。2017 年加入神州数码,负责神州数码的数字化转型工作。在过去 2 年参与了包括 TiDB 在内的多个开源项目建设。
以下为访谈记录:
Q1:最早接触到开源在什么时候?
沈旸:我接触开源比较早,像 Linux 等开源项目都接触过。接触比较深的是在 SAP 里一个叫 ABAP 的开发平台,它虽然不是 100% 开源,但是它的代码对所有客户和合作伙伴都是开放的,其实有一点点开源的味道。
因为开放,平台里的所有 BUG、问题都可以让客户或合作伙伴自己去找到并解决,这样就把我们找 BUG 和解决 BUG 的成本降得非常低,ABAP 里大部分的问题可能都不是 SAP 自己找到的。这是我最初对开源比较深刻的体会,也可以把它当做一个类似于社区,或类似于生态的理解。这个生态是很难破的,如果是完全闭源的软件,出现问题只能由厂商自己来解决,解决成本会非常高,而且这非常取决于厂商内部的效率和流程。稍微有一个流程出问题,可能都会对客户造成很大的影响。
对于开源,我自己用三个关键词总结:
- 连接:用开源可以最快接触到更多客户、合作伙伴、社区参与者;
- 开放:开源不仅仅是代码开放,还需要更开放的心态。我在 TiDB 社区里面,经常会有很多人问 “你们是不是要做自己的版本?对 TiDB 有什么影响?” 其实,TiDB 一直是非常开放的心态;
- 安全:开放和连接之外,安全也很重要。尤其在企业级的数据库产品中,如何保证安全性至关重要。因为开源所有的代码都是开放的,不但对客户开放,对潜在攻击者也是开放的。比如最近出的阿帕奇(Apache)Log4j2 安全漏洞问题,其影响是非常巨大的。未来,我们需要把安全做得更好,让客户在开源代码环境下也能够获得最好的安全保护。
Q2:中国企业级用户对开源的态度发生了什么样的转变?
沈旸:神州数码就经历了一个蛮大的转变。我们自身是一家很大的企业,和中国很多企业类似,各种各样的开源组件、产品都会去使用。以前国内的企业,往往对社区的反馈并不是特别多,自己去做开源产品的就更少。当然,这也是因为做一个顶级的开源项目其实是特别难的,你可能要有顶级的工程师,但工程师需要没有太多生存的压力,才能静下心来想些长远的事情。所以长久以来,国内虽然开源用得多,但是贡献却比较少。
这几年随着国内互联网大厂内部有足够的能量去做开源项目,开源开始兴起。但更难能可贵的是,除了这些互联网大厂外,还有很多新兴的企业也开始做开源,比如 TiDB、Apache DolphinScheduler。他们不是一个互联网大厂的团队,而是从小团队开始做起,也做出了顶级的开源项目。我觉得这些开源项目的兴起在中国真正打开了一种新模式,开源不是简单地靠金钱,靠团队规模,靠技术实力堆上去就能形成的产物,而是找到了一个很好的土壤,让开源团队哪怕只是一颗小种子也能够生根发芽。
我觉得这样的模式在中国已经完全形成,而且中国的市场规模足够大,只要你的开源产品满足了中国客户的一些需求,它就能迅速地被接纳,可能几年时间就能把市场占领。所以,我也希望中国的企业,哪怕是作为甲方也好,未来都能参与到开源建设中,甚至能够有自己的开源项目,形成更好的中国开源生态体系。
Q3:您是什么时候接触到 TiDB 的?
沈旸:我们在 2017 年左右就开始接触到 TiDB 。记得有一次 “双十一” 期间,我们有一个业务系统和物流有关,它的系统数据量、访问量比平时都会多很多倍。这种场景与 TiDB 的弹性伸缩场景非常类似,保证临时扩节点系统不挂掉。当时,有一些比如硬盘的故障,导致系统临时没法用,如果再去做故障修复、数据恢复会花很多时间。
我们最后在 2017 年底就部署了 TiDB 集群,这个系统到现在从没挂过。甚至有一次,这个系统有一台物理机挂掉了,我们过几天才发现,但是它并没有影响业务系统。这件事让我们对分布式架构有了更直观的认识,它的管理成本不需要那么高,它不是很精密的仪器,需要精心地维护/保养,它就是一个非常实用的工具。
后来,我们也尝试在社区里面做贡献。比如参加 TiDB Hackathon ,在知乎上发表大量关于 TiDB 的文章( TiDB 源码解析), TiDB for PostgreSQL 方向的项目等等……
Q4:开发「TiDB for PostgreSQL」项目的初衷?
沈旸:我原来的背景是在 SAP 里做数字化转型,面临的体系与一些互联网公司不太一样。TiDB 的初期客户大部分是互联网公司,互联网公司的业务其实弹性非常大,比如一下子碰到几千万/上亿的用户,瞬间数据量扩得特别大。这类用户追求的是弹性、伸缩性,当然还有系统的高可用性。
但在企业级客户里,企业内部的各种应用系统,有一个很重要的诉求就是复杂度。比如 PG 的数据库与 MySQL 比较起来,在多表关联、复杂查询上,会做得更好一些。而在企业级领域里,一个企业大了,天生会有很多的烟囱。这个烟囱不是大家故意造成的,而是因为法律或其他方面的因素。
例如,法律规定企业的财务数据是不能提前披露的,财报之前可能只有几个人知道,到了财报的时候才要对所有的人公开。在此之前,财务的数据就只能掌握在部分的部门手里。人力资源的数据也一样,公司的数据不可能所有人都知道,企业里所有东西都是由专业的部门来处理。在数据上,天生就是由很多数据表组成的,但是它的数据量不可能达到互联网的级别,它的复杂就体现在内部的权限以及多表的关联上。PG 在这方面做得非常好,我们一开始有一些内部的应用希望能做在 TiDB 上,但因为 MySQL 的天生局限,适配起来比较困难。
我们当时也看过其他的,更能够适配 PG 的数据库,比如像 CockroachDB、YugabyteDB,但没有一个是百分之百能够适配 PG 的。因为 PG 的语法等各方面是非常复杂的,我相信不可能做到百分之百,所以这个领域是有空间可以做的。在很长时间内,没有一个所谓的绝对第一名,这个时候你就有希望。第二我觉得在国内基于 PG 的分布式数据库,尤其是开源领域,在市面上非常少,几乎没有很强的成熟的竞争对手。
所以在这个领域如果能做起来,第一方面是能够弥补 TiDB 的一个短板,当未来有很多基于 PG 数据库的客户系统,想迁移到 TiDB 上,就不用做大量应用的改造。应用这个东西有复杂的应用有简单的应用,复杂的应用改起来可能不比改造一个数据库更容易。第二方面,我们能够看到这会形成一个新的方向。
Q5:对其他也想参与到 TiDB 社区中的企业有什么建议?
沈旸:无论是客户还是合作伙伴,大家在使用产品的时候都会进行比较,网上很多文章有说好的,也有批评的。其实没有哪个产品是没有缺点的,我记得 TiDB 以前很早的一个版本连悲观锁都没有。但这恰恰是用户或合作伙伴的机会,比如说你自己是一个银行客户,刚开始使用 TiDB,发现没有悲观锁,如果你投入自己的团队,可能只要稍微做一点点工作,去把这个悲观锁做出来,就能为社区多建设一点。甚至你也能梳理一个自己的分支出来,把整个生态建设得更好,这是一个双赢的过程。
我觉得在开源的生态里,大家就是得想得更透彻更开放一点。TiDB 不仅仅是一个公司的产品,它未来可以是一个很多公司产品的合集,这个合集可以形成一个更大的产品群。也可能里面某一个小的产品或小的功能,和任何公司都没有任何关系,是百分之百由社区的人完全贡献的。所以,我觉得大家要积极地去探索这些可能性,如果晚了可能好摘的水果都被摘完了,后面想贡献就更难做了。
Q6:对 TiDB 社区的期待?
沈旸:对于社区的话,我觉得 TiDB 的社区在国内做得其实已经非常好了,你们可以去帮全国甚至全世界做开源的团队和企业。未来,中国会有很多很多新的开源产品,但是很多人一开始真的只是纯粹工程师的思维,就只是会写代码。开源不仅仅是把代码放到 GitHub 上就行了,在社区运营方面,我相信很多工程师根本不知道怎么做。
我们第一个开源项目是叫 DrawDocker 的一个项目,在 GitHub 上只有 8 个 Star ,它就缺乏这种社区的力量。但是另外一个我们做的 TiDB for PG , TiDB 社区帮助我们做了很多的工作,现在已经有了 300 个 Star。社区内有很多客户、伙伴也盯着这个方向,他们很感兴趣,一直在问什么时候能做得出来。所以我非常希望 TiDB 社区的能力,未来能够也开源开放出来。
Q7:是否会参加本届 Hackathon ?
沈旸:我们还在讨论中,今年如果参赛的话,方向应该和去年比较类似,还是在 TiDB for PG 这个方向上有所突破。我们内部其实最近在做一个比较大的应用,在我们的产品上做适配。我们会评估这个项目最近是否会有一些很大的产出,评估我们的工作量,看是否会参加今年的 Hackathon。
Q8:对本届 Hackathon 有什么期待?对参赛者有什么建议?
沈旸:对于这次 Hackathon ,我非常期待能有一些有创新突破领域的选手出来。我希望 Hackathon 里大家不仅仅是解决一些小的问题,更希望解决的这个问题未来能够孵化出更有创意的产品,比如像 Chaos Mesh 这样的产品。一开始可能只是一个理念或者是一个小工具,但是后来不仅对 TiDB 有很大的贡献,也可以用在其他所有云原生的领域里。
我希望这次 Hackathon 能够在中国的开源界,做成一个由兴趣驱动、目标驱动的顶级活动。也希望今年能够诞生出一些对未来的软件行业,对未来的开源行业,在基础架构方面有一些贡献的项目,或者说一些突破。虽然短期内做产品可能还是很难,但是哪怕短时间内只是一个 demo ,或是简单的演示也好,希望大家的 idea 尽量往更大的方向去想。
TiDB Hackathon 2021
本届 Hackathon 主题为「Explore the Sky」,将在 2022.1.8 - 9 两个比赛日进行开发,线上线下联动。从 Ti 星球到宇宙苍穹,我们用 Hacking 连接更广泛的生态,给予参赛者尽情发挥的想象空间。本届 Hackathon 我们对赛道进行了全面升级,开辟出内核、工具、生态、「∞」四大赛道,参赛者不论是数据库开发者,数据库上下游生态,还是数据库的使用者,都可以找到适合的领域,围绕 TiDB 探索无限可能。
TiDB Hackathon 2021 自 12 月 9 日起正式开启报名,选手可以自行组成 1 - 4 人的参赛队伍,在参赛周期内完成作品,优胜团队将获得奖金、技术和资源上的支持。大赛邀请了数据库领域知名专家、社区技术大咖、顶级投资人代表等超强阵容担当评委,对项目进行全方位点评指导,扫除知识盲点,为赛事体验保驾护航。此外,还有顶级投资人全程坐镇,让你的实力被更多人看到。