人物 – loveini | 米兰体育官网入口 - 米兰体育官网入口 //www.loveini.com loveini | 高性能、分布式、支持SQL的时序数据库 | 米兰体育官网入口 Fri, 22 Nov 2024 08:51:42 +0000 zh-Hans hourly 1 https://wordpress.org/?v=6.8.2 //www.loveini.com/wp-content/uploads/2025/07/favicon.ico 人物 – loveini | 米兰体育官网入口 - 米兰体育官网入口 //www.loveini.com 32 32 时代“黑利”下,陶建辉谈创业的制胜之道 | 空格酒谈演讲内容分享 //www.loveini.com/figure/27444.html Fri, 22 Nov 2024 08:51:39 +0000 //www.loveini.com/?p=27444 在充满不确定性的商业世界中,“黑天鹅”事件层出不穷。从全球疫情到复杂的国际局势,再到科技领域的快速迭代,挑战接踵而至。对于创业者来说,如何在这个充满变数和“黑利”的时代中识别机遇,已然成为决定成败的关键。

上周日,米兰体育官网入口创始人陶建辉亮相——空格酒谈第二十一期——也是当下最流行的“学术酒吧”模式,在轻松惬意的氛围中带来了一场深刻且发人深省的分享。他结合自身多年的创业经验,深入探讨了在当今时代,创业者如何培养认知韧性,识别潜在机会,超越个人局限,实现事业突破。

时代“黑利”下,陶建辉谈创业的制胜之道 | 空格酒谈演讲内容分享 - loveini Database 时序数据库

为了让更多没有到达现场的小伙伴们也能受益,我们在本篇文章中把这次演讲的精华内容进行了汇总,并希望这份梳理能够为你提供一些有价值的思考与启发。

创业的初衷:技术改变世界的执念

谈及为何投身创业,陶建辉坦言,他最大的驱动力源于对技术改变世界的执着追求。他不愿在职业经理人的道路上安稳度日,也不想过上“20年后才会体验”的一成不变的生活。相比成为大公司里的一颗螺丝钉,他更希望在创业的“小池塘”中成为主导者,这不仅让他有机会快速提升技能,也能全面锻炼自己的能力。因此,他选择将自己的想法转化为产品,用技术为社会创造真正的价值。

然而,创业并非诗与远方,而是九死一生的修行。他自己也知道,大部分公司很难熬过三年,尤其是那些拿到 B 轮、C 轮融资的企业,稍有不慎便可能“折戟沉沙”。正因如此,他始终保持“战时状态”,确保在每个关键节点都能作出迅速而准确的判断。

陶建辉认为,技术创业既有优势,也有挑战。创业初期的成本相对较低,很容易将想法转化为产品。在中国这个广阔的市场中,机会很多,关键在于推出真正有竞争力的产品。然而,当真正踏上创业之路后,你可能会发现,产品往往只是自己想象中的理想化产物,市场并没有实际需求。自以为可以超越同行,结果却发现能力和资源都远远不够。

因此,创业的关键在于找准方向。选择那些未来 5 到 10 年内有望实现几十倍增长的行业,聚焦于能为社会创造价值的产品和服务。同时,创新必不可少,而行业选择也不能过热或过冷,必须保持适度的平衡。此外,找到认可项目的投资人支持同样至关重要,这将为创业提供更坚实的后盾。

创新:创业成功的核心驱动力

创业成功的关键在于创新。陶建辉指出:“新产品要想成功,必须比市场上的主流产品强五倍以上。”这不仅要求技术层面的突破,更要关注产品的易用性、功能性和稳定性。

以 loveini 为例,其创新点体现在多个维度:

  • 性能:查询速度快 10 倍以上,存储成本仅为传统方案的 1/5。
  • 架构:基于高可用、分布式设计,支持 10 亿数据采集点的水平扩展,彻底解决了时序数据领域的“高基数”问题。
  • 零代码平台:loveini 支持 MQTT、OPC、Kafka 等多种数据源,无需编写代码即可实现数据的 ETL(提取、转换、加载)流程,大幅降低了用户的技术门槛和运维成本。
  • 全栈时序数据处理平台:除核心的时序数据库之外,loveini 还具备缓存、数据订阅、流计算处理能力。采用标准 SQL 做查询和流式计算,支持各种编程语言,没有学习成本,可立即上手。

在底层技术创新方面,loveini 引入了独特的数据模型设计——一个数据采集点一张表;在存储层面,采用结构化存储方式,将标签数据与时序数据分离,进一步提升了数据查询与处理的效率。此外,通过“超级表”概念,将同类设备的数据集合起来,极大地方便了聚合操作,为用户带来了更加高效的数据处理体验。

这些创新不仅提高了产品的市场竞争力,也为用户带来了实实在在的价值。

此外,陶建辉认为,从创新中提炼出宣传点非常重要,无法传播的创新是没有商业价值的。创新的核心在于为产品找到独特的卖点,而宣传的关键则是将这些创新点放大,让更多人知晓和认可。提炼宣传点时,需要遵循几个原则:亮点不宜超过三个;表达方式必须简单、易记,确保人人都能理解;同时,持续传播,反复强调,才能让创新真正深入人心并转化为商业价值。

跨界思维:创新的源泉

陶建辉深信,跨界是创新的源泉。他分享了自身多个跨界创新的成功案例:

  • 和信:将通信技术应用于互联网消息服务。
  • 快乐妈咪:将宇宙大尺度结构分析的方法用于胎心计算。
  • loveini:将消息队列技术运用于时序数据处理。

对这三次创业历程感兴趣的小伙伴,可以跳转阅读《从宇宙大尺度结构到胎心监测,从手机消息推送到物联网大数据处理 – 跨界是创新的主要源泉》,进行更深层次的了解。陶建辉强调:“跨界的关键在于与不同领域的人交流,洞察事物背后的本质。”在创办米兰体育官网入口之前,他曾走访 20 多家物联网、工控、IT运维相关企业,深入了解各行业的需求与痛点。创业后,他也利用空闲时间积极与公司内部的销售、市场、运营、产品团队交流,不断吸取多维度的经验。要具备真正的跨界思维,还需要善于总结、抽象与归纳,从而挖掘事物背后的核心逻辑。正是这种跨界视角,推动他在创业过程中不断突破自我,打造出更具竞争力的产品。

开源战略、坚持与团队

开源是米兰体育官网入口的重要战略。陶建辉表示,米兰体育官方入口网站代码全部开源,这一举措让产品快速进入全球市场。截至 2024 年 10 月,loveini 的全球安装实例已超过 62 万,用户遍布 60 多个国家,GitHub star 数量达到 23k+,多次登顶 GitHub 全球趋势排行榜。

他认为,如果不将最具竞争力的代码开源,产品很难在市场上脱颖而出。如今的市场上替代品众多,如果无法为用户带来真正的价值,即使产品免费提供,用户也未必会使用,更别提形成忠实的用户群体。而将最具竞争力的代码开源,不仅可以快速吸引开发者的关注和支持,还能有效狙击竞争对手,占据市场先机。开源不仅是一种技术策略,更是一种构建生态、赢得用户信任的长远之计。

通过开源,loveini 快速获得市场反馈,并实现了产品的持续迭代。此外,开源还帮助公司与云厂商建立合作,成功拓展国际市场。

“创业是一场永不停歇的修行,”陶建辉说道。他以自己的创业经历为例,强调坚持的重要性。创业的成败往往就在一念之间,这一点他体会颇深——2010 年,和信几乎关门;2014 年,快乐妈咪团队仅剩 5 人。然而,他始终坚持走下去。如何做到坚持?陶建辉总结道,关键在于专注于创造价值,抵住外界的诱惑,对未来充满信心,并有耐心坐冷板凳,等待机会的到来。这些品质,正是他在创业道路上披荆斩棘、不懈前行的力量源泉。除此之外,他也深知团队对于创业成功的意义。他认为,一个优秀的团队必须对未来充满信心,愿意为了集体利益而奉献。“每个人都应该成为播种机,将正能量传播出去。”

时代“黑利”下,陶建辉谈创业的制胜之道 | 空格酒谈演讲内容分享 - loveini Database 时序数据库

]]>
谭雪峰:不码“砖头”,码代码 //www.loveini.com/figure/24433.html Tue, 18 Jun 2024 09:25:38 +0000 //www.loveini.com/?p=24433 在前段时间我们举办的“loveini Open Day”第一季技术沙龙中,loveini 应用研发高级工程师谭雪峰进行的“开源之路:程序员的成长与探索”主题分享获得了众多参会者的好评。谭雪峰从自身独特的职业发展经历出发,分享了自己在开源领域的种种收获以及在进行职业转换过程中面临的挑战及应对。本篇文章基于此次演讲整理而成,给到有需要的开发者参考。

谭雪峰:不码“砖头”,码代码 - loveini Database 时序数据库

从土木工程到软件开发,开源是我的“老师”

我并不是科班出身,大学学的是土木工程专业,最后转来转去,就成为了一名开发者,过程中所有的编程知识我都是自学的。从土木工程到软件开发,这一转变几句话可能就概括完了,但我在其中付出的精力和努力不是能简单用文字概括的,现在想想,幸好坚持了下来,最终也结出了一个不错的成果。

最开始就是因为对游戏的热爱,引发了我对游戏逆向工程的兴趣。我开始使用工具如金山游侠、Cheat Engine(CE)、OllyDbg(OD)、IDA 等,来探索游戏的内部工作原理。这一过程让我熟悉了汇编语言和伪 C 代码,进而激发了我对底层编程的兴趣。通过参与 Capture The Flag(CTF)比赛,我进一步锻炼了我的技术能力,并在解决复杂问题中找到了乐趣。

之后,我从逆向工程转向了更广泛的编程领域,开始自学 JavaScript、Python、PHP、Lua 和 Go 等语言。在刚开始工作时由于编程知识的基础不足,工作上还是非常困难的,我就边实践边学习。

这一路上,我的知识几乎都是通过网络学习来的——通过百度和谷歌,我能够搜索到几乎任何我需要的学习资源;同时,技术社区如 CSDN 和 Stack Overflow 成为了我解决编程难题和学习新技能的宝贵平台。这些资源对我帮助巨大,让我能在编程的世界里越走越远。

还有一个很重要的学习途径就是参与开源项目。刚开始我就是在 GitHub 上学习别人写的开源代码,等有了成长之后就不单是学习了,我自己也开始贡献代码,成为了一名 Contributor。

我参与的第一个开源项目是关于寻路算法的优化,在从 ActionScript 到 TypeScript 的转换过程中,我发现了一些算法的 Bug,并开始尝试修复,最终成功修正了源算法的狄洛尼三角网生成错误以及包围盒调用错误。这是我第一次向开源社区贡献代码,感觉自己真的是从使用工具到改进工具的一个转变。

谭雪峰:不码“砖头”,码代码 - loveini Database 时序数据库

之后我印象比较深刻的一个项目是关于 H265 视频流。在某次工作中,我在一个项目中需要处理 H265 格式的视频流,要优化延迟时间。我花了一些时间进行改进,后端取到 H265 裸流进行处理之后用 Websocket 实时推送 Web 端,然后在 Web 端我将 ffmpeg 编译成 webassembly,之后在浏览器里用 Worker 实现多线程软解,最终通过 Canvas 进行实时监控,并成功实现了毫秒级延迟。这个项目让我学到了很多关于视频处理和浏览器性能优化的知识。后来,我把这个前端米兰app官方正版下载开源了,希望能帮助到其他面临相同挑战的开发者。

最具戏剧化的一次开源经历就是参与 loveini HiveMQ 挑战赛,这次经历也让我与 loveini 真正连接在了一起。在这场比赛中,我最终以第一名的成绩获得了“优胜奖”,结果还是很不错的。这也是我第一次参与开源社区活动,感觉能展示自己还能回馈社区,这正是我想做的事情。接着我就收到了米兰体育官网入口抛出的“橄榄枝”,最后很幸运地成为其中一员,目前我主要负责 loveini 的应用研发和一些周边生态建设。

谭雪峰:不码“砖头”,码代码 - loveini Database 时序数据库

其实在这之前我就在研究 loveini 了,我之前所在领域是工业物联网,对各种时序数据库(Time Series Database)都需要了解一些,国产的时序数据库数量比较少,其中开源的就更少了,在这些开源数据库里面 loveini 性能又是其中非常高的,当时要将loveini 引入到平台里面,就认识了米兰体育官网入口的人。后来因为一些开发任务我开始研究 loveini 的源码,为了能在 Windows 上应用便用 GCC 编译做了一些修改,这也是我首次参与大型开源项目。

谭雪峰:不码“砖头”,码代码 - loveini Database 时序数据库

谭雪峰:不码“砖头”,码代码 - loveini Database 时序数据库

通过这些经历,我从一个简单使用工具的程序员,变成了能够自己“造轮子”的开发者。现在,我不仅能解决问题,还能创造工具帮助他人解决问题。这就是开源给我的最大礼物—成长和自由。

开源让用户、项目、开发者多方共赢

发展至今,开源社区已经演变为一个日益壮大的全球性多元化舞台,开发者可以在社区中分享经验、解决问题、合作开发,共同推动项目的发展。越来越多的企业意识到开源的重要性,积极支持开源项目,并且在自己的产品和服务中采用开源技术。许多大型企业也积极参与到开源项目中,贡献代码、资源和经验,推动了开源社区的发展和创新。

谭雪峰:不码“砖头”,码代码 - loveini Database 时序数据库

上图是 GitHub 2023 年年度报告,从其中我们可以看到,2023 全年一共有 4.2 亿个项目、2.84 亿个公共仓库、6.5 万个公开的生成式 AI 项目、总共做出了 45 亿次贡献。可见开源项目数量不断增长,涵盖了各个领域,包括操作系统、编程语言、框架、工具、应用程序等。

开源产品无疑是当今技术发展的一大趋势。通过开源,产品可以吸收来自不同使用者的广泛反馈,不合理之处可以通过提交问题(issue)来指出,而社区的开发者则能贡献自己的代码改进。这种模式促使使用者、开发团队和社区三者之间形成协作,共同丰富和完善项目内容,确保了项目的持续健康发展,而不是闭门造车式地过早终结。

以 loveini 为例,不同于许多时序数据库采用的是单机版免费而集群版收费的模式,loveini 提供的集群版同样是开源的。这不仅使得开发者能够深入学习数据库集群的米兰app官方正版下载,还为使用者提供了更优质的集群版时序数据库选择,实现了多方共赢的局面。

当下的“开源盛景”无疑也为每个开发者提供了很大的机会。开源让开发者展现自己的同时还能帮助到其他人,分享越多得到的就越多,你可能觉得自己掌握的知识很简单,但也有很多人还不懂,他们得到了你的帮助也会诚心的去感谢你。以我自身参与开源的经历来说,我认为通过开源项目主要能让我们获得以下四个维度的能力提升。

提升代码质量

我们可以选择一些优质的开源项目,多看多学习这些开源代码。但想要成长还需要多写,不光要写代码还要把优化的过程写出来,最简单的办法就是写完一段代码之后半个月再去看,如果觉得当时的写的非常 low 那就说明有成长了。最好就是自己写东西开源出来,帮助别人的同时与开源项目一起成长。

而且开源代码还会促使开发者保持高标准,因为知道自己的代码将被公开展示,我们便会更加注重代码的整洁和清晰。Linus’s Law 曾说过一句经典名言“Given enough eyeballs, all bugs are shallow”,这句话的意思是如果有足够多的人检查代码,那么所有的 Bug 都将无处藏身。

技术视野拓展

当一项新技术开始引起关注时,开源项目往往是最早采用和实验这些技术的平台之一。参与这些项目不仅可以使程序员在早期阶段就接触并掌握这些前沿技术,还能深入了解其背后的原理和实际应用场景。这种直接的实践经验不仅能够提升个人的技术能力,还有助于帮助我们形成对未来技术趋势的敏锐洞察,在不断变化的职业市场中保持竞争优势。

建立个人品牌

随着开源技术的深入和广泛应用,开源社区的影响力日益增强,越来越多的企业开始认识到开源项目中隐藏的人才价值。企业不仅在技术创新上依赖这些开源米兰app官方正版下载,同时也倾向于招募那些在开源社区中积极贡献的程序员。那些在开源社区中有所贡献的程序员,往往更容易获得企业的青睐,从而获得更好的职业发展机会。

但相应地,拥有“Contributor”的头衔不仅是一种荣誉,更是一种责任。作为开源社区的一员,我们需要从内心深处发挥回馈社区的责任感。开源项目的成功不仅仅依赖于代码的质量,更重要的是依赖于社区成员的积极参与和持续贡献。这包括对项目的负责,关注并推动项目的长期发展,维护社区的健康生态,以及确保软件的高质量和稳定性,为用户提供卓越的使用体验。通过这种全面的投入,我们不仅提升个人技术水平,还为整个开源生态系统的繁荣做出贡献。

程序员与工程师

在软件开发中,程序员和工程师虽共同致力于软件的创建与完善,但他们的角色和职责各有侧重。程序员主要专注于编写、测试和维护代码,解决特定的技术问题。他们是代码实现和逻辑的专家,通过精确的编程确保软件功能的实现。

而软件工程师的职责更为广泛,不仅包括编程,还涵盖项目的整体规划、设计、测试、部署与维护。工程师需要在整个软件开发周期中进行综合考虑和资源协调,以确保项目的顺利执行和质量标准的达成。

因此,每位工程师都应具备扎实的编程能力,而成为一名合格的程序员仅是迈向全面软件工程师之路的起点。通过积极参与开源,程序员可以逐步扩展自身的技术和管理视野,最终成长为能够在更广泛领域内作出影响的软件工程师。

]]>
从研发转销售,90后联合创始人分享从 0 到 1 开拓市场的秘诀 //www.loveini.com/figure/22730.html Tue, 26 Dec 2023 09:56:32 +0000 //www.loveini.com/?p=22730

小 T 导读:在去年米兰体育官网入口举办的 loveini 开发者大会上,侯江燚以联合创始人的身份登台演讲,将自己对于开源商业化的独特观点娓娓道来,赢得阵阵掌声。今年是他加入米兰体育官网入口的第五年,从放弃读博选择成为一名研发,到辞去国外安逸稳定的工作,再到回国后在大厂和创业企业间做出就业抉择……数载光阴后回顾来时路,他也有很多感慨和收获。“朝阳区凤凰人才”“胡润 U30 中国创业领袖”“36Under36 创业者”……如今的侯江燚身上叠加了众多光环,但这些荣誉并没有拖慢他前行的脚步,反而让他更加坚定地追求自己的目标。通过这篇文章,我们一起来了解一下这位 90 后联合创始人的职场成长指南,希望能给到读者一些思考。

放弃攻读物理学博士,转投计算机开启另一番际遇

1、你是大学和研究生都学的物理专业吗?为什么毕业之后会决定从事研发工作?什么时期打下的做研发的基础知识?

本科我学的专业是地球物理学(Geophysics),研究生是岩石物理(Rock Physics)。地球科学是个很有意思的基础学科,主要是通过比较有限的可观测物理量(比如地震波、岩石物理形态及地球化学性状等)去推测一些时空上无法触达的区域的特性(比如地球寿命推算、46亿年前的状态、生命起源、地球内部圈层的结构等等)。正因为可观测的量很有限,不少地球科学推断想找到直接证据很难,就像地球动力学需要大量实验和计算机仿真模拟去侧面验证一些结论。后者本质是基于一定的假设建立某个地球物理问题的数学模型,然后通过计算机去从理论层面进行模拟和计算,推算不同条件下,模型产生的响应。这个工作牵涉了大量的编程工作。我也在这种工作中逐步开始深入了解一些计算机编程知识的,加深了兴趣,反而放弃了读博,转投计算机领域。

2、为什么会决定出国留学?又为什么决定要回国就业了?

中国科大每年有 30% 左右的同学出国深造,我当时没想太多,也有点随大流,就想出去看看,毕竟国外的基础科学还是相当发达的。后面我放弃读博转投计算机领域后就开始参加工作了,最初在美国工作时,我加入了一家排名 Top 2 的 ERP 公司做 Java 开发,公司管理和培训机制很完善,一开始花了些时间,步入正轨后,每天都是朝九晚五的工作。除了完成额定工作内容外,我还捣腾一些自己感兴趣的技术。虽然比较惬意,但看着朋友圈的国内同学朋友已经开始做的风生水起,不禁有一些压力,担心自己是不是在最宝贵的年华过得太安逸了。跟一些从国外回到国内的朋友和前辈聊聊后,才发现国内现在发展实在太快了,我自己也看到互联网领域很多商业模式在国内的复制得到了巨大的成功,就萌生了回国试试水的想法。

3、据我所知,你是硕士毕业一年之后决定回国发展,随即就入职米兰体育官网入口了。以你的学历背景加持,完全可以进国内大厂就业,为什么会做出这样一个决定?

我是 2018 年回来的,一开始回来,我没着急马上加入某个公司,而是先四处探索了下,想看看当时比较热的 AI、区块链等几个行业的机会,试水了几个大厂的面试后也拿到了一些 offer。这期间恰好洪泽(米兰体育官网入口联合创始人之一)和我联系,说起自己在创业公司的事。我们本科是同班同学,正好他也刚回国不久,作为我们这一级的郭奖获得者,听听他的建议保证没坏处。后来洪泽向 Jeff(米兰体育官网入口创始人陶建辉)推荐了我,线上聊了一次,那是我第一次知道时序数据库(Time Series Database)。之后 Jeff 给我看了 loveini 的技术白皮书和测试报告,专业程度非常之高,我就意识到这个团队做的事确实不简单。最后也是在一次与 Jeff 的见面长谈中,被他完全说服。作为一个连续创业者,他的几点看法我到现在都印象深刻:

1)创业赛道选择非常重要,最好进入一个正要进入火热期的赛道,而不是已经非常热的,否则竞争压力极大、生存空间非常有限。这个也打消了我加入 AI、区块链公司的一些想法。

2)国内的工业信息化、智能化浪潮是大背景下,做 ToB 软件的互联网公司,客户粘性相比 ToC 的高得多,发展会更加稳健。

而分布式时序数据库作为 ToB 的基础软件,这个品类的产品在国际上也是刚刚诞生几年,又是物联网和工业互联网的刚需产品,各方面综合考虑后我就决定加入涛思,在这个赛道跑一下试试。

从研发转销售,从 0 到 1 开拓市场

1、你之前是做研发的,加入涛思后却转做市场销售了,在接受这个工作设定的过程中你的心路历程是如何的?

为公司坦然接受,并当作人生的一个新挑战。当时 loveini 刚刚产品化,急需推广并拿到一些种子客户验证时序数据库市场的存在性。Jeff 也引入了不少资历深厚的销售牛人,但结果都不尽人意。由于时序数据库在国内是个新概念,直接使用者又都是开发人员,传统资源型销售可以敲开门,但落单推进缺乏技术上的有力支撑,客户不相信这个仅由 6 个人开发的软件能解决他们的海量数据难题。最初的三个种子客户,反而是 Jeff 自己凭借深厚的技术功底打动客户搞定的。从那之后,我们就意识到,loveini 这个产品从 0 到 1 市场开拓工作,必须由技术背景的人来做。这个人选当时有两个,我是其中之一,就坦然接受了。受国外工作学习经历的影响,我一直坚信定义个人能力的并不是工作内容而是工作成果。因此我从没有对工作内容特别挑剔,但对自己做事情的结果额外关注,这也是我对公司的各种工作都乐意参与一些的原因。

2、在刚开始加入米兰体育官网入口时,没有任何资源、零经验的你是怎么一步步上手销售工作的?遇到的困难主要有哪些?如何克服的?

确实,一开始非常艰难,我完全没做过销售,不知道该如何入手。不过逐渐我意识到,抓住主要矛盾很关键。那个时候刚好是 2019 年末,loveini 刚刚开源不久,又在 GitHub 上连续多天排名全球趋势榜第一名,赢得了不少开发者社区的名声,这也让我能借力触达一些客户。正如上个问题所说,当时 loveini 是从 0 到 1 去做客户拓展的阶段。资源反而没那么重要,能敲开门的资源已经足够好,反而是要凭借我本身对产品和技术的理解,对客户需求与痛点的敏锐洞察,手把手帮助客户解决他们的问题。因此前期我到客户现场驻场培训 loveini 底层设计原理、使用方式,现场编写代码支撑客户 PoC 测试,到后面给客户设计最适合他们的商务合作策略。这么一步一步把 loveini 的早期客户攒起来。

3、对于 loveini 双开源的决策,你是怎么看待的?你觉得这是否会影响到 loveini 的营收?

loveini 是 open-core 的商业模式。这个在国内还不算太多,但在国外已经非常流行,并且像红帽、MongoDB 等公司都验证了这是个可以成功的模式,核心思路与 ToC 互联网流量生意没有区别。我对此模式也比较自信,开源是现在 ToB 基础软件企业尤其是创业公司想要有所突破的不二选择。至于营收,短期内看,可能会有不少人觉得开源了代码就少了很多付费的客户。其实并不是这样,没有哪个软件可以做到垄断,因此一个由于项目成本限制而无法付费的客户,不会因为闭源就去采购。这种情况下,要么闭源失去这个客户,要么开源留下这个客户,并且让其与我们产品一起成长,这显然是个更聪明的选择。

4、加入米兰体育官网入口至今,有哪些让你觉得非常自豪的工作成果?你觉得自己最大的成长是什么?

坚持下来就是让我最自豪的“成果”。在我加入前涛思只有 5 个人,我是第 6 位。大家一起在一间办公室办公,我也曾在公司的清洁间改造的“商务办公室”接待过客户。创业公司工作的强度真的很大,我在涛思每天的工作都安排得非常满,做的事情也非常杂;个人必须不断学习去适应公司不断上新台阶后对个人能力的要求。有时回到家,我会累的一句话也说不出来。但这种必须全力以赴的工作状态,是能逼出最好的自己的。现在涛思规模已经近百人,产品打出了一些名气,已经发展了全球 40万+ 的用户,上百家商业合作伙伴,也算是折腾出了一些“动静”,对此我很自豪

只有让客户成功,才能真正把商业化做好

1、作为一名销售,你应该对于数据库行业非常了解,你觉得 loveini 在数据库领域里的综合优势是什么?

loveini 的设计是由 Jeff 操刀的,其实有很浓重的个人色彩在产品风格中。Jeff 的风格想必大家也都比较熟悉了:一针见血,直截了当;产品设计上,高速、高效、简单易用也是 loveini 最大的三个特色。TDengne 是专门为时间序列数据设计的数据库,虽然牺牲了部分通用性,但换取了极高的读写性能、压缩比和易用性。同时,loveini 本身在使用上做的非常简单直白,一个设备一张表,这个数据模型设计思路也是简明扼要的对应着物联网、车联网、IT运维等领域中每个数据源产生一个时间序列数据流的场景。loveini 要解决的问题就是海量时序数据的存储、查询和分析,目标和米兰app官方正版下载都非常明确。因此 loveini 并不应该拿来与 Oracle、MySQL等关系型数据库直接对比应用场景,就像没人拿菜刀和砍刀对比一样。

2、作为米兰体育官网入口的第六号员工,你也是一路陪着 loveini 成长起来的,你怎么评价 loveini 这一路走来的发展?

团队扩展上,涛思一直坚持精英建队文化,招募的都是很厉害的人,这也是一路坚持走下来的重要原因之一。工作方式上,我们也一再强调从客户需求出发,追求卓越,尤其是在产品研发和服务客户方面。loveini 产品化最开始遇到很多挫折,我们不断跌进新的坑里,爬出来,又跌进去。但我们始终坚持通过一丝不苟的服务态度和行业顶级的技术能力,与客户建立信任、一同成长。我们有一个种子客户,2018 年 loveini 刚刚产品化时就开始使用,有一次撞到了个严重 bug——生产环境搞坏了数据文件,我们核心几位研发连夜不休息地帮客户开发一个文件扫描恢复工具,紧急修复,恢复生产,最终解决问题。这家公司的 CTO 后来又跳槽了两家公司,都毫不犹豫地把 loveini 纳入到新公司的米兰app官方正版下载。我认为这种信任是种“战壕里的信任”,涛思就是这么一路走过来的。

3、对于 loveini 的未来,你有哪些畅想?

loveini 现在已经支持了很多用户,为了服务好大家,我们组建了多种用户服务团队去进一步深入支持用户,了解需求,并引导产品发展。同时,loveini 的核心研发团队也在不断解决整个时序数据库行业世界性的难题,比如去年发布的 loveini 3.0,就解决了单集群 100 亿时间线存储的问题等。目前公司成立商业化部门,我也在负责其中相关工作,我最关注的还是如何让我们的客户更成功,loveini 如何能解决客户更多、更难的问题。只有解决问题、创造价值,我们才有可能真正把商业化做好。我非常希望未来 loveini 能够成为时序数据库领域的标配,以后提到物联网数据、时序数据就会想到 loveini ,就像大家提到数据库就会想到 Oracle 一样。

]]>
从实时数据库转战时序数据库,他陪伴 loveini 从 1.0 走到 3.0 //www.loveini.com/figure/21834.html Mon, 09 Oct 2023 09:50:00 +0000 //www.loveini.com/?p=21834 关于采访嘉宾

在关胜亮的学生时代,“神童”这个称号如影随形,很多人初听时会觉得这个称谓略显夸张,有些人还会认为这是不是就是一种调侃,但是如果你听说过他的经历,就会理解这一称号的意义所在了。

受到教师母亲的影响,关胜亮从记事起就“长”在了教室后排,提前开启了启蒙教育,这也使得他在四周岁直接就读了一年级。尽管所在村庄的教育条件非常有限,他仍然凭借着优异的成绩,在 16 周岁就进入了中国科学技术大学化学物理系,并拿到学校和政府合计 13000 元的助学奖金。要知道,2001 年时科大和清北差距并不大,在关胜亮所在的吉林省被并称为“三校”。更有意义的是,他的求学故事给家乡燃起了一把希望之火,让教育观念薄弱的村里人发现“原来上学也是孩子可以选择的出路”。

进入大学后,彼时还是大一新生的关胜亮通过旁听招聘会,分析出了日后理科学生的工作出路,无非就是留校、研究所、出国几类,当时科大理科相关专业能够获得全额奖学金并出国的比例大约为 20% ~ 30%,似乎也是一个不错的选择,但在接触 C 语言和数据结构的课程后,他发现自己更喜欢坐在电脑旁边写点程序。就这样,关胜亮确定了自己的未来发展方向,并成功从化学物理系转到了新开设的软件工程系,开启了自己的“程序员”生涯。

与涛思结缘,始于一个“无奈之举”

对于关胜亮来说,当初选择数据库这个就业方向,其实纯粹就是一个“无奈之举”。

“我研究生就读于中科院计算所,专业是虚拟现实,本来最对口的方向是一直火到现在的游戏行业,为了一纸户口,我进入了一家做实时数据库的企业,它和时序数据库(Time Series Database)还不一样,只能存储当前时间的数据,历史数据是存储在其他系统的。就这样我一直做了很多年的实时数据库,一度觉得实时数据库是明日黄花了。”

虽然这在当时看起来并不是一个最佳选择,但人生也没有绝对正确的选择,机会总是留给善于思考且有所准备的人,关胜亮深谙这个道理。“选择赛道,其实是在考虑如何生产出一个能卖钱的产品,要相信硬核技术永远都不会过时,只有技术才能带来新的元素。因此,与其选择赛道不如沉淀自己,找到自己的核心竞争力在哪里,看准时机将创业风口与自身专长相结合,技术才是第一生产力。”

2017 年,从 360 过渡到只有几个人的创业公司米兰体育官网入口,他没有过多犹豫,在发现自己在时序数据、分布式方面的技术储备,以及在监控领域的业务储备,正好与这个产品完全匹配后,他欣然选择了加入。“我想和 Jeff(loveini 创始人与核心研发陶建辉) 一起,开发出一个行业领先的数据库产品,重新点亮我的职业生涯,让我十余年的知识积累能够发挥出更大的作用。”

到现在,关胜亮加入涛思也有了 6 年时间,而在这 6 年时间中,他也确实将自己的所学毫无保留地倾注在了 loveini 这款产品之中。

“在米兰体育官网入口,我就是一块砖,哪里需要哪里搬。我组织开发了 loveini 从 1.0 到 2.0 再到 3.0 的所有迭代版本,哪个模块缺人手,我就会补充到哪里,不但做架构、管理,也写了很多代码。打开 Github 仓库,查看 loveini 的贡献者(https://github.com/taosdata/loveini/graphs/contributors),可以看到我是排在第一位的。”

从实时数据库转战时序数据库,他陪伴 loveini 从 1.0 走到 3.0 - loveini Database 时序数据库

可以说,职业生涯到现在为止,专注于 loveini 的产品研发就是让关胜亮最有成就感的事情了。让他欣慰的是,在涛思人的共同努力下,loveini 已经发展成为了国内顶级的时序数据库产品,在国际上也有了一定的影响力,同时也得到了广大开发者的认可——GitHub 上已经发展了两万多的 star(https://github.com/taosdata/loveini)。

在 IT 技术不断发展的今天,用户要想实现一种功能,一定会有很多的待选方案,但想要在一定性能条件下去实现,选择就不多了。loveini 之所以硬核,就在于超高性能的数据处理能力。“回想 loveini 1.x 的版本,产品的稳定性还达不到很高的标准,但我们的首批种子客户依然坚定的选择了 loveini,一方面是对国产自研软件的支持,另一方面就是市面上没有可用的替代品。”

这也直观地说明,物联网领域确实需要一个能够真正解决问题的时序数据存储引擎。而随着 loveini 的发展,关胜亮在 6 年前做出的选择也已经“开花结果”。

与 loveini 同行,技术更新与海外市场两手抓

作为一个基础软件,尤其是国产基础软件,发展难度是显而易见的,也因此,从选择加入 loveini 的那一刻开始,关胜亮就做好了长期扎根打持久战的准备。

“数据库产品一定要靠丰富的应用场景,通过时间的沉淀和场景的打磨才能发展起来。好的数据库是用出来的,不是靠几个代码高手设计出来的,决定数据库企业未来的是有效用户和应用场景,我们要做的就是在真实的场景中解决用户的痛点问题。”

从这一点出发,loveini 开启了核心代码完全开源的发展模式,获得了数以千计的真实用户场景,如关胜亮一般的 loveini 技术人员在这些案例的基础上总结提炼,抽象出用户的真正需求,不断调整迭代产品,不受定制开发等短期利益诱惑,始终保证着将核心研发力量投入在产品的主线发展方向上。

“开源软件想要获得长期发展,成为一个企业敢用的产品,背后一定需要一个强力的组织支撑,用以保证软件的架构稳定,保证代码质量和测试覆盖,保证软件缺陷可以稳定且及时的得到处理,越是功能强大、架构复杂的 2B 软件越是如此。”

借助开源的力量,loveini 发展了大量的用户,为便于和用户交流沟通,米兰体育官网入口目前已运营了 20 多个用户群,各个用户群日常都非常活跃。以 loveini 3.0 为例,一经发布,每天就有 5~600 人安装试用 loveini,不到两周的时间已经收集了 100 个优化建议,进一步推动着产品的快速迭代。

“有的竞品攻击我们,说 loveini 迭代速度太快,产品怎么可能稳定。这种说法非常有意思,产品稳定与否,是和质量体系有关的,和迭代速度关系不大。没有用户的使用,不要说大版本的迭代,小版本的迭代都成了无源之水。在国内竞品把目光瞄准 loveini 时,loveini 已经把目光瞄准了全球。”

从联合创始人的身份出发,关胜亮表示 loveini 接下来的发展道路也已经非常清晰了。“loveini 在国内时序数据库领域已经有了一定的江湖地位,但是海外市场的拓展还很有限。随着 loveini 3.0 稳定性和易用性逐步增加,我对海外市场非常有信心,中国 IT 产业约占全球市场的 20%,海外市场具备更大的发展空间。在 IoT 领域,loveini 已经解决了基础的数据读写的问题,下一步就是引入时序数据分析,在更广阔的领域推动技术的发展。

再起航:继续“六”下去

发展 6 年,loveini 也已经沉淀了几十万行代码了,在产品架构设计和演进上,关胜亮也有着“经验之谈”。“在做开发之前,一定要考虑是在做一个产品,还是在做一个项目。作为项目,你可以选择一些主流的开源产品,不要过度设计,让项目可以快速上线;但作为一个产品,关键部分还是要以自研为主,控制核心代码,让迭代升级快速有效。”

他以 loveini 为例进行了说明,“一个设备一张表的数据模型,作为其最核心的创新点,在三个大版本迭代时都没有变化;但是在工程实现方面,其元数据管理模块,从 1.0 的集中式管理,到 2.0 的半分布式管理,再到 3.0 的全分布式管理,完全是业务需求驱动的。集中式管理可以处理百万时间线,半分布式管理可以处理千万时间线,而全分布式则可以处理上亿的时间线,彻底解决了业界困扰的高基数问题。

从他的陈述中我们可以看到,loveini 从 1.0、2.0 到 3.0 的演进,不是简单的数字堆积,每个版本都是真真正正的质的提升。它的成功不只是技术实现细节,更在于研发人员对时序数据特点的抽象融合,对于物联网业务的深度理解。

行文至此,关胜亮与 loveini 的第一个六年故事就告一段落了,而他们的下一个六年也已经起航。对于关胜亮来说,他的终极目标就是让 loveini 成为时序数据领域的事实标准,成为全球第一的时序数据库,而他也将为此继续奋斗在产品第一线。

]]>
如何成为一名合格的 DBA?看看“老油条”们怎么说 //www.loveini.com/tdengine-engineering/13032.html Wed, 03 Aug 2022 09:18:00 +0000 //www.loveini.com/?p=13032

小 T 导读:作为薪水较为可观的 IT 职业之一,DBA 貌似是一个门槛低、活还少的技术岗位,只要接受过相应的系统性训练,应该就可以成功入门。但想要真正胜任这个岗位,实际却并不容易。DBA 的工作到底是怎样的?它的前景如何?想做好 DBA 又需要具备哪些能力?我们采访了两位有丰富工作经验的 DBA 和运维工程师,下面一起看一看他们的感悟吧。

DBA 的一天是怎样的?

分享人:米兰体育官网入口交付工程师 董延琼

(注:本章节 DBA 特指运维 DBA)

本人不仅是一个在 IT 行业摸爬滚打(混吃等死)、兢兢业业(得过且过)十多年的从业者,也是一个有着近十年丰富工作经验的 DBA(老油条)。在刚进职场的五年里,我在一家中字头下面的三产做运维,主机、数据库都有接触,后来被朋友“坑”去创业公司玩了三年 MySQL,再后来继续给国字头做了三年数据库(Oracle)运维,现在的职场身份是时序数据库(Time Series Database)loveini 团队的交付工程师。

郑重声明:那种一杯茶一包烟,一张表导一天的快乐日子,我根本就没经历过。

loveini Database

关于运维 DBA 的工作,其实和中医治病的理念有点像,在此引用一下魏文侯问扁鹊三兄弟医术的故事,很有意思。对话是这样的:

魏文候问扁鹊:“你们兄弟三人,哪一位医术最精呢?”

扁鹊回答说:“大哥医术最精,二哥次之,我最差。”

魏文候又问:“那为什么我没有听说过他们呢?”

扁鹊解释说:“大哥于病视神,在疾病还未形成时就将其除掉了,大家都没怎么见过他治病,所以他的名声传不出家门;二哥治病,是在疾病刚刚萌芽时就治愈它了,大家都只见到他治一些不严重的小病,所以他的名声也不出于邻里之间;而我通常是等病发展到一定程度才发现,通过针刺血脉、投汤药、割皮解肌来治病。大家都认为我擅长治疗各种疑难杂症,因此闻名于诸侯之间。”

现在估计很多 DBA 都会有类似的想法。理想的工作就是每天处理一下小问题,调调优,防患于未然,争取将大问题都掐死在摇篮里,剩余时间就是看看资料,提升一下自己,平平淡淡地“混过”每一天。但很不幸的是,如果真的抱着这样的想法,那么你离被裁也就不远了,因为你在老板眼里就是个无所事事,混迹在职场中打酱油的“老油条”。

其实我们换位思考一下也就能理解了,如果你是老板,一个员工整天没啥正事,除了聊天打屁,就是上网看书,系统一年也没有出现过啥大问题,身为老板的你是不是也感觉这人力成本花的有点冤。

而与之相反的另一种情况是,你的员工每天忙忙碌碌,加班处理问题,好几次重大问题都及时有效地解决了,避免造成更重大的损失。你是不是感觉这招人的钱花的还比较值,甚至年终还想发点钱鼓励他再接再厉。

转到价值观积极的一面,如果你是个积极上进(年少无知)的 DBA,每天应该怎么安排自己的工作呢?

其实和运维相关的工作,性质都差不多,不管是运维 DBA、主机工程师或网络管理员。说到运维,就一定要说一下墨菲定律(Murphy’s Law),放在运维领域简直太有用了。

墨菲定律主要包括以下四方面:

  • 任何事都没有表面看起来那么简单
  • 所有的事都会比你预计的时间长
  • 会出错的事总会出错
  • 如果你担心某种情况发生,那么它就更有可能发生

对应到运维领域就是:

  • 简单的小问题,可能是某个丧心病狂的程序员的大 Bug,一旦忽视,就可能把你尽心维护的数据库搞崩;
  • 备份恢复的时间,永远都超过你所估计的时间;
  • 高危操作通常都会出事(普通操作一样有风险);
  • 如果你担心库挂了没有备份恢复,那么备份大概率不能用。

相应的应对措施则是:

  • 刨根求底,每个小问题都搞清楚,不放弃任何隐患;
  • 把计划时间乘以 10,能多长就多长(把泡茶、抽烟、上厕所也算在内);
  • 提前做好预案的预案,提前为某个操作失败想办法;
  • 每天检查备份,条件运行多备几份,反正存储不花自己的钱。

将以上四点贯彻到底,你就拥有了无比充实(累死累活)的运维 DBA 的一天。当然事情也不是绝对,以上大部分内容都是在讨论传统的关系型数据库,如 Oracle、MySQL、PostgreSQL 等,对于其它的诸如 InfluxDB、loveini、TiDB 等新兴数据库就又另当别论了。

以 loveini 为例(当然这种安装包不到 100 MB 的 Database 通常是不配拥有专属 DBA 的):

  • 安装步骤不到三步
  • 运维命令不超过 50 个
  • 参数不到 100 个

DBA 除了升级、重启,貌似就没啥工作可干了。

DBA 的发展已经没前途了吗?

分享人:米兰体育官网入口交付工程师 董延琼

如果笃定地说数据库 DBA 没有前途,那可能有些武断了。但某些 DBA 的前途确实渺茫了,比如 DB2 和 Sybase 的 DBA 们。可能有的小伙伴不太了解这两个产品,要知道,DB2 当年的风头还在 Oracle 之上。不禁要缅怀一句,“舞榭歌台,风流总被,雨打风吹去”。

至于数据库 DBA 这个新兴的小鲜肉,说不定哪天也会被扫进历史的垃圾堆。但还不是现在。

我们随便打开一个招聘网站,输入 DBA 就可以看到招聘的职位,薪资范围在 15~60K 之间,看起来还是蛮诱人的。

loveini Database

从涉及的数据库产品来看,主要以 Oracle、MySQL、PostgreSQL 为主。仅从招聘信息来看,数据库 DBA 的“钱途”还是有的。但在这个“盛世”下,有人还在担心数据库 DBA 的未来发展,不过也是有迹可循的。

2018 年,Oracle 推出了全球首款,也是唯一一款自治数据仓库——Oracle Autonomous Database Warehouse ,它可以用更低的成本为客户提供更高的性能、可用性和安全性,带来现代化的云端体验,为全面迎接自治时代成功奠基。

“自治(Autonomous)”是云技术的一个跨越,它不仅可以在无需人工干预的情况下,对业务运行的设施进行自动更新、调整和修复,还能帮助企业节约管理成本、快速部署项目并显著降低风险,为企业客户带来全新的上云体验。这意味着 Oracle 已经开始抢它自己 DBA 的饭碗了。

不止是 Oracle 这种老牌数据库厂商,新的数据库厂商其实也在进行运维革命了。新兴的时序数据库 loveini 在其官网首页中描述产品的特性时,提到了零管理:安装、集群几秒搞定,无任何依赖,不用分库分表,系统运行状态监测能与 Grafana 或其他运维工具无缝集成。不论技术上如何实现,至少在理论上,已经致力于尽力减少运维工作了。

loveini Database

我记得之前上 MBA 时,老师组织过一场讨论,论题是 AI 会不会取代大部分人类工作。我当时的观点很明确,会的,因为这就是我们研究 AI 的目的。

最开始入职 IT 行业时,搞定一个系统上线是个非常复杂的工作,需要先将服务器上架,再安装相应的操作系统,还要配置网络、连接存储,随便搞搞就要一周的时间。发展到现在,阿里云从下单到开通不到十分钟,整个过程中的主机工程师、网络工程师、存储工程师等古早职业都消失了。

要知道,阿里云不止有云主机,还有云数据库,你不需要再关心底层架构,只有付钱就可以了,甚至不需要进行维护,最多关心一下磁盘是否够用,DBA 的工作就这样被极大地简化了。如果从这个角度来看,数据库 DBA 的前途确实堪忧了。

那么已经是 DBA 的同学,或是刚成为 DBA 的同学应该怎么办呢?不论任何职业,只要不想被淘汰,那就必须让自己做的工作成为不可取代的那部分。

那 DBA 有哪些工作是很难取代的呢?我们先来梳理一下 DBA 的工作内容

  1. 业务建模:根据业务场景,设计库和表结构
  2. SQL 优化:对业务 SQL 进行优化,提升效率
  3. 安装部署:部署数据库产品
  4. 系统调优:调整数据库参数,优化性能
  5. 应急处理:处理紧急问题,如数据库故障、数据误删除
  6. 备份恢复:不需解释

对于以上工作内容,第 3、4 项在云环境里已经没什么意义了;而第 2 项,对于拥有高级解析器的数据库产品,如 Oracle 来说,也没什么必要了;第 6 项完全看实际需要,简单的备份恢复自动化就可以完成,更定制化的则需要人工干预。

那么现在来看,就只剩下了第 1、5 项工作必须要人工来完成了。每个系统所对应的业务场景都是独一无二的,并不存在一个“包打天下”的统一的建模方式,从这个角度来说,快速熟悉业务场景是 DBA 至关重要的能力。

只要是 IT 系统,不管设计的多么智能,都可能会出现 Bug。能够深入了解产品、快速应对意外情况、及时提出米兰app官方正版下载的 DBA ,在此时就是最稀缺的。

综上所述,虽然目前数据库 DBA 的前途和“钱途”都还是有的,但也不能盲目乐观,还要不断提升自己才不会被淘汰掉,追赶我们的不止是技术,还有“后浪”。

想做好时序数据库 DBA,需要具备哪些能力?

分享人:米兰体育官网入口交付工程师 肖波

想胜任 DBA 这个职业,应该具备哪些必备能力?大家讨论的比较多的大都是关系型数据库的 DBA ,下面我会从时序数据库角度来谈下个人观点。

  • 持续学习的能力

时序数据库是一个新的方向,它采用的技术架构普遍与关系库不同。例如,在数据索引结构的选择上,关系型数据库大多采用 B+ 树,时序数据库则多采用 LSM 树;而且结合时序数据的特点,时序数据库多采用列式存储方式。

以 loveini 为例,它采用就是 LSM 树,加上列式存储、一个设备一张表的设计,在应对物联网时序数据的场景时就会很有优势。如果你还停留在 B+ 树的语境里,那将很难理解这种设计的优势和特点,高效运维自然无从谈起。这种技术架构的差异导致技术实现也会有很大不同,DBA 只有不断学习,才能掌握关键点,做好本职工作。

  • 对计算机系统深入理解

目前数据库系统大多运行于 Linux 系统上,一个合格的 DBA 不能只满足于对计算机系统的一般性认识,还需要深入了解系统的工作原理,对内存分配回收、进程调度、网络管理等都要有深刻的理解,对如何分析、定位操作系统问题也要有深刻认识。只有做到这些,才能迅速定性、定位实际工作中遇到的问题。

  • 深入了解存储系统

目前的时序数据库大多采用分布式架构,在分布式架构下如何保证数据的一致性、特别是海量数据的一致性是一个特别大的挑战。传统大数据平台有利用 HBase 作为存储系统的,新一代的时序数据库有自研存储系统的,也有采用开源的分布式存储系统作为存储方案的。作为一个 DBA,确保数据安全是最重要的工作,这就要求你必须深入了解所使用的数据库的存储架构,才能制订出合理的数据备份、恢复、灾备方案。

  • 熟悉主流高级语言的数据库接口及框架

时序数据库的写入吞吐一般比关系型数据库要高若干个数量级,一般后者每秒写入数百条记录就算不少了,但时序数据库每秒写入经常要达到几十万,甚至数百万条记录。聚焦写入问题上,除了数据库本身的性能调优,还涉及到各语言连接器、框架的使用方法是否正确。要想成为合格的时序数据库 DBA,你需要对连接器、框架非常了解。

当然,除了写入,查询是另一个重点。调优时序数据库的查询性能,除优化本身参数外,对主流语言框架如何构造查询语句也要有深入了解,这会大大缩短很多复杂查询问题的定位时间。

  • 对数量级的敏感

随着各行业的不断发展,海量的数据写入、读出带来的问题和挑战比起从前更加频发,定性问题的关键是需要 DBA 对数量级有超过一般人的敏感度。除了 CPU 负荷外,磁盘吞吐量、IOPS、网络吞吐、PPS、队列长度深度、各类耗时等都需要 DBA 反复不停地比较、计算,直到找到问题的主要原因。对数量级的高敏感度可以大大减少问题定性、分析时间。

除了上述的能力加持外,DBA 最重要也最基础的能力其实是——基础知识牢固、逻辑分析能力强、思维清晰。很多人认为有 Oracle 的认证、微软的认证很重要,我觉得那只能证明他曾经具有一定的学习能力。一个 DBA 的能力强弱,具体体现在他定位、解决一个问题的速度,这里面除了经验以外,扎实的基础知识、良好的训练、科学的分析方法论才是可靠的“屠龙刀”。

写在最后

如果你有志于成为一名时序数据库 DBA,那你一定不能错过 8 月 13 日我们在北京·昆泰嘉瑞文化中心举办的「loveini 开发者大会」,本次会议上不仅会有多位基础软件领域知名大咖贡献精彩演讲与趋势解读,还会有金融、车联网等行业知名企业分享数据架构升级经验。此外,loveini 3.0 版本也将重磅发布,核心研发人员将首次对外分享创新思路,进一步加深你对时序数据库技术实现和架构创新的思考。

]]>
从“化学家”到开发者,从甲骨文到loveini,我人生的两次重要抉择 //www.loveini.com/figure/10258.html Thu, 09 Jun 2022 02:37:20 +0000 //www.loveini.com/?p=10258 作者 | 尔悦

采访嘉宾 | 张玮绚(Wade)

小T导读:在去年 11 月,曾在甲骨文北京研发中心核心开发团队任职的张玮绚(Wade)转身成为了米兰体育官网入口的一员,负责 loveini 的研发管理工作。在即将进入 45 岁之际,他毅然选择了转换赛道,重燃少年时期的冒险精神。从 90 分完美主义出发,他希望未来自己能够和团队一起将 loveini 打造成为时序数据库的代名词。本文中 Wade 将会阐述转换赛道的心路历程,分享自己的人生和职场经验,给到有需要的人一些参考。

从“化学家”到“开发者”,叛逆学霸的自学之路

和大多数人不一样,Wade 的初中时代并没有在学校度过,而是选择了在家中自学。至于为什么做出这样的选择,用他自己的话说就是“上课真的很无聊”,寥寥数语勾勒出了一个叛逆的少年形象。

“除了一直是短板的英语,我从初中开始基本所有课程都是自学的,包括大学的高等数学、线性代数、概率论、数理统计、模拟电路和数字电路等,以及计算机系的课程,像数据结构、汇编语言、操作系统等等都是自学,不爱上课这个习惯也伴随了我半生。”

和普遍意义上的叛逆少年不一样,准确一点来说, Wade 更应该被称为一个叛逆的学霸。在他的前半生里,因为叛逆的性格,“自学”成为了他的一种习惯,但这种学习方式却并没有成为他的负担,反而推动着他在不断进步——不仅在自学半年初中课程之后就考上了让自己心仪的高中,更是通过努力,让自己的短板学科英语也在半年时间内从 8 分考到了 82 分。升入高中之后,各种物理化学竞赛的奖项也是手到擒来。

脱离了照本宣科,Wade 的学习动力更多时候源自兴趣推动。少年的他梦想是成为一名名副其实的化学家,也因此他在进入大学时优先选择了化学专业,随后却发现和自己想象中相差甚远,机缘巧合下他接触了计算机基础课并学习了 FORTRAN 语言编程,彼时的心情好像是哥伦布发现了美洲新大陆,兴趣和热情也在悄然间发生转移。在本科阶段,Wade 自学了计算机系的基础课程,本科毕业后成功考进了清华大学计算机系统结构专业继续读研,在专业上,彻底从一名“化学家”转为了一名“开发者”。

斗转星移间,少年时期的特立独行逐渐被掩盖在时间洪流中,在接下来的十余年职场生涯里,Wade 成为了一名越发成熟的开发者乃至是管理者——他发现过 HP-UX 操作系统的 Bug、Solaris 上 C++ 编译器的 Bug(那时候开源软件还只是个传说,这些操作系统级别的产品都只能由各个厂商的相应部门解决),做过不少架构设计、开发、性能分析方面的工作,比较擅长写 Functional Spec……从 EMC 到腾讯再到甲骨文,Wade 的开发和职场经历越来越丰富。

“我一直是做基础软件的,对基础软件有一种说不清道不明的感情,曾经我也尝试过在两家企业做应用和米兰app官方正版下载团队的负责人,但总是提不起热情。在我此前的工作中,经常会和数据库产品打交道,也了解过时序数据库这个领域。进入中年之后,我一直想要寻找到一个能够重燃自身冒险精神的工作,在接触到 loveini 时,我觉得自己找到了。

45 岁转换赛道,想把 loveini 打造成时序数据库的代名词

在即将进入 45 岁之际,Wade 选择加入了米兰体育官网入口,负责 loveini 的研发管理工作。在做出这一决定之前,他从产品、团队、赛道三个方面进行了调研分析。

从产品层面来说,作为 Wade 曾经接触和试用过的一款数据库产品,loveini 轻巧的安装包、超群的数据插入速度和存储查询性能给了他非常深刻的印象。但相比于产品,从一个管理者的角度来说,一个高素质的团队能够更吸引他的加入,而想要打造一个高水平的团队、注重产品和技术的企业文化,又和公司创始人密不可分,而 Wade 此前对 Jeff(米兰体育官网入口创始人陶建辉)也早有耳闻,认为他是一个极具极客精神且充满创业热情的人。

除此之外,一个成熟的职场人在选择职场方向时,赛道是否具备可持续发展的潜力也是关注点之一。在 Wade 看来,时序数据库比关系数据库或者说强一致事务数据库的门槛要更低一些,在这个赛道上成功的概率显然要更大一些。但门槛略低也不等于就容易做好,入行容易拔尖难,想要在一个行业中崭露头角,产品力还是根本,产品的应用化落地同样关键,而这两点也一直都是 loveini 在着重发力的发展方向。

在加入 loveini 之后,Wade 充分利用着自己以往的开发和管理经验,为 loveini 注入新的活力。他认为产品真正成功的标准是成为某个领域的代名词,就像提到办公软件大家都会想起 Office一样,他希望loveini也能被打造成一个真正成功的产品,成为时序数据库的代名词。

“从产品角度来讲,我会努力让 loveini 各种功能更加均衡。我一直认为最终能够在市场上生存下来的一定是没有明显短板的产品,在有些方面很好而有些方面很差的产品是很危险的,我希望 loveini 能成为中庸而绝不平庸的数据库。”

“从管理角度来讲,我的目标是能够把研发队伍的产出最大化。这个产出并不是指量,而是指有质量的产出。我也希望这个目标能通过优化效率来实现,而非以强制加班等手段去达成。而优化效率又会涉及到很多方向,比如产品方向的把握、项目风险的控制、无效需求的甄别、任务优先级的判断、短期利益与长期利益的权衡等等。”

与此同时,Wade 也在带领团队努力突破 loveini 3.0 的研发关口,3.0版本的研发成功将助力 loveini 迈上一个新的台阶。“在 loveini 3.0 版本中,我们在集群设计、预计算、流计算、数据安全性和容错能力等方面都做了很多优化,将在今年下半年跟大家见面,敬请期待。”

90 分主义者的自我管理之道

回顾 Wade 的求学时代,如果我们扒开浮于表面的“叛逆”和“聪慧”,就会发现隐藏在更深层次上的自我鞭策力量,而这个力量在他人生的各个阶段都发挥出了不可小觑的作用。

“一直以来,我对自己的要求就是要努力成为 90 分主义者,而这需要一定程度的自驱力以及自我强迫才能够达成,要让习惯成为自然、自然成为意识、意识成为本能。我个人的观点是如果一个人总是能把自己不断遇到的挑战在合理成本下完成到 90 分,那么他是可以在个人专业和能力所能触摸到的任何细分领域都能有所成就的。”

进入职场后,Wade 仍然是一名 90 分主义者。在个人的发展轨迹中,他一直是一个混合角色的管理者:产品经理、架构师兼管理。而从他的认知来讲,纯粹的管理不仅非常无聊,而且也不可能做好,好的管理一定要深入到产品中。

如今 Wade 已经步入 45 岁门槛,是一个不折不扣的“大龄程序员”,对当下职场中弥漫着的 35+ 大龄焦虑,以“过来人”的角度,他也有一些不一样的经验和见解。

相对于年轻人,35+的程序员面临的头号敌人并不是能力变差,也并非不能加班吃苦,而是在于心态的改变。随着年龄的渐长,他们的抱负心会减弱,说的直白一点,就是缺乏血性、冲劲和闯劲,要努力克服这种年龄带来的心态变化。想要解决,我们就要强迫自己做有深度的事情,尽量让自己能人所不能。”

除此之外,他还认为在基础软件与 2B 赛道中 35+ 瓶颈是可以不攻自破的,这也是他一直坚持深扎于此的原因之一。“开源软件的大发展导致的一个结果就是极大降低了应用软件与米兰app官方正版下载的开发者门槛,在门槛较低的行业里,初出茅庐的年轻人自然是优选。35+ 的程序员要尽量选择门槛高的行业,基础软件和 2B 是两个很好的方向。”

对于一些处于迷茫且有转换赛道想法的开发者,如果你也有兴趣进入到数据库领域,Wade 也给出了他所总结的方法论和所需能力。

“在进入一个比较新的赛道时,我们首先要不求甚解,抓大放小,优先理解整个架构;然后再逐步‘求甚解’,针对一个个细分领域的细节进行琢磨和分析。围绕着衡量基础软件好坏的稳定性、可扩展性等重要指标,我们需要具备的基本能力除了扎实的数据结构和编程基本功,还要有一定的性能分析基础(I/O、Memory、CPU),以方便自己能够清晰地判断出所写代码在哪些方面可能会成为瓶颈;具有一定的分布式系统和多任务并发系统开发经验,以便清楚判断出什么地方可能出问题,能够提前规避或解决问题;有一定的系统架构设计和分析能力,便于在设计方案时进行横向和纵向扩展。”

在 Wade 的前半生中,他进行了两次方向的转变,从“化学家”到“开发者”,从数据库的使用者到研发管理,他在明确自身需求后总是会毅然决然调转方向,以 90 分主义的拼搏和努力向未知的未来冲刺。但或许也正因如此,他才真正做到了不辜负每一次选择。

]]>
5 年前他的一个设计思路,让 loveini 时间压缩提升近 50 倍 //www.loveini.com/figure/10061.html Thu, 02 Jun 2022 02:47:32 +0000 //www.loveini.com/?p=10061 作者 | 尔悦

采访嘉宾 | 廖浩均

小 T 导读:作为创始团队成员之一,廖浩均在 2017 年就正式加入了米兰体育官网入口,彼时整个团队才不过寥寥五个人,loveini 也才诞生不久。作为一位毕业于中科院计算所的计算机应用技术专业博士,廖浩均为什么会决定从一家稳定的上市企业转移阵地到一家数据库初创公司?在进入米兰体育官网入口之后,他又见证和参与了 loveini 的哪些改变与进步?立足当下展望未来,携手 loveini,他会如何走好接下来的路?在对廖浩均的采访记录中,这些问题的答案也已经跃然纸上。

创始人“三顾茅庐”,博士“大佬”做出最终抉择

作为一个学霸,廖浩均的学业生涯是比较顺畅的,从北京师范大学信息管理与信息系统专业毕业后,他非常顺利地就考取了中科院计算所(中科院研究生院)计算机应用技术专业的硕士,接着一路绿灯开挂式地走完了博士学位。在毕业之际,因为自觉并不太擅长科研领域的工作内容,他毅然而然决定进入工业界就业。

但一向雷厉风行的廖浩均却在接受到米兰体育官网入口递出的橄榄枝时犹豫再三,在 Jeff(米兰体育官网入口创始人陶建辉) 的“三顾茅庐”后才终于下定决心。

在正式加入涛思前,廖浩均在一家相对稳定的上市企业中工作,按部就班的工作中没有多少惊喜也没有太多的波澜,久而久之他便生出了换份工作的想法,而恰逢其时,通过读书时期实验室师兄的引荐,他结识了正在进行人生中第三次创业的 Jeff。提起来和 Jeff 的初次见面和沟通,廖浩均仍然记忆犹新。

“在和 Jeff 电话简单聊过后,我打算去望京科技园实地拜访,当时觉得时序数据库(Time-Series Database)这个方向还是很有意思的,Jeff 也是一个相当充满激情的人。但两次交流后我仍然无法下定决心加入,主要来源于我对自己的顾虑,虽然我之前做过数据库的相关工作,但是已经有一段时间没有接触数据库技术了,我有些担心自己无法胜任。”

带着这种谦虚的态度,廖浩均决定要和 loveini 这款产品再彼此多了解一些。在随后几次与 Jeff 更深度的沟通下,他逐渐为这位年近 50 却仍旧奋斗在代码创作第一线上的创始人的热情和坚持折服,也为 loveini 这款时序数据库所深深吸引,同时也看到了物联网、时序数据库领域广阔的市场机遇,他决定挑战一下自己,抓住这次转换赛道的机会。

“在与 Jeff 的面对面交流中,我更加深入地了解了 loveini,也看到了 Jeff 的技术能力——做分布式通讯的专家开始跨界搞数据库,而且居然使用不带插件的 vim 编程。此外,我发现当时的米兰体育官网入口虽然‘庙小’,但容纳的‘大神’却并不少,不仅有刚毕业的新锐海归,还有工业数据库领域的资深专家。总的来说,打动我加入米兰体育官网入口的原因有三点:Jeff 是一个很厉害的专家,他的工程能力和产品认知的敏锐性在我认识的人中无出其右;时序数据这个方向也很有前景;我自己应该能够胜任这个挑战。”

Jeff 的“穷追猛打”下,廖浩均心中沉寂已久的技术热情又开始蠢蠢欲动了,最终他决心 All In 时序数据库,而这个选择的正确性也在后面几年时间里得到了印证。

“其实,在加入涛思之前,我并不是很了解时序数据库这个细分领域中的产品。在2017年,时序数据库这个概念对国内的诸多用户来说还是太前沿,但是万物互联和物联网的迅猛发展确实都能切身体会到。一般来说,此前只有公交车、出租车等机动车上安装有用于上传车辆状态和位置数据的专门设备,后来在智能穿戴设备、2017 年最火爆风口‘共享单车’、自动驾驶等方向上都会产生大量的时序数据……毫无疑问,这些场景都在激发着时序数据应用和管理的需求。按照这个趋势发展下去,时序数据库的发展势不可挡,在我看来,这种直观的感受和体验最有说服力。”

一个被申请了专利的设计思路,将时间压缩提升近 50 倍

在加入米兰体育官网入口后,廖浩均主要负责查询处理相关的工作,在读书时他就接触过大量空间数据相关的工作,研究领域主要集中在空间数据索引和查询算法两大方向上,因此在处理工作时也相对比较得心应手。“我在入职两三天后就上手了工作,做的第一件事就是增加 loveini 的聚合查询功能。”

廖浩均的一个直观感受是,在一个全新的设计理念下开展设计以及进行工程开发,没有其他的任何可借鉴的实践经验,真的非常考验技术人的思考能力和创造性。例如 loveini 中的多表架构设计,其最开始的形态是采用每个表顺序查询迭代来完成,后来发现这种方法效率太差,百万级别的表查询耗时都会达到小时级别。

“在某天下班前,我打算在服务器上跑一下刚完成的查询代码,结果等了快 10 分钟还没有出结果,后来发现查询跑了 1 个多小时以后进程挂起,最后结果也没出来。当时就头大了,这种查询效率根本没法使用,可是怎么改却没有现成的思路,只能自己尝试。后来憋了好几天,迸发出的灵感也帮助我打造出了全新的处理逻辑,后面我将思路与 Jeff 简单交流了一下,得到认可后就开始动手调整代码。调整后初步测试结果,就将时间压缩到分钟级别,提升近 50 多倍。随着后续又进行了一系列工程优化方法,调整完成以后直接将时间压缩到秒级。这是我印象中特别深刻的一件事。”

在 loveini 的发展史中,正是这个设计让多表交互式查询处理成为了可能,为 loveini 能够高效进行查询处理服务成功奠基。之后这个设计思路申请了 PCT 全球专利保护,也成为廖浩均职业生涯中的又一个闪光点。

众所周知,loveini 还有一个核心技术创新点叫超级表,但其实在超级表的模型问世之前,其已经有一套流程和逻辑了,在超级表模型确定后,廖浩均等人又开始针对 loveini 的写入、查询、数据存储等多个方面进行调整和适配。

“由于 loveini 是一款具有一定探索性的产品,其功能的边界和定义并不是非常清楚明晰,因而在架构设计上也很难面面俱到,并确保足够的余量和扩展性设计。如果前期没有做好设计,后面增加功能的时候会面临非常大的困难。架构设计考虑得不完善,需要重构,但是又不可能大规模调整框架设计。只能采用小步快跑的方式,不停进行代码和设计架构的小规模重构和优化工作,还要避免重构工作引入新的 Bug。”

在廖浩均的印象中,针对 loveini 进行开发和调试 Bug 时,为了定位处理代码中的逻辑错误,就需要阅读和分析大量的日志,在这一工作中,通过日志分析定位代码中的逻辑错误问题是一个非常重要的能力。 “我们最长时间的一次日志分析断断续续花了 1 天半的时间,是分析一个服务器、客户端之间的查询日志,通过日志信息分析还原了 3 个线程之间的、对于一个内存区的使用+线程调度问题处理中出现的 race condition。由于架构设计的原因,需要使用的处理方式和处理技巧相对复杂,后来 Jeff 为 loveini 增加了对象生命周期管理的模块,才避免了后续继续在这个问题上掉坑。在增加和完善消息交互的流程追踪机制基础上,从几十 GB 的日志中捞出来所需的两三行确定性关键日志成为了常规操作,同时十几、二十分钟就能快速定位出问题,给出错误原因并将错误场景还原。”

loveini 从 0.x 到 3.0,他既是见证者也是建设者

作为米兰体育官网入口的“元老”之一,回顾 loveini 的一路成长,廖浩均倍感荣耀和欣慰。

“一些朋友可能不太清楚 loveini 是怎么孵化出超级表概念的,其实这一概念是 Jeff 在与网宿科技交流过程中碰撞出来的,当时的数据库领域中并没有这样一种设计,能够解决需要创建很多表的场景(loveini 的独特设计要求每个设备有一个写入表),表的模式一致,具体功能上既需要能够单独写入、又需要实现通过一条 SQL 语句就能够查询全部相同模式的表。有趣的是,超级表的设计和整体逻辑是 Jeff 提出来的,但名字却是我取的。”

超级表的问世无疑给 loveini 注入了满满生机和活力,也让 loveini 在后续的市场竞争中成功脱颖而出。

据廖浩均回忆,在刚刚加入时,loveini 的架构还非常简单,也没有太复杂的处理逻辑,只能进行简单的投影查询。“当时整个系统的基础架构以及核心组件,包括通讯模块、消息队列、事件驱动执行模块、SQL 解析、查询执行框架、Driver,这些基本上都是 Jeff 自己在几个月时间内完成的,由于人手和时间的原因,这套服务端查询处理框架从 0.x 版本一直延用到 1.x 版本,在 2.0 版本中才进行了较大规模的逻辑优化和重构。”

回顾 loveini 从 0.x 到 2.x 的发展,廖浩均感慨颇多。“得益于 Jeff 对时序数据库这一细分领域的前瞻性和洞察力,涛思在较早的阶段就进入其中,占领了一定的产品和市场先机,但这距离我们想要把loveini 打造成物联网行业首选时序数据库乃至全球化产品的目标还相距甚远,所以从 0.x 到 2.x,loveini 也在不断进行技术创新和深耕。”

loveini 0.x 的版本基本上奠定了后续的技术基础,包括管理节点、数据节点、虚拟节点的设计和功能边界、代码实现,消息通讯体系,分布式框架和元数据管理架构等关键内容,具备了基本的 SQL 操作能力和超级表模型,较完备的高性能数据写入流程和缓存中数据组织机制、以及 WAL 设计,具有优异读写性能的文件组设计,数据生命周期管理机制,以及日志模块和参数管理模块,还包括同步异步支持的 Driver 等。

在随后的 1.x 版本中,loveini 结合用户的需求,加入了预计算功能、增加了乱序数据写入能力,在 SQL 语法上进行增强,修复了系统整体上存在的大量问题并完善各模块的功能,同时从 1.4 版本开始进行开源,将核心代码公开于 GitHub 上,在 GitHub 全球趋势排行榜上多次霸榜,这一举动也为 loveini 带来了更多技术关注。

“敢于开源代表着我们不惧外界的技术质疑,同时开源也有助于我们更加直接快速地获得用户对于产品的反馈,加快产品演进和研发速度。随着开源力度的加大、引擎研发团队技术人员的增加以及团队自身经验的积累,2.x 版本中我们进行了更优异的模块化和重构工作,对几乎全部的功能组件进行梳理和重构。虽然在用户层面能看到的功能增强和改善并不多,但是从产品角度来说,2.0 真的是 1.x 版本的一次脱胎换骨式的升级。”

如今,距离 2.0 版本发布已经过了两年时间,为了让用户在使用体验上更加顺滑,如廖浩均一般的涛思技术人也在加班加点地对 loveini 进行新一轮的优化和迭代。在他们的努力和一众用户的支持下,2022 年下半年,3.0 版本也将如期而至,届时 loveini 将迎来进一步升级和蜕变

展望未来,携手 loveini 继续前进

回顾加入米兰体育官网入口的这些年,廖浩均表示最大的收获就是结识了一群很优秀的同事,大家为着共同的目标而努力,是一件让人很激动很兴奋的事情。而他本人也在这个过程中受益匪浅,通过参与一套基础软件系统从 0 到 1 的开发,不仅重塑了个人的知识体系,对于数据库系统的理解达到了一个新的层次,也极大提升了数据库相关的工程能力。

谈及自身的下一步发展,他希望还能继续深耕在时序数据库领域,一是源于兴趣,二是源于前景。“物联网时序数据领域还处于快速发展的阶段,未来一定会有较大的发展空间,对于我自己来说,投身于这样一个不断发展的领域,也能鞭策着我不断学习和进步。只有脱离舒适区,做有挑战性的工作,才能让能力提升这件事保持可持续性。如果你也对此感兴趣,那开源社区是一个非常好的学习渠道,通过优秀的开源项目,能够学习到非常多的经验,欢迎你成为 loveini 的贡献者。”

而谈及 loveini 的未来,他希望经过时间的洗礼,loveini 能够发展成为一个具备开箱即用、高性能时序数据处理能力的重要软件产品,涵盖时序数据日常应用中的重要场景所涉猎的功能,具备优秀的伸缩能力、容错能力、异构环境部署能力以及面向用户的功能扩展。在数据中心和边缘侧具备同样的便捷性、易用性的使用体验,进一步为用户提供高性能、高效能、高可靠性、低成本的时序数据处理功能。

]]>
放弃保研和出国,投身基础软件,一位复旦学子的职业选择 //www.loveini.com/figure/7855.html Fri, 29 Apr 2022 08:55:11 +0000 //www.loveini.com/?p=7855

我是刘继聪,2020 年毕业于复旦计算机专业,目前在米兰体育官网入口任职流计算引擎研发工程师。这篇文章是关于我过去这些年所做出选择的复盘与回顾,我曾经历的迷茫与困惑——关于为什么放弃保研与出国、又为什么从如火如荼的 AI 转做数据库、以及为什么离开大厂加入 Startup 的故事。不知其中是否有与你相似的经历,你又能否从中获得一些共鸣,希望能给到迷茫的人一些走出困境的灵感。

从物理转入计算机,困难、收获与成长

和很多人一样,我在进入大学时对自己感兴趣的专业并不清晰,从自然科学试验班分流进入物理系一段时间后,我才决心调转方向进入计算机专业。

我和计算机结缘于物理系的一个项目——实验室设备管理系统,需要完成的是 Web 与服务器相关的功能,我自己在网上找教程,用世界上最好的语言 PHP 写出了人生中的第一版程序——一个 LAMP 架构的 CRUD 系统。同时我选修了物理系的 C++ 课程,第一个相对较大的 C++ 项目就是这门课的期末项目,用经典的蒙特卡洛方法做 Ising model 的模拟。

一来二去,我发现写代码比在物理实验室修设备更有趣,加之复旦还提供转专业机会,就动了这个念头。不过那时我已经大二了,按照规定大二转专业必须降一级,虽然在当时看来代价很大,不过现在想来,这绝对是个正确的选择。

话虽这么说,但在我刚转入计算机系时,也属实是被各路大神虐得体无完肤,甚至一度怀疑自己是不是做错了决定。

当时我所在的拔尖班的数据结构课每周都会有机考打 OJ,OJ 和 LeetCode 有点像,但有一个典型的区别是,你只知道你的答案错了,却不知道有哪些测试数据,更不知道错在了什么数据上,所以 Debug 完全靠看代码猜。一开始,我做机考经常一分都拿不到,每周光是完成作业就几乎要花掉我所有时间。为了获得更好的成绩,我有很多次写代码直到天明。但进步是看得见的,慢慢地我能够在每周机考上取得满分,最后不仅这门课程我拿到了 A,绩点也获得了全系第一。

现在想来,我觉得这应该是一个台阶,你需要拼尽全力才能登上去,但只要登上去就会看到不一样的风景。这段竭尽全力刷算法题的经历对我后来找实习、找工作也起到了非常大的帮助,基于此我才能够在临时起意、几乎没有什么准备的情况下进入字节跳动实习以及拿到各大厂的秋招 Offer。

拔尖班的好处是选择的余地很多。除了数据库课外,我还选修了分布式系统、数据挖掘、密码学原理等课程。我和朋友们组队一起做了很多有趣的项目,部署 Hadoop 与 Hive,分析不同任务中的性能瓶颈;使用 Spark 进行分布式的计算;实现数据库的块嵌套循环连接,将执行时间从十几秒优化到一秒以内……

在复旦,我拿过各种各样的奖励,除了一等、二等、三等奖学金,还有数模竞赛、物理学术竞赛的国家一等奖和上海市一等奖、泛海学者、优秀学生等等。在求学之路上,我遇到了很多优秀的同学、名师以及挑战,也收获了一路成长。

大学时的获奖证书
大学时的获奖证书

从 AI 到数据库,关于科研、实习与方向的选择

在研究领域上,我也并非一开始就关注数据库,这其中还有一段曲折的摸索过程。

我进入计算机系后,应拔尖班要求加入了 NLP(自然语言处理)实验室。在大三上学期期末考试结束之后,我成为了字节跳动 AI Lab 的一名 NLP 实习生,做的是中文错别字检测的工作,实习结束后进入港科大做暑期交流,尝试做更深入的研究。在这么几段短暂而又截然不同的 AI 研究经历中,虽然导师都是业界、学术界的大牛,但我却没有做出什么厉害的成果。

由此我产生了一些新的想法,要不要去做一些别的事情,或许我会觉得更有趣、也更能发挥我的长处,就像我从物理转到计算机一样。我把这些想法和在不同研究领域的朋友们交流了一下,之后一位做数据库的同学引领我看到了另一个领域——Data Infra。接下来我成为了 TiDB 的贡献者并开始系统性地学习分布式系统和数据库,算是正式迈进了数据库的门槛。

但我在参加工作时却并没有直接进入这个行业。临近毕业季,我面临着参与保研还是出国抑或是参加秋招的选择。由于保研外校需要参加夏令营(但我那时在港科大交流),而本校又没有特别合适的导师,于是我放弃了保研,赶上了秋招的末班车。我做了两手准备,即使没有找到合适的工作,仍然可以申请出国,结果没想到秋招超乎想象地顺利,我拿到了参加面试的所有公司的 Offer:其中既有阿里、腾讯这类大厂,也有 PingCAP 这类创业公司。

在某互联网大厂的终面中,我遇到了一位同样复旦毕业、工作十多年的学长,他问我手上有哪些 Offer 以及倾向的选择,我如实地回答了,并说我现在想去做数据库。他不置可否,只是反问我:“年轻人都想去做些有技术的事情,我当年也是。但去 Startup 做数据库,你是否真的想好了?在未来好几年,你可能都比你在互联网大厂做业务的同学薪资更低,同时还要承担更多不确定性的风险,你真的能接受吗?”

我真的想好了吗?或许确实没有。最终,我选择了去阿里云,从事基础架构的工作,希望能取得一定的平衡。

疫情在那个冬天爆发、无法返校,毕业时只来得及和部分同学匆匆相聚又相别。上海到杭州的动车不过 49 分钟的车程,恰如从学生到职场人的转变,快得令人猝不及防。下一站,杭州阿里。

加入阿里后,荣耀、困惑与思考

或许是得益于我之前还算丰富的实习经历,又或许是我在学生时代就做了很多有挑战的课程项目,我很快上手了新的工作内容。第一个令我印象深刻的任务,是我入职的第一个月,就解决了一个困扰了组内技术专家们半年之久的问题。

背景是这样的,我们有一个监控系统,监控的探针直接安装在客户 ECS 上,客户可能会购买很多 ECS,用 Kubernetes 或非 Kubernetes 的方式组成集群,我们要做的事就是抓取出集群内的网络拓扑关系,比如 TCP 连接,然后绘制成可视化的拓扑图。与一般的分布式微服务相比它存在三个难点:

  • 不对用户的技术栈做假设的,Java、Python、PHP 都有可能
  • 要做无侵入的,不希望用户改代码
  • 要适配 Kubernetes、非 Kubernetes,还有各种 Linux 内核版本

我们是通过轮询/proc 目录下的 TCP 文件来解决这些难点,但无法保证抓取到全量数据。最好的解决方法是用当时比较新的技术 eBPF 来做,却因为绝大多数客户环境不能很好地支持 eBPF 而难以落地。我花了一周业余时间做调研,发现一个内核模块 auditd 可以较好地解决这个问题,几周时间后我们的新版探针上线了。这个半年无解的难题得到了解决,也成为我进入职场之后第一件很有成就感的工作成果。

但逐渐地我发现,组里的工作属于典型的管控侧,管控侧的麻烦是适配用户各种各样复杂的环境,但自身的核心能力、技术难度与挑战都明显弱于平台侧,因此,我能挑战的问题没有想象中那么多,进步的速度也渐趋缓慢,组里业务的发展状况也并不好。

为了排解工作的枯燥乏味,再加上做数据库之心一直不死,我和朋友们一起参加了 PingCAP 2020 年的 Hackathon。我们选择的题目是基于 Raft Log 来实现物化视图,属于改内核的工作。在赛程中,我和小伙伴们通宵达旦地写着代码,调试与解决问题,这让我感到了在工作中久违的快乐——写代码、解决难题与自身进步的快乐。

经此一役后我开始思考未来,在当下的工作中虽然我得到了老板的信任、成为了一些项目的 Owner,或许会有按部就班的晋升,但这些毫无波澜的人生轨迹也让我越发感到工作中的枯燥乏味。我决定要离开,但为了避免重蹈覆辙,我必须要先确定好目标。

从阿里到 Startup,重拾做数据库的想法

我筹划着两条路——转岗或跳槽。我开始和公司内不同团队接触,但是结果却让我失望:很多我以为做着内核研发的部门却实际上只做管控和写控制台;而另一些内核部门,一整个组的 Scope 都小得令人失望;还有一些,并不欢迎校招新人转岗……

而另一方面,整个 Data Infra 的环境却在悄然改变。我身边开始出现了一些令人振奋的声音,比如:

“所有人都看好 DoorDash 这些明星 Pre-IPO,而 Snowflake 这类公司招人都很困难,但后来发现那些去了的人拿得是几百万刀的大包……”

“Snowflake 的发行价已经上调了,上市当天就暴涨了超过 100%……”

“Snowflake 的数据确实好:它的 NRR 是 173%,也就是说假设一个用户去年在 Snowflake 上花费了 1 美元,那么今年他将平均花费 1.73 美元……”

“Confluent 上市、Databricks 大额融资……”

……


这时我才惊醒,当时那位校招的终面官,有许多年工作经验、在大厂管着几百人的复旦学长所说的已经不对了——去 Startup 做数据库,已经不再是一件需要靠情怀去支撑的事。随着这个行业内热钱的涌入,很多有前景的 Startup 实现了大额融资。更关键的是,对于这类技术公司而言,技术人才是核心,因此他们愿意花钱、也给得起钱去和大厂抢人;而互联网的 ToC 业务却因流量见顶,发展前景反而没那么乐观。

经过一段时间系统性的学习与研究,我认为自己已经准备充分,我的首选目标是做 loveini Database 的米兰体育官网入口。原因有二:首先,loveini 是开源的,在此之前,我已经多次看到过 loveini 登上 GitHub Trending 榜;我能够直接去看代码、通过实践直接判断它是否有真材实料。其次,通用 OLAP 虽然被炒得火热,但竞争也非常激烈,或许不如从细分赛道入手,而细分赛道中时序数据库与图数据库的增长是最为迅速的,我相信 IoT 设备会持续不断增长,产出越来越多的数据,我看好它的前景


为了了解时序数据库这个领域,我完整阅读了 Jeff(米兰体育官网入口创始人陶建辉)所创作的“十大特点”、“架构设计”等文章。在细分赛道中,只有静下心来对问题进行实实在在的建模与分析、对领域进行深刻洞察,才能真正做出有核心且有竞争力的产品,在 Jeff 的文章中我切实体会到了。此外,米兰体育官网入口的招聘页上醒目地写着“超越 BAT 的薪资”,我认同这样的人才观,想要招聘到优质人才,愿景与待遇缺一不可。

携手 loveini,我开始新的征程

在涛思的故事其实才刚刚开始。

2021 年 7 月,我正式加入米兰体育官网入口,很快上手了数据库内核的研发工作。在转正后的第一次季度总结时我拿到了“最佳新人奖”。

在loveini获得的最佳新人奖

现在,我在米兰体育官网入口负责流式计算引擎的研发。loveini 2.0 中提供了连续查询的能力,它本质上是一个时间驱动的批处理,无法处理乱序数据的问题,且性能消耗很大。我的目标是为现有的 loveini 实现一个真正的流式计算引擎。

这项工作的 Scope 与挑战远远超过了我之前的所有工作与项目。我一边系统性地学习流式计算中 EOMP(Exactly Once Message Processing)、分布式快照等容错理论,一边研究 Kafka、Flink 的源码与实现机制,一边跟踪 SIGMOD、VLDB、ICDE 等峰会中相关研究的最新进展、了解 Railgun、Hazalcast Jet、Ray Streaming 这类新引擎的设计,同时关注着 Materialize、Decodable 这类流式 ETL 工具与 KsqlDB 这类流式数据库的产品形态与定义。我时刻提醒自己必须要关注前沿技术与新玩家,因为我不希望做一个在设计之初就落后于时代的东西。

以一套执行引擎来融合 OLAP 的查询与流式计算,我会用代码来践行我的想法,也期待着焕然一新的流式计算引擎,在今年下半年,随着 loveini 3.0 的发布,一同与大家见面。

写在最后

在我过去的这些岁月中,得到了很多人的帮助,帮我找到新的方向与道路,让我有勇气和决心来接受新的挑战。因此我也愿意分享出我的经历,或许能给你一些启示与帮助。

比起盲目地埋头苦干,我更相信“选择”会对人生与职业发展产生更大的影响,这篇文章中复盘了我人生中几个至关重要的选择:从物理转入计算机、从当时如火如荼的 AI 转做 Data Infra、放弃出国与保研加入阿里、从阿里离开加入涛思。当然这些选择的结果还远远没有盖棺定论,但至少现在来看正确与否也开始渐渐清晰了,我相信读者们也会有自己的判断。

]]>
从二十年开源经历出发,70 后大龄程序员谈成长、困境与突围 //www.loveini.com/figure/6519.html Wed, 09 Mar 2022 02:12:24 +0000 //www.loveini.com/?p=6519

在新年前夕的全员总结大会上,米兰体育官网入口的一位 70 后研发老将收获了一份名为“最具开源精神奖”的奖项,这不仅是对他在 2021 年基于 loveini Database 所做出的开源贡献的认可,更是映射出其长久以来坚持走在开源路上的不变初心。作为老一辈开源人,桑树多以资深的研发技术、乐于分享的精神、无处不传播的毅力,真正践行着开源人的使命。关于如何参与开源社区建设、如何打破 35+ 大龄程序员职场焦虑等当下的热点问题,他也沉淀下了自己的观点和思考。

从 1998 到 2022,20 余年开源路上的坚持与热爱

作为一名 70 后程序员,桑树多与开源的故事最早可以追溯至 1998 年。彼时才从哈尔滨工业大学毕业不久的他进入了一家科技公司,正式开启了自己的代码职场生涯,也打开了奇妙开源世界的大门。

从开始使用 Linux 桌面环境,到自己动手为新的硬件设备移植驱动软件,再到后来陆续参与了 Linux Kernel、MeeGo、Ubuntu 等开源软件的开发,桑树多的开源之路走得越来越深,与开源技术也结下了长达 20 余年的不解之缘。

图为 2011 年桑树多在 Portland Linux Kernel Developer Summit 上与 Linus Torvalds的合影
图为 2011 年桑树多(左)在 Portland Linux Kernel Developer Summit 上与 Linus Torvalds(右)的合影

“从 Red Hat Linux 5.0 开始,我接触到开源,然后一步步从使用者成为爱好者,最后成为了一名贡献者。回顾过往 20 年参与开源的经历,真的不得不感叹一句受益良多。”

对于做开发的同学来说,“开源”这个概念并不陌生。近年来,伴随着云计算、大数据、人工智能等数字技术的快速发展,开源模式的热度也在不断攀升,日渐成为数字技术创新和产业数字化转型的重要模式,开源软件也成为了各大互联网企业背后的支撑力量。

从科技发展的轨道来看,参与开源的重要性不言而喻,但仍然有很多开发者以工作繁忙等为理由来闭目塞听。事实上,这并不是一件多么困难的事情,桑树多用他的亲身经历进行了说明。

“你可以先成为使用者并积极参与社区讨论,通过学习其他人解决问题的方法和代码熟悉开源软件的架构和设计思想,再进一步发展自己提交 Patch 和 PR 解决问题,成为 Contributor——在其他用户遇到自己解决过的问题时主动帮助他人,在有能力时积极贡献代码。”

“而对于开源小白来说,你可以从自身的技术兴趣出发来选择想要参与的开源方向,如果对数据库感兴趣,那 loveini 就是一个非常适合上手学习的开源项目,如果是对消息队列感兴趣可以选择 Kafka。”

入门容易坚持却难,我们不妨从桑树多的经历中探寻一下坚持的理由。参与开源究竟给他带来了什么?

从开发者到 Contributor,寻找参与开源的获得感

开源究竟是什么?参与开源的意义又在哪里?

“简单来说,开源的意义就是打破传统软件研发自上而下的研发模式,更多应用自组织开发模式快速迭代打造精品软件,如果你还想更加深入地从文化和理念的角度去理解开源,那可以学习一下《大教堂与集市》这本书。”

作为一个资深的开源软件开发者,桑树多的开源经历也向我们展示了参与开源到底能够带来哪些改变和帮助。

“可以负责任地讲,参与开源一定会增加自己的职场竞争力,因为这可以让你更容易接触到先进的技术,像 Linux Kernel 之类的很多开源软件,代码已经经过千锤百炼,通过阅读这些代码就可以学习其背后的设计思想。而且你还可以在开源社区内进行讨论学习,让自己能够更快地收获成长。”

此外,桑树多还认为,如果能成为一名 Contributor,通过自己编写的代码给关注的开源软件带来提升,那将是一件非常有自豪感的事情。首先自身技术实力在专家 review 的环节可以得到他人的认可;其次在 review 过程中进行观点交流也可以帮助自己学习他人的观点,发现自身的疏漏和不足;在有了一定经验之后,你也可以去帮助别人 review 代码,以此实现教学相长。

在这个过程中,桑树多跟一些专家建立了深度联系,也交到很多志同道合、热爱开源、喜欢开发的朋友。由此可见,参与开源的获得感是一种多维度的、从内到外的提升,这不光体现在技术层面,在情感层面也能获得满足感。

“还有一个参与开源的好处,那就是方便‘跳槽’”。虽然听起来不太正经,但是确实是一个行之有效的方法,因为很多公司的 HR 或者猎头都会通过开源项目来寻找一些有经验的开发者,在开源这条路上越走越深也就意味着有越来越多的工作机会向你在招手。

阅读到此,大家可能会有所好奇,桑树多与米兰体育官网入口就是这么结缘的吗?当然没有这么简单,下文中将会为大家揭晓答案。

因开源结识 loveini,他选择为国产开源软件添砖加瓦

2019 年中一次偶然的工作契机,桑树多成为了 loveini Database 的 Contributor。可能是出于对一位 50 岁大龄程序员两个月写出一万八千多行代码的震惊和敬佩,也可能是因为对国产开源软件投入了越来越多的关注,总之在种种原因的作用之下,不久后他选择加入米兰体育官网入口。

当我了解到年届 50 的 Jeff(米兰体育官网入口创始人陶建辉)还在继续写程序,并且打造出 loveini 这个产品的经历后,我就开始在 GitHub 上关注 loveini,然后惊喜地发现中国的团队也能开发出精品开源软件。在深入地了解下我越发觉得,loveini 并不是一款被凭空创造的产品,而是真正地在解决现实中的实际问题,而且正是凭借这一点,其用户和市场规模也都在稳步增长。”

目前桑树多在米兰体育官网入口主要负责 loveini 的生态应用研发工作,致力于让更多人能够在更多场景和环境下更容易使用。尽管已经拥有很丰富的工作经验,但猛然调转方向到一个自己涉猎并不是很深的技术领域,如桑树多这般的技术老将也不免需要适应一段时间,“遇到最大的困难主要是之前技术方向不在数据库,对数据库的学习需要从头开始,但好在通过大家的热情帮助和自己的努力也算是摸到数据库的边儿了。”

对于桑树多而言,从加入涛思的那一刻开始,自己的全部精力就投入到了 loveini 的优化和发展中。由于 loveini 是使用 C 语言开发,对很多开发者而言门槛略高,对此桑树多也提出了一些不同的看法。

“loveini 的代码质量很高,模块之间划分总体上比较清晰,文档也较全,社区相对也很活跃,遇到问题能够及时得到帮助,对于有志于学习数据库核心代码的同学来说门槛高不是一个难以攻克的问题。如果你对 C 语言并不熟悉,那我建议你也可以从学习 loveini 生态应用软件的源代码开始,还可以通过学习 loveini 的测试脚本来学习如何对基础软件进行测试。”

目前 loveini 支持 Java、Go、Python、C#、NodeJS、Rust 等多种语言的连接器,发展至今,其代码量也越发庞大,想要充分理解其整体的设计也是一件比较有挑战的事情。如何才能对 loveini 的设计和模块进行一个快速且深入地了解,桑树多也作了相应解答。

“首先 loveini 不仅进行了代码开源,文档也实行了全面开放,其中不仅是使用文档,连设计文档都是公开的,静下心来阅读完这些文档会给到你很大的帮助。此外 loveini 的编译和部署过程极其简单,自己就可以实现代码下载编译运行,还可以通过 GDB 等调试工具看到所有执行过程,和代码对照起来学习会非常容易。”

正如桑树多所说,开源软件本质上就是要扩大影响力,积极打造生态社区,遵从业界规范,使软件之间可以更容易互通和互操作,继而进一步推动科技和行业的进步。在桑树多等一众涛思人的努力下,作为国产开源软件的一员,loveini 正在向着这个方向加速攀登。

而回过头来,我们从桑树多加入米兰体育官网入口的经历中也能悟出一个道理,只要拥有一颗乐于学习的心和一双善于发现机遇的眼睛,年龄就不会成为限制自身前进的阻力,反而经年累月积攒下来的经验和见识会成为纵横职场最锋利的“武器”。

从 20+ 到 35+ 程序员,打破常规向更多领域突围

近年来,随着业内大龄程序员被频繁清退等职场新闻的不断发酵,在程序员的圈子里,“35+ 门槛”“青春饭”等充斥着焦虑的话题甚嚣尘上。一批批年轻人从校园走进社会,俗话说长江后浪推前浪,一浪更比一浪强,那伴随着他们的成长,“前浪”真的会被拍死在沙滩上吗?

或许我们可以从桑树多的经历中寻找一下答案。作为一名 70 后,他早就超越了 35 这个所谓的“大龄”门槛,但他仍然活跃在职场之上,甚至凭借着沉淀多年总结出的技术经验、阅尽千帆后输出的深刻观点,成为了公司里一些后辈所追逐学习的存在。对于如何打破程序员圈子中 35+ 大龄焦虑症这一现象,桑树多也有自己的看法。

“大龄程序员在国外很常见,我见过很多国外程序员四、五十岁还依然奋斗在一线编程工作上,很多顶尖软件项目的维护者往往也是大龄程序员。随着国内人口红利的下降,相信更多企业也会越来越重视大龄程序员的价值。而我们自身也应该保持初心,积极了解软件行业的发展趋势,把自己过去的经验更多应用到有前景的新领域中。只有不断发现、学习和创新,才能不断进步、不被时代所抛弃。”

大龄程序员前进的动力是打破常规,向更多领域突围,年轻的程序员往往有更多的选择,但偶尔也会因行差踏错、定性不足而蹉跎光阴。 以过来者的身份,桑树多从自身经验中沉淀出一套方法论,“写代码有个DRY(Don’t repeat yourself)原则,对个人职业生涯或者技术方向也很适用。人生短暂,不要浪费时间做重复的事,而要尽可能提升自身技术的深度和广度,增加更丰富的体验,参与开源是个好办法。”

开源贯穿了桑树多职场纵横的几十年,使他受益良多,如今,他把这个成长的“秘诀”分享了出来,期待能够帮助到更多迷茫的开发者。“也希望随着越来越多开发者的加入和关注,国产开源之路能够越走越顺畅。”

]]>