【沉淀】从网络中间件到搜索,从移动开发到分布式计算平台,阿里高级专家李睿博谈自己的折腾路

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 整个过程我觉得还是爱最重要。有爱才有勇气才有希望。我是真的爱写代码。从小学就开始爱,到现在快三十年了也还爱。
a4480bf840f4232751cb1576f82251270c4ff5bc
《沉淀》是云栖社区展示专家风采的人物栏目。它呈现每个专家独一无二的人生经历、认识和感悟的同时,也能帮助你沉淀技术,收获对技术和人生的判断。我们的想法是:“若你想精进为一个很厉害的人,不妨细细品味这些技术牛人背后的沉淀。” 如果你想了解这些云栖专家更多分享时,请点击云栖专家频道,当然我们也欢迎你往前走一步,成为我们的云栖专家(https://yq.aliyun.com/expert),与技术大牛一起“煮酒论英雄”。

1.

如果人生可以重新来过一次,你会怎么做?

相信很多人都会列好一大堆计划和想法,而李睿博却和云栖社区的同学讲了一个往事:

“小时候一帮小朋友一起玩,弄坏了邻居的财物,大家一哄而散,只有我觉得这么跑掉是不对的,愣是站在原地没动,最后责任都成了我一个人的。”

讲完后,他说:“人生如果能重新来过,还会是一样。我其实是个挺执拗的人,会坚持做自己认为对的事情,即使有时候明知道会吃亏。”

从功能机时代做网络中间件到做搜索,从做移动开发到做分布式计算平台……细看,转型跨度都挺大,而每一步李睿博都无怨无悔。

抽丝剥茧后,你会发现,这是爱,是对代码的爱。

2.

5504fcfd32fdcf2b929de62ef94c99a6821553b2
李睿博认为,路走对了,才不怕远;走对路,比走的远更重要。

李睿博,花名艺卓,他是阿里集团计算平台事业部生态与输出部门的负责人。对于自己的工作,他概括地说:“MaxCompute 上直接接触用户的那部分,很多都是我部门的工作。”这些工作包括 MaxCompute 的 REST API、SDK、Console、JDBC驱动,以及PyODPS 及其配套的 DataFrame。除此之外,李睿博的工作也包括跟各种社区、生态的对接。

回到李睿博工作生涯的起点——2006年北航研究生毕业后,他因为面试流程Geek,以及有游戏背景,任性的找了一家特殊的日企,并在一年后,又随这家公司到东京工作了两年。这是家做网络中间件的公司,核心产品是用一套SDK完成Linux/Windows/Solaris server side 以及PSP/NDS/wii 等 Client Side 的网络通信代码编写,客户主要是游戏公司。在这个过程中,他实现了在 128k 内存 128x128 的屏幕上实现伪网游的效果,这个在——GPRS、手机还是NoKia的时代是一件非常具有挑战的事情。

2009年,李睿博加入阿里云做搜索(现在的“神马”)。在搜索的时候,他发现,当时团队的模块发布用的是RPM包,而RPM/YUM的改变是系统级的,多人共用一台机器会互相干扰,于是就写了一个Abxp(Abuildxp 的缩写)的工具,用来在编译代码之前构建依赖库环境用的。这个编译工具直到最近这几天,都还有 IDST 的同学遇到问题找到李睿博。对于写出长命的Code,这位不断跨领域的技术人也挺吃惊的。但大家觉得好用、喜欢用,他也非常高兴。

2013年,李睿博跟随集团无线 All In 战略做了一年的创业项目。在无线的一年,他带领一个测试开发底子的团队转安卓开发,并在不到一年时间把App做到百万日活。尽管这个App最终没能活下来,但李睿博还是挺骄傲的。自豪之外,他也有反思和收获,一定要给用户带来价值。他在回复中表示:“无论技术层面执行的多么到位,带不来价值的应用活不下来很正常。阿里土话说‘路走对了,就不怕远’,我觉得应该叫‘路走对了,才不怕远’ 。”他强调,走对路,比走的远更重要。

由于移动应用业务属性太强,做安卓开发一年后,李睿博来到阿里集团计算平台事业部生态与输出部门,潜心于技术。尽管这个领域不懂的东西太多,但只要能重新沉醉于代码中,他觉得哪怕“被虐”也是值得的。“好几次都是靠‘自己选的路,跪着也要走完’的信念才走到今天。”他表示,在大数据平台学到最多、挑战最大,不过后来居然越做越有感觉了。

到今天他做MaxCompute已不知不觉有三年。问及最终目标是什么,他说,就当下工作而言,有两个:一个是通过PyODPS直接赋予数据科学家操作大数据的能力;第二个是通过生态与输出,让大家可以将开源所学直接用在 MaxCompute 上。“如果要论终极目标。”他毫不犹豫地说:“那就是将大数据计算能力普惠给用户。”

对于分布式计算平台的趋势,李睿博认为会越来越往准实时、实时方向靠拢,“离线和实时分布式系统之间的界限会越来越模糊,两边都会尝试侵占对方的地盘。”

沟通中,也问起他的花名为什么起“艺卓”,李睿博一脸遗憾,他说:“本来想取‘睿博’。”他戏称,毕竟向后兼容还是很重要的。但后来他发现,这个花名不可用,只好取了“艺卓”。之所以取它,李睿博称,有两个原因:第一,和“睿博”读音有点靠;第二,这个名字是专业显示设备的品牌,他比较喜欢这个牌子,并且也希望像这个品牌一样在自己的领域里做专业。

3.

从搜索到安卓再到分布式计算平台开发,在外人看来这几次转型跨度都挺大的,回顾历程,李睿博也惊讶自己这么能折腾。

“那如果给一次选择的机会,你会怎么做?”折腾太累,大多数人都不喜欢折腾,所以云栖社区抛出这个问题,是希望李睿博能给出一个完美的技术进阶路线。然而,答案似乎并不像云栖社区期待的那样。

“如果真能选择的话,还是会去买套房吧。”他开了一个玩笑后,开始言规正传——人生如果能重新来过,还会是一样。

是什么原因让他来生还愿意这么折腾,云栖社区并没有进一步去探究。因为在另外一个回答中,可以找到答案:“我是真的爱写代码,从小学就开始爱,到现在快三十年了也还爱。”

如果这个答案还不够直接,那么你可以看李睿博这一句:“做自己喜欢做的事情,还有钱赚,这么奢侈的事情,我已经很知足了。”

以下是更为精彩的内容:

云栖社区:“艺卓”的花名给人总有一种手艺人的工匠精神在里面。你入职那时,取花名还是件很容易的事,能谈谈为什么没有取武侠风的花名,而是取了“艺卓”?

李睿博:我 2009 年入职阿里,其实直到 2013 年去无线才有的花名。阿里云早期并不流行花名文化。

等到真想要花名的时候系统提示“睿博”不可用(毕竟向后兼容还是很重要的嘛),结果到今天也没看到集团里谁的花名叫“睿博”,有点遗憾。

取“艺卓”这个名字,一个是因为读音跟睿博还有点靠,另一个是这个名字本身是个做专业显示设备的品牌,我个人也比较喜欢,也很希望能够像这个品牌一样在自己的领域里做专业。

云栖社区:你第一份工作是Port 日本的 Doja 手游到国内的 J2ME,在那个年代,能在 128k 内存 128x128 的屏幕上实现伪网游的效果是一种挑战,你是如何解决这个问题的?

李睿博:在资源极度受限的设备上做开发,有点像把一大堆东西塞到一个小手提箱里。一个是东西本身要经过很好的折叠,比如图片、音乐这些资源大户,要经过良好的剪裁和压缩。

另一个是要做很精细的安排,空间本来就有限,哪里放什么要规划的非常仔细。日本工程师在这方面其实做的已经很好了。移植到 J2ME 因为机器配置更低所以要做的更激进一些。

网游对战这块,那个年代的流量还很贵,而且 GRPS 也不足以支撑实时网络对战,所以我们当时的做法是和另一个玩家的历史记录对战(赛车类)。

云栖社区:你在搜索部门时开发了一款编译工具,直到今天都有人在用,并找你咨询问题,能否介绍下这是什么样的一款编译工具?当初出于什么原因去写它?

李睿博:是个叫 Abxp(Abuildxp 的缩写)的工具,用来在编译代码之前构建依赖库环境用的。

做这个工具的原因有两个,一是当时团队的模块发布用的是RPM包,二是当时团队的工作习惯是一台开发机多人共用。

既然用了RPM,那么最直接的办法就是RPM来构造开发所需的依赖环境。但是 RPM/YUM的改变是系统级的,多人共用一台机器会互相干扰。

因此就有了Abxp这个工具,利用现成的RPM体系,构建个人的开发环境,互不干扰,甚至一个人的几套代码不同目录之间都可以用不同的依赖环境,给开发工程师提供便利。

云栖社区:后来去做安卓开发,是早有准备,还是现学现卖?另外,也说一说学习安卓开发的过程吧。

李睿博:基本是现学现卖。虽然早年也做过J2ME开发,不过跟直接在 Canvas 上做各种图形绘制比起来,安卓抽象了 Activity、Service、Intent 等一系列概念,组织了 Fragment、ViewPager 等一系列组件,能够用好这些东西需要积累和时间。

之前的经验唯一的好处是有助于理解一些设计的出发点。当然,因为做的App 的特殊性,其实用到不少跟系统相关,行为定义的没那么清楚的 API,这个就真的是要摸着石头过河了。

云栖社区:在不到一年的时间里,把App做到日活百万,从技术角度来看,这段经历有哪些成功或独到之处?其次,对于这款App没能最终活下来,你有哪些认识和思考?

李睿博:做App 是要满足用户真实的需求的。无线All In 那一年,我们做锁屏软件,动机其实是“抢入口“。

我们在锁屏界面上做壁纸,跟虾米合作做音乐播放,跟蚂蚁合作做余额宝增值曲线,跟淘宝合作做快递提醒,跟头条合作做新闻,跟爆漫合作做段子推送,如果再多有一些时间,锁屏会被我们做成一个微型OS。这个臃肿的锁屏软件表达的我们的诉求太多,能够带给用户的价值偏少。

当然也不是没有。今天很多已经集成到 ROM 里的功能,那个时候我们都在锁屏上做过,比如用最少的操作打开手电筒,切换歌曲等等。

于是无论技术层面执行的多么到位,这样的软件活不下来其实并不奇怪。阿里土话说“路走对了,就不怕远”,我觉得应该叫“路走对了,才不怕远”,走对路,比走的远更重要。

云栖社区:为什么在移动开发最火爆的时候,又转型去做分布式计算平台开发?在转型分布式计算平台开发中,都遇到哪些挑战,请详细叙述下。

李睿博: 移动应用的业务属性还是很强,代码写写扔扔(尤其是客户端)简直太正常不过。自己的代码变成快消品还是很难受的。

到分布式计算平台,最大的问题还是初来乍到,整个领域不懂的东西太多。虽然传统的 MapReduce 不难理解,但是一个Query 从进来Compile 成 Plan,到 Optimize 到生成 Runtime code,整个链路很长,而且链路的每个节点都有足够的细节和门槛。

云栖社区:MaxCompute相比Hadoop等开源产品有哪些优势?其次,作为计算平台生态与输出部门的负责人,能否在脱敏的前提下,谈下MaxCompute在生态上的一些规划?

李睿博:优势么,第一个是性能。我们自研的平台在性能上对比开源竞品还是有很大优势。另一个,MaxCompute 是完全托管的大数据服务,用户不需要知道集群,只管跑作业就好。从这个角度说,MaxCompute 跟 IaaS +开源软件完全不同。

MaxCompute 的生态,前几年关注的是连通性,于是我们有了 JDBC/ODBC,有了 Flume/Fluentd/logstash/Sqoop 这样的插件,让数据可以方便进入;现在我们更关注社区,我们的 MaxCompute 2.0 对 Hive SQL的兼容性不断在提升,PyODPS 做的类似 Pandas 的 DataFrame API,直接赋予数据科学家操作大数据的能力。

我们的终极目标是让大家可以将开源所学直接用在 MaxCompute 上。

云栖社区:你对分布式计算平台的中间件、架构以及趋势有哪些看法?

李睿博: MaxCompute 是离线批量计算平台出身,但是这个平台会越来越往准实时、实时方向靠拢。离线和实时分布式系统之间的界限会越来越模糊,两边都会尝试侵占对方的地盘。

新硬件也给我们的分布式系统提出了更多的挑战,比如 CPU 作业和 GPU 作业混合调度,带宽提升导致的存储和计算的分离成为可能等等。

云栖社区:不论是一开始在日企做网络中间件、阿里云成立之初做搜索,还是跟随集团All In战略做移动开发,乃至当下做大数据的分布式计算平台,你的每次转型跨度都挺大的,而且也都挺成功的,能否谈谈转型心得?其次,众多技术中,你最喜欢哪门技术(语言)?为什么?

李睿博:也不能算成功吧,拼了老命,没有脸着地摔很惨罢了。 整个过程我觉得还是爱最重要。有爱才有勇气才有希望。我是真的爱写代码。从小学就开始爱,到现在快三十年了也还爱。

做自己喜欢做的事情,还有钱赚,这么奢侈的事情,我已经很知足了。

语言写过很多,不过我用的多的似乎最后都消亡了。最喜欢的语言么,Perl 算一个(也式微了,汗),因为实现同样的功能,代码能写的短。

云栖社区:如果给你一个选择的机会,你会继续这样继续不断跨领域,还是会在某个领域持续扎根?为什么?对应着选择(重新来过后),你又会怎么去做?

李睿博:如果真能选择的话,还是会去买套房吧(玩笑)。

重新来过也还会是一样,我其实是个挺执拗的人,会坚持做自己认为对的事情,即使有时候明知道会吃亏——小时候一帮小朋友一起玩,弄坏了邻居的财物,大家一哄而散,只有我觉得这么跑掉是不对的,愣是站在原地没动,最后责任都成了我一个人的。

认知水平、眼界不到的时候,估计我也会非常坚持自己并不成熟的想法,就算是未来的自己去劝也没有用。可能这就叫性格决定命运?

云栖社区:拥有这么多丰富的经历,你有没有想过去创业?请你谈谈对创业的理解。

李睿博:我比较喜欢的两个描述生活状态的词,一个叫随遇而安,一个叫无欲则刚。我这样的性格,除非有个强力发动机型的人拉着我一起,是不太会去独自去创业。

另外,我觉得创业要有足够的冲动,冲动可能来自强烈的价值认同。拉我出去创业的朋友也有过,到目前为止我看到的因为隔行导致盲目乐观以及功利的成分居多。

云栖社区:你平时喜欢做什么?为什么?请分享一个你特别认可的格言或一句话,并叙述下原因。

李睿博:平时追番,打游戏,看书,摄影,偶尔写写博客。因为我读过的人文书籍比较少,所以不太敢说任何或者欣赏格言。只说一个喜欢的吧:“此心光明”,希望能够作为自己的墓志铭。

为什么是此心光明呢?因为我们是处在一个剧烈变革的时代里。我上中学的时候家里装一部固定电话还要交几千块的安装费,我念大学的时候还在用寻呼机。我研究生毕业的时候大家都在炒 Web,然后是移动互联网,然后是大数据,然后是人工智能,眼花缭乱,飞速迭代。

我也经常感叹很多事情自己其实看不懂,看不清楚。年轻的时候,觉得做自己认为对的事情就好。但是在这样的时代里,个体非常容易迷失自我,我做的事情是不是对,并非一目了然,经常是要经过时间检验。在这样的时代里,某个具体时点上,能指引、规范个体行为的,或许只有价值观。Google 憋了半天,搞出来个“don't be evil”,我觉得是同样的表达。工程师可能也就这个文案水平,不如王阳明先生“此心光明”来得积极向上(文/我是主题曲哥哥)。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
5天前
|
NoSQL 关系型数据库 MySQL
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
91 56
《docker高级篇(大厂进阶):4.Docker网络》包括:是什么、常用基本命令、能干嘛、网络模式、docker平台架构图解
|
2月前
|
安全 物联网 物联网安全
量子通信网络:安全信息交换的新平台
【10月更文挑战第6天】量子通信网络作为一种全新的安全信息交换平台,正逐步展现出其独特的优势和巨大的潜力。通过深入研究和不断探索,我们有理由相信,量子通信网络将成为未来信息安全领域的重要支柱,为构建更加安全、高效、可靠的信息社会贡献力量。让我们共同期待量子通信网络在未来的广泛应用和美好前景!
|
4月前
|
SQL JSON 大数据
ElasticSearch的简单介绍与使用【进阶检索】 实时搜索 | 分布式搜索 | 全文搜索 | 大数据处理 | 搜索过滤 | 搜索排序
这篇文章是Elasticsearch的进阶使用指南,涵盖了Search API的两种检索方式、Query DSL的基本语法和多种查询示例,包括全文检索、短语匹配、多字段匹配、复合查询、结果过滤、聚合操作以及Mapping的概念和操作,还讨论了Elasticsearch 7.x和8.x版本中type概念的变更和数据迁移的方法。
ElasticSearch的简单介绍与使用【进阶检索】 实时搜索 | 分布式搜索 | 全文搜索 | 大数据处理 | 搜索过滤 | 搜索排序
|
3月前
|
XML 网络协议 物联网
基于surging的木舟IOT平台如何添加网络组件
【8月更文挑战第30天】在基于 Surging 的木舟 IOT 平台中添加网络组件需经历八个步骤:首先理解 Surging 及平台架构;其次明确组件需求,选择合适技术库;接着创建项目并配置;然后设计实现网络功能;再将组件集成至平台;接着进行详尽测试;最后根据反馈持续优化与维护。具体实施时应参照最新文档调整。
69 10
|
4月前
|
存储 监控 固态存储
【vSAN分布式存储服务器数据恢复】VMware vSphere vSAN 分布式存储虚拟化平台VMDK文件1KB问题数据恢复案例
在一例vSAN分布式存储故障中,因替换故障闪存盘后磁盘组失效,一台采用RAID0策略且未使用置备的虚拟机VMDK文件受损,仅余1KB大小。经分析发现,该VMDK文件与内部虚拟对象关联失效导致。恢复方案包括定位虚拟对象及组件的具体物理位置,解析分配空间,并手动重组RAID0结构以恢复数据。此案例强调了深入理解vSAN分布式存储机制的重要性,以及定制化数据恢复方案的有效性。
107 5
|
13天前
|
5G 数据安全/隐私保护
如果已经链接了5Gwifi网络设备是否还能搜索到其他5Gwifi网络
当设备已经连接到一个5G Wi-Fi网络时,它仍然有能力搜索和发现其他可用的5G Wi-Fi网络。这里所说的“5G Wi-Fi”通常指的是运行在5GHz频段的Wi-Fi网络,而不是与移动通信中的5G网络(即第五代移动通信技术)混淆。
|
1月前
|
消息中间件 监控 数据可视化
Apache Airflow 开源最顶级的分布式工作流平台
Apache Airflow 是一个用于创作、调度和监控工作流的平台,通过将工作流定义为代码,实现更好的可维护性和协作性。Airflow 使用有向无环图(DAG)定义任务,支持动态生成、扩展和优雅的管道设计。其丰富的命令行工具和用户界面使得任务管理和监控更加便捷。适用于静态和缓慢变化的工作流,常用于数据处理。
Apache Airflow 开源最顶级的分布式工作流平台
|
3月前
|
缓存 算法 物联网
基于AODV和leach协议的自组网络平台matlab仿真,对比吞吐量,负荷,丢包率,剩余节点个数,节点消耗能量
本系统基于MATLAB 2017b,对AODV与LEACH自组网进行了升级仿真,新增运动节点路由测试,修正丢包率统计。AODV是一种按需路由协议,结合DSDV和DSR,支持动态路由。程序包含参数设置、消息收发等功能模块,通过GUI界面配置节点数量、仿真时间和路由协议等参数,并计算网络性能指标。 该代码实现了节点能量管理、簇头选举、路由发现等功能,并统计了网络性能指标。
179 73
|
3月前
|
机器学习/深度学习 人工智能 算法
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
文本分类识别系统。本系统使用Python作为主要开发语言,首先收集了10种中文文本数据集("体育类", "财经类", "房产类", "家居类", "教育类", "科技类", "时尚类", "时政类", "游戏类", "娱乐类"),然后基于TensorFlow搭建CNN卷积神经网络算法模型。通过对数据集进行多轮迭代训练,最后得到一个识别精度较高的模型,并保存为本地的h5格式。然后使用Django开发Web网页端操作界面,实现用户上传一段文本识别其所属的类别。
110 1
【新闻文本分类识别系统】Python+卷积神经网络算法+人工智能+深度学习+计算机毕设项目+Django网页界面平台
|
2月前
|
存储 分布式计算 负载均衡
下一篇
DataWorks