一个越南程序员的阿里巴巴之旅

译者

蒋辉文,公众号:ali老蒋

文章说明

本文访谈主人公是一个越南程序员,原来在 Lazada 工作。后来,Lazada 被阿里收购,他就来到阿里,在杭州阿里巴巴西溪园区呆过一段时间。现在,他已经跳槽到荷兰的在线旅行公司Booking.com,本文是他讲述自己的故事,以及对阿里的感受。

文章是访谈性质,主人公名字叫做Son Luong Ngoc,接受了Adam Gordon Bell(翻译注:中文名缩写为亚当)的一个采访,以下就是采访语录,我把原文翻译成了英文,为了方便大家阅读,根据大意有删改优化。

从这篇文章里,我们可以了解到全球多个国家的互联网以及对应的生活习惯和文化,非常有意思,以下就是访谈内容。

介绍

亚当: 嗨,大家好,这是CoRecursive(翻译注:一个专门讲述程序员代码背后的故事的播客)播客,我是主持人Adam Gordon Bell。

这是今天我要给你们介绍的故事,这不是一个程序员软件开发的故事,而是一个程序员找到一个适合他们的生活和工作的故事。这也将是一次世界巡演般的历程,我们会在不同的国家度过一段时间,包括加拿大和中国,我不想剧透太多,一起来和我们分享Son Luong Ngoc的精彩经历吧。

搭建游戏

弹跳游戏启发了Son Luong Ngoc

亚当: 你能告诉我你是谁,你做什么工作吗?

Son Luong Ngoc: 我叫Son Luong Ngoc,我为包括 Bazel(翻译注:一款开源工具,用于构建自动化测试的软件)在内的各种不同的开源项目做出了贡献。我对Git和GitLab本身做出了一些贡献,这是我一个简短的总结。

亚当: Son Luong Ngoc职业生涯的最初曙光是从一个朋友的谎言开始的。当时他上高中的时候,在一个朋友家玩,朋友给他看了一个游戏。

Son Luong Ngoc: 我认为游戏的名字应该是“弹跳”,就是在游戏中玩家是一个球,试图从一个平台到达另一个平台并吃糖果或类似的东西,最后获得积分。

Adam: 他的朋友声称他知道如何制作游戏并且他可以开发这个游戏。

Son Luong Ngoc: 顺便说一句,他完全是胡说八道,他做不到。需要一个拥有图像图形的软件开发团队来构建该游戏,他一个人不可能开发出来。

Adam: 所以Son Luong Ngoc尝试制作自己的游戏。

Son Luong Ngoc: 然后我回到家,我一直记得我到底是如何使用Visual Basic(翻译注:这是微软早期的一款可以开发图形的编程语言)程序使任何东西工作的,试图拖动框并拖动按钮,但是我发现这个按钮不是我想要构建的游戏。我可以点击它并创建一个像hello world一样的东西,我可以单击它并创建一个文本游戏,你可以在其中回答是或否,然后选择你的路径,但这并不是很酷,并无法开发出一个好玩的游戏。

夜间课程

亚当: 所以Son Luong Ngoc开始参加一些计算机编程的夜间课程。

Son Luong Ngoc: 老师教你如何制作网络服务器之类的计算机程序。我记得那里的老师说,“同学,你才十年级的,你为什么来这里?” 我的同学都是应届大学生和已经有过工作经验的人,而我是那里唯一的高中生。

Adam: 这门课很有趣,但制作游戏似乎仍然是一个谜,我认为还是很难。因此,当Son Luong Ngoc高中毕业时,因为他擅长数学并且喜欢开发游戏的想法,他以外国学生的身份去了加拿大安大略省滑铁卢市的滑铁卢大学。滑铁卢之旅对Son Luong Ngoc是一次文化冲击。

滑铁卢大学

Son Luong Ngoc就读于滑铁卢大学数学系

Son Luong Ngoc: 坐在我旁边的是一位在加拿大出生和长大的亚洲人,他正在使用 Vim(翻译注:Vim是Linux下的一款文本编辑工具)和 LaTeX(翻译注:一款写论文的软件工具)做笔记。我当时想,“LaTeX 到底是什么?Vim到底是什么?” 坐在我左边的是一个印度人,他正在攻读科学和纯数学双学位课程。他最终成为了一名医生。我记得第一年的一次谈话。他问我说:“哦,你买了这只股票吗?” 我当时想,“什么?你才刚满18岁,你到底怎么知道股票这个东西的?” 原来他的父母教了他所有这些东西。记得大三的时候,我遇到一对夫妇,期末考试结束后,他们还要去图书馆借数学书回去复习。

到底为了什么而学习?我当时想,这个环境竞争太激烈了。来自亚洲的我,没想到人们会那么活跃。在亚洲学习通常是非常被动的。无论老师教给你什么,你就学到什么,仅此而已,但在北美和欧洲,如果你要学习某样东西,那么你必须对它充满热情,因为你可以选择学习哪个主题和科目。所以一旦你对它产生了热情,就意味着你喜欢学习它,并且你会花很多时间自学它。和大多数亚洲人一样,我没有这些热情。虽然我很喜欢数学,但我并没有到痴迷它的程度,我喜欢它只是因为我擅长它。

亚当: 这是Son Luong Ngoc第一次调整生活和思考方式,以后还会有更多调整,但在滑铁卢找到自己的位置是一个挑战。这是一所非常严肃的学校,但Son Luong Ngoc找到了一种学习和生活的方式。

Son Luong Ngoc: 大学教会了我两件事。一是计算机科学的东西非常酷,但它教会我的是我需要重视环境。当我进入一个竞争的环境时,我可以不表现得有竞争性,但我应该和所有这些人交朋友,因为当我以后回顾时,我发现我在其他地方找不到和我一样素质、一样聪明、一样速度的人,但是可以在滑铁卢找到。

亚当: 从加拿大的外国学生身份到成为永久居民有一条路,那就是通过工作定居到加拿大,这也是Son Luong Ngoc的最初目标,但他所有的加拿大朋友似乎都选择去了美国的谷歌或 Facebook 或其他地方找到了工作。在加拿大这个现象很明显,我们称之为“人才流失”,也许通过远程工作,这种情况会减慢一点,但对于Son Luong Ngoc来说,随着他的朋友们离开,他感觉自己被困在滑铁卢和加拿大。

Son Luong Ngoc: 所以我真的很沮丧。我开始了八年的异国生活,根本没有见到我的家人,那时候没有视频通话,没有空中航班,没有类似的事情。所以我决定,好吧,我需要心理重启,这种心理重启意味着我应该回到越南并尝试寻找一些东西。

返回越南

Son Luong Ngoc回到越南河内

亚当: 在加拿大的数学系和滑铁卢小城市度过了平静的生活后,回到越南似乎是未来的事。

Son Luong Ngoc: 很多外国人,法国人、美国人、俄罗斯人,每个人都搬到越南或其他东南亚国家,因为他们喜欢那里的生活。天气真好,海滩。如果你有机会去度假,我绝对强烈推荐东南亚。

Adam: 在这段时间里,至少在他的脑海里,Son Luong Ngoc仍然保持着他的游戏开发梦想。

Son Luong Ngoc: 我从回到越南就开始思考,在那里工作一两年后,我可以筹集到足够的钱来开设一家游戏公司。

Adam: 为了积累资金,他开始在CSE(翻译注:一家国际科技公司)担任业务分析师。

Son: 他们正在为各种不同的公司制作保险类型的软件,早在 2016 年,保险科技公司仍在 COBOL(翻译注:一种比较老的编程语言)上运行。将其转化为Java 环境上可以带来巨大的成本和性能方面的利润,那时候我们主要就是与各种不同的保险公司打交道。

Adam: 在保险公司,Son Luong Ngoc开始发现这个游戏制作计划的理想存在问题。

Son Luong Ngoc: 当你进入保险行业时,你就会开始了解“可靠性”的价值,以及能够保证某些事情的价值。人们为此付出了很多钱,我想,为什么所有这些显然非常聪明的人能够花很多钱购买这些保险套餐?为什么他们如此看重这一点“可靠性”?

亚当: 作为一名滑铁卢数学毕业生,Son Luong Ngoc很容易就掌握了理解保险和精算数学的技能,这一切对他来说都开始有意义了。

Son Luong Ngoc: 这里有一些价值。你不需要赌上一切,依然可以形成价值网络。实际上,你可以使用所有保险背后的精算模型来定量计算,然后在滑铁卢所学的数学就开始发挥作用。我当时想,“哦,现在这一切都有意义了。我实际上可以用一种比赌上一切更好的方式来规划我的生活和收入。”

亚当: 从这个新的角度来看,Son Luong Ngoc创办一家游戏开发公司的计划似乎没有意义。

Son Luong Ngoc: 我当时想,“哦,该死,这计划就是赌博,这一切都有很大的风险,如果我想拥有可持续的生活、健康的生活,我就不应该追求这种赌博式的生活。”

Adam: 所以Son Luong Ngoc开始学习更多的软件开发,但他现在有了不同的观点,因为这不是关于游戏,而是关于创造东西和学习。如果他全身心投入的话,也许成为一名程序员可以成为他的新使命。

Lazada的911

Son 最初在 Lazada 担任 SRE

Son Luong Ngoc: 我有很多时间学习,我正在学习 AWS(翻译注:亚马逊的云服务平台)很多好东西,然后我在 Lazada(翻译注:东南亚知名电商平台)找到了一份工作,加入了一个名为 911 的技术团队。你可以猜猜这个团队是做什么的?为技术平台提供紧急支持。Lazada是一家东南亚的电子商务公司,在当时,它的市场份额数一数二。那时候我认为它们在 2017 年是东南亚第一名的电商平台,并且在六个不同的国家/地区有销售产品。

Adam: 就人口而言,东南亚幅员辽阔且多元化。其中包括越南、泰国和老挝,还包括新加坡、菲律宾、马来西亚、印度尼西亚等。它有 7亿人口,每个国家的人们都说不同的语言或有不同的习俗。Lazada 通过其位于越南的总部为东南亚市场提供服务,越南总部有好几百人在那里工作。

Son Luong Ngoc: 我团队里至少 200 员工是技术方面的,然后我们还有业务方面的同事。我记得我们的大楼至少有三层,每层大约有一百人。

这里可以无限畅饮饮料,还有一台卡布奇诺咖啡机,而且我们还不需要长时间工作,除非自己想卷一下。另外,就像在越南其他工作一样,竞争非常激烈,非常残酷,竞争激烈,我认为这不仅适用于越南,而且适用于整个亚洲国家。

Lazada的911部门采用的技术栈是 PHP(翻译注:一种Web应用编程语言),正在转换为在 Kubernetes上运行的微服务 Golang(翻译注:谷歌推出的高性能编程语言)。回到 2017 年的时候,Golang还是非常现代,发展非常快的一门语言。

我们在莫斯科设有研发中心,我们在越南有一个研发中心,在泰国或新加坡或两者都有一个数据工程中心。我们拥有三个不同的数据中心,都由我们自己管理。

Adam: 911 团队的工作很明确。

Son Luong Ngoc: 收到业务方面的升级,因为我们在六个不同的国家有业务实体。包括香港在内,共有七个。

我们收到了来自业务实体的升级诉求,然后我们将其升级到技术方面,那里的工作就是加快故障排除速度。因此,无需 911 将工单转发给开发团队,911直接修复它即可。只要去那里,找到问题所在,立即修复。我已经接触过整个系统了,在 Google 发布 SRE(翻译注:SRE工程师全称是“Site Reliability Engineering”工程师,即“网站可靠性工程”工程师。SRE是由Google公司首创的一个职位,它结合了软件工程师和系统管理员的角色,专注于创建和维护大型分布式系统的可靠性、性能和效率。) 的定义之前,我正在学习成为现在他们所说的 SRE。

但是,凭借我保险业务的背景,我立即能够认识到为什么企业重视可靠性这一点,因为他们想要那种稳定性和可靠性,他们愿意花巨资买单来提高稳定性。

双十一

11/11 天(光棍节)对 Lazada 来说意义重大,尤其是对 911 (SRE) 团队来说

Adam: 对于东南亚的一家电子商务平台来说,一年中最重要的一天不是黑色星期五(翻译注:北美的购物节),却是另外一天。

Son Luong Ngoc: 噢,是的。回到东南亚,北美和欧洲国家的人们可能不知道这一点,但东南亚受中国影响很大,中国在双11那天有很大的销售。所以11月11日是中国最大的销售日。它类似于北美的黑色星期五或加拿大的节礼日。所以双11也是Lazada当时销量最大的一次。我们在午夜向所有国家/地区开放销售服务,在销售服务正式启动之前,我们必须在此之前一个月进行压力测试,以便为高并发和大流量的负载做好准备。

问题

亚当: 屋漏偏逢连夜雨,但是在重要的日子里,出现了问题。

Son Luong Ngoc: 11 月 10 日午夜到 11 月 11 日早上,我们在 30 或 20 分钟内发现了问题。我们当时想,“哦,我们在马来西亚有很多订单,为什么一切都停留在待付款状态?等一下。这里有点不对劲。回溯一下问题看看吧。” 

事实证明一切订单都被支付节点失效了。事实证明,当晚,我们的信用卡处理机构(马来西亚的第三方信用卡处理机构)刚刚宕机,支付能力彻底挂了。我们发送到那里的所有支付交易请求全部都丢失了。当你建立一个电子商务平台时,你不可能考虑建立一切。比如你无法建立电子物流方面,无法建立付款模块,无法构建通知部分,因此需要使用和集成各种第三方能力。但是当第三方集成出现问题时,就需要制定高可用的备份计划了。

当时,我们还没有为马来西亚提供的稳定性监控服务(911服务)。我们在 911 房间里设有一个作战室,每个人都在那里,包括支付团队、首席执行官、首席技术官。每个人都在房间里,我必须检索一下机器日志来看看出了什么问题。首席执行官和首席技术官看着我,“嘿,看看是不是锁服务出了什么问题”,结果发现是支付问题。定位到问题后,我们必须将文本锁或 JSON 锁修复到某种伪 CSV 文件中,然后我们必须手动数据修复数据库,然后重放所有状态。事实证明,如果你关闭所有使一小时内未付款的订单失效的调度作业,则系统中所有其他调度作业也会终止,所以修复难度确实非常之大。

所以,是的,当时的系统并不是处于最佳状态,但这就是我们订正了所有订单的方式。收入是巨大的,是的,这很有趣。这真是一个美好的夜晚。早上,我们喝了很多红牛,然后每个人都在睡觉。我们看到首席执行官正在那边睡觉,CTO 正在这儿睡觉。那真是一个令人记忆深刻的晚上。我想那是2017年,到了2018 年的情况则完全不同。

Adam: 2018年很不一样,因为阿里巴巴介入了。阿里巴巴于 2016 年收购了 Lazada,但基本上没有直接介入过具体业务。东南亚软件公司已经习惯了这一点:按照自己的方式做事。

Son Luong Ngoc: 当你在东南亚工作时,你需要快速行动,但同时在东南亚,有六个不同的国家,说六种不同的语言,有六种不同的文化。如何让动作继续保持这么快?那是非常困难的。现在你必须建立六个不同的网站,使用八种不同的语言,而不是建立一个网站,同时你必须处理六个不同国家的监管。例如,印度尼西亚,他们有类似于 GDPR 的数据安全法律,其中数据不能离开该国的边界,即该国的物理边界。所以现在你必须进入该国并建立一个数据中心,而这又是在AWS出现之前。所以你必须进去那里亲自部署服务。需要建立一个数据中心,然后需要部署不同的技术底层服务,与该国其他地区相比,这是一个孤立的技术栈。那么现在还必须处理系统中不同租户、不同数据中心之间的数据同步。它使问题变得更加复杂,但是克服这种复杂性可以让你取得成功。

Adam: 正是因为这样的原因,Uber 和许多其他高速增长的公司在进军东南亚时都亏损了。寻求增长的不仅仅是美国公司。中国也有科技巨头,阿里巴巴就是其中之一。

进入阿里巴巴

阿里巴巴于 2016 年收购了 Lazada,从而将平台重新打造为 Java Spring

Son Luong Ngoc: 阿里巴巴是天猫和淘宝的所有者。这相当于亚马逊的两种模式,一种是C2C,一种是B2C。阿里巴巴他们拥有阿里云。如果你想在中国做生意,你需要把自己的系统托管在某个地方,这个地方就是阿里云。亚马逊在那里的市场份额非常小。百度云和腾讯云相比就更小了。最靠谱的是阿里云。大多数大型银行都是阿里云的租户。大多数主要银行都将其服务托管在阿里云上,因此规模非常大。除此之外,阿里巴巴还从事各种不同的业务。例如,优酷是一个视频流媒体平台,其规模与 YouTube 相当。他们还经营一种大多数人不知道的东西,叫做菜鸟。菜鸟是一个物流平台,可以处理所有运输,因此今天在全球速卖通甚至今天在亚马逊上购买的东西很可能会通过菜鸟从中国运送到你所在的国家/地区到你的港口。这是他们收购的全球物流平台。阿里巴巴在中国的业务真的很大,他们是科技巨头。

Adam: 这次收购给 Lazada 带来了一些摩擦。

Son: Lazada公司在 2016 年左右做出了决定,转向使用 Go 和 Kubernetes 而不是部署在裸机虚拟机上,那时候的时机还算为时过早的。所以采用的技术非常先进,但与谷歌或亚马逊之类的服务相比并没有那么高,但毫无疑问,它是当时东南亚最高的流量服务之一。

确实发生了很多变化,而且变化伴随着不确定性,这就是创新。引入新技术后,Lazada技术创新能力确实很高,但是该平台的可靠性又变得有点低。这只是整个集团愿意接受的商业风险。但阿里巴巴过来之后,这些人都经验丰富。它们习惯于处理高出 100 倍甚至1,000 倍的流量,而不会牺牲弹性。所以他们决定,“我们希望系统更加可靠,让我们将一切重新重构这个电商平台吧。”

阿里Java

Adam: 对于一些开发人员来说,切换技术栈是一个很大的问题。一旦切换意味着丢掉了很多知识,阿里巴巴的技术栈栈全是Java和Spring。

Son Luong Ngoc: 每个人都说,“Java 很糟糕,我们喜欢 Golang。赶紧离开这里吧。你的 Kubernetes 在哪里?哦,你没有 Kubernetes?你的 Docker 在哪里?哦,你有自己的 Docker 吗?不。” 但事实证明,中国科技中有一些值得学习的好东西,我认为其中一些东西至今西方人仍然不了解。这真是令人大开眼界。

Adam: 被收购的公司被迫采用其工作软件并重新构建其平台,以适应母公司的做法,这是典型的收购失败模式。重新构建平台需要数年时间,而且由于被收购公司的运作方式根深蒂固的假设,你最终会得到更糟糕的解决方案。但从更大的角度来看,重组平台最终会失败,因为它们最终的投资规模超出了公司的预期。这是关于阿里巴巴的事情。阿里巴巴并不害怕投资 Lazada。

Son Luong Ngoc: 这只是公司决定的事情,他们说是目标,实际上他们投入了相当大的投资。后来我才知道,这个项目其实是当时阿里巴巴最大的项目。当时他们称之为C级项目,C级项目,也就是说阿里巴巴的CEO其实对这个项目投入相当大,他们把阿里巴巴各个业务部门的人才全部抽出来,放到一个专门的项目里。使用一整个团队来实现这一升级目标。开始的时候我不明白阿里巴巴到底为什么要投资东南亚?但后来当我开始在阿里巴巴工作时,我开始意识到,哦,这实际上空间比我想象的要大得多。我的天啊。事实证明,这与以中国“一带一路”倡议为中心的长期规划有关,是的,它比我们想象的要大得多。在我们了解这一点之后,一切都有意义了,但在此之前,每个人都说,Java 很糟糕。

中国杭州

Son Luong Ngoc游历阿里巴巴西溪园区地图 - 图片来源:Son

Adam: Lazada 的每个人都开始了解阿里巴巴风格的 Spring(翻译注:Java的一款对象管理框架)。对于Son Luong Ngoc来说,这是一个了解软件开发的完全不同的世界以及在阿里巴巴集团规模上系统如何运作的机会。

Son Luong Ngoc: 他们让我们很多人飞到中国与那里的团队合作,学习阿里巴巴的技术栈,并使用相同的业务逻辑重新编码所有内容,但需要全部使用 Java、阿里巴巴的 Spring Java。

Adam: 阿里巴巴有自己的方式做事。他们有自己的 JVM。他们有 Git 的分支。他们有 MySQL 的分支。所以有很多东西需要学习,但 Son 的团队是一个 SRE运维保障团队。他们不拥有任何代码。

Son Luong Ngoc: 为了911,我们与阿里巴巴的一个名为GOC(全球运营中心)的团队合并。原来GOC是整个阿里集团的监督“天眼”。本质上,谷歌的 SRE 团队是阿里巴巴的集中式 SRE 团队,他们处理所有监控系统并处理来自不同业务部门请求,最终路由回各自的技术团队。

语言障碍

微软翻译成为Son Luong Ngoc最喜欢的应用

Adam: 现在,Son Luong Ngoc和他的团队是阿里巴巴集团的SRE,但有一个问题。内部使用的软件都是中文的,Son Luong Ngoc既看不懂也不会说。所以他参与的新项目都涉及大量翻译。

Son Luong Ngoc: 所有的用户界面、所有的系统都是中文的。所有文档都是中文的。我们在那里尝试构建新功能,这非常有趣。这真是一次经历。我在杭州阿里巴巴园区待了一个月,真是令人印象深刻。

Adam: 那么有语言障碍吗?

Son Luong Ngoc: 哦,是的,当然。他们把我们安排在旅馆里,我们不会说中文,所以我们无法点餐。我们通过手指点菜。顺便说一句,你在中国无法使用谷歌翻译,所以无法直接拿起手机在线翻译。后来我才知道,微软翻译确实可以用,所以我需要下载微软翻译来代替谷歌翻译,但是在中国沟通还是很困难,这就是异国生活。工作更是困难重重。一切都需要经过翻译,所有文档。有时,翻译会出错,然后随着时间的推移,你需要学习一些方言的表达方式。例如,他们希望将用例转换为场景,例如电影中的场景。每次你想谈论用例时,他们都会将其转化为场景。我当时想,“场景到底是什么?” 后来发现,我想,“哦,他们指的是用例。” 所以随着时间的推移,你只要学习,学会一些小东西,一切就开始变得更有意义。但是,是的,一切都非常困难。

亚当: 是的。但是,如果你正在开发这个工单系统,但其他人不会说英语或越南语,那么如何编写代码呢?

Son Luong Ngoc: 他们中的一些人确实会说英语,但还没有达到可以与他们进行技术交流的水平。我们必须让代码自己说话。现在,幸运的是,我当时有一个非常有才华的队友,他能够浏览从 ReactJS 到 Spring Java 的整个完整堆栈生态系统,并且他重新教了我很多内容。但应用程序本身非常简单。关于工单系统的主要事情是CRUD(翻译注:增删改查),然后你可以附加一些元数据。可以有一个状态机来处理不同的状态。最困难的部分是整合部分,阿里巴巴是一个巨大的生态系统,你有很多东西需要整合。

例如,你那里没有 Slack。但是有钉钉,钉钉是阿里巴巴的聊天系统,他们还有所谓的变更管理系统,这样阿里巴巴的所有变更、所有部署、所有网络变更都可以一键自动恢复。当部署的时候,如果出现一些问题,偏离了人工智能引擎发布的指标基线,那么你可以选择单击一个按钮并立即恢复所有更改。从数据库架构到部署,再到迁移,一切网络更改,只需单击一个按钮。但是,这很有趣。

支付宝问题

Adam: Son Luong Ngoc合并的团队也是支付宝的稳定性团队,这成了支付宝的问题。

Son Luong Ngoc: 在中国,如果你住在大城市,人们不接受现金。当我们去那里时,我们很难支付食物费用,因为人们只接受微信支付或支付宝。我们不能出去买珍珠奶茶,因为人们会喜欢,“哦,你只有现金?我不想费心去银行把这个现金再放进机器里,这工作量太大了。” 我们不得不恳求我们的队友,让他们兑换我们从越南得到的现金,这些都是中国现金,不是越南币,我们恳求他们再把数字货币转给我们。

Adam: 是的,使用支付宝是一个挑战,但更大的挑战是阿里巴巴集团的运营规模。

Son Luong Ngoc: 离我办公室间隔三个房间是网络运营中心,那里有带有所有图表的大屏幕。一个中国团队坐在那里观看所有警报,观看所有图表。非常酷的是,你可以看到所有平台的所有吞吐量、所有流量、所有网络,天哪,它是如此巨大的吗?我们对东南亚的流量感到非常自豪,与中国相比,那根本算不上九牛一毛。事实证明,当数十亿人使用相同的语言观看相同的直播、拥有相同的文化时,就会产生巨大的流量峰值。

想象一下,你以 100 美元的价格出售一台笔记本电脑,并且你有 10 台库存。通常,当你构建一个电子商务系统时,该系统将成为你的 SKU 数据库中的一行、库存单位,然后当有人订购时,它会将状态更改为已售出。如果 100 亿人试图对数据库中的一个库存下订单,会发生什么?你如何为此设计一个系统?

中国规模

Son Luong Ngoc的兄弟团队在阿里巴巴网络运营中心工作,那个流量规模是巨大的。

亚当, 这是一个有趣的问题。大规模可靠性的价值有多大?其成本是多少?当你同时拥有 10 亿用户时,你如何为双十一做好准备?

Son Luong Ngoc: 在中国,事情令人印象深刻,他们必须重新构建系统以适应他们现有的情况。我在欧洲没有看到同样的事情,我在北美也没有看到同样的情况。即使是北美的人口,美国和加拿大的人口总和,也还不到中国人口的一半。我们在这里谈论的事情是巨大的,规模非常庞大,他们无法访问谷歌,他们不读 Stack Overflow(翻译注:一个国外的Bug分享平台),他们有自己的东西。当我在那里时,我必须在那里学习我自己的所有东西,我当时就想,哦,天哪。他们只是走了完全不同的路线。我们对 Golang 和 Kubernetes 非常着迷。这些人是沉浸在 Java、Java、Java、Java、Spring Java、Spring Java里。在西方世界,他们只是在我们不知情的情况下进行了彻底的创新,全世界其他地方没有人讨论中国是如何建造东西的。

结果他们 fork (翻译注:指根据开源代码自己实现了一个分支)了自己的 MySQL,他们正在fork自己的 JVM,他们fork了自己的 Nginx,他们fork了 Git,以便它可以使用他们的内部对象存储平台而不是磁盘上的。因此,Git 在 GitHub 中随处托管,GitLab 要求你拥有一张光盘、一个物理硬盘驱动器,但这些中国正在分叉它,将 libgit2 插入其中,然后让 libgit2 与他们的 S3 内部实现进行对话。他们能够先于其他人将其 DevOp 平台扩展到云原生规模。即使在今天,GitHub 和 GitLab 仍在努力解耦存储和计算,而这个家伙已经做到了。同样,他们对 MySQL 也做了同样的事情。他们建立在从 Facebook 学到的有关将 MySQL 下的存储引擎分叉到 RocksDB 的知识之上,然后他们遇到了 RocksDB 是 LSM 树数据库存储引擎的问题。

问题是这些不同层日志的压缩变得非常慢并且消耗大量 CBU。那么猜猜他们做了什么?他们将该计算卸载到 FPGA。这些人正在运行定制硬件、定制芯片,以便他们的数据库可以更好地处理这些事情,这真是令人印象深刻,这在全球任何其他科技公司都找不到相同的东西。

中国996

 

在阿里巴巴,人们预计要长时间工作,Son Luong Ngoc亲眼目睹许多人在办公室的小床或帐篷里休息。

Adam: 在阿里巴巴,另一个令人惊讶的事情是每个人的工作量。

Son Luong Ngoc: 996!当我去那里时,每个人都告诉我关于 996 的事。你每周工作六天,从上午 9:00 到晚上 9:00,周一到周六,这就是生活。在办公室里,你很常见床,甚至露营帐篷。是的,不,说真的。在阿里巴巴的走廊里,你会发现几个露营帐篷,男女分开,这样人们就可以睡觉,不是在晚上,而是在午饭后的中午。在亚洲睡午觉是很常见的事情,尤其是在促销之夜,比如双十一。

Adam: 996 相当于每周 72 小时,但不用担心,包括午睡时间。起初,Son Luong Ngoc根本不喜欢也不理解这一点。

Son Luong Ngoc: 但后来我开始意识到为什么会是这样。如果你是一家国外的科技公司,并告诉员工每周工作六天,从 9:00 到 9:00,这是不可持续的。没有人会为你工作。因此,能够告诉人们从 9:00 到 9:00 工作,每周工作六天,而人们仍然想排队为你工作,那一定有什么特别的地方。

后来发现,当我开始和那里的中国队友交谈时,他们开始给我讲一个故事,这些故事非常有意义。这样想吧,找到稳定的工作后做什么?可以结婚了,在中国结婚之前,我的朋友告诉我,你至少需要有房子和汽车。如果你去阿里巴巴工作,因为阿里巴巴拥有支付宝很多股份,支付宝是一家金融公司,全国人民都使用支付宝代替现金购买,他们也提供贷款。他们可以以非常低的利率向你提供抵押贷款。

你在阿里巴巴的级别越高,获得的利率就越好,类似于汽车贷款服务。你可以从公司贷款购买汽车,而且你的级别越高,获得的利率就越高。这还不是唯一的事情。事实证明,如果你在大公司工作,你的信用评分非常高。因此,信用卡提供商实际上会尝试在公司外面排队,以便当你离开时,他们可以给你发递传单开卡。这里有免利率的钱,请向我们员工借用,这是第一件事。第二件事是校园生活般方式,大家都在食堂吃饭,他们有九栋不同的建筑,九栋建筑中有四个不同的自助餐厅。食品是大规模生产的,因此他们能够非常便宜地生产,因此他们能够非常便宜地向员工提供这些食品。

Adam: 现在我还没有在大型科技园区工作过,但其中一些听起来与 Meta 园区或 Google 园区并没有什么不同。Son Luong Ngoc在那里拍了很多照片,如果你想看其中一些照片,我已经在 Twitter 上分享了它们,包括睡觉的帐篷、按摩、吃饭的地方,以及事物的规模,但是,是的,人们不会一直埋头工作,公司也为他们提供了很多福利。

Son Luong Ngoc: 按规定工作日是晚上6:00结束的,但是下午6:00到7:00之间的食物会打折。因此,员工有动力在 6:00 后留在公司园区里。然后在9:00,他们可以发放免费的零食。因此,在家无事可做的单身员工可以留在园区直到 9:00,以获得这些免费零食。还有出租车,如果你9点之后回家,现在你可以得到免费出租车。我的天啊。现在你开始看到所有福利开始发挥作用。嘿,阿里巴巴实际上为人们提供了很多激励,让人们在 上午9:00 到 晚上9:00 工作。然后你知道,如果你需要出去买东西,嘿,天猫和淘宝会把它送到你的大楼门口。与回家相比,你在园区内获得最快的发货速度。

因此,你可以将所有电子商务平台购买的商品发送到该公司地址。只要告诉它哪个小邮局,然后下去取就可以了。所以住在园区比回家更方便。人们在任何地方都可以获得影响他们生活的所有福利。他们愿意为此而努力。

爬梯和 KPI

Adam: 所有这些福利意味着很多人都想在那里工作,然后你在公司的阶梯上爬得越高,他们的福利就越多,这导致内部竞争会变得相当激烈。

Son Luong Ngoc: 他们愿意竞争工作岗位,这就是为什么阿里巴巴有一种非常残酷的文化,这样他们每年都能裁掉表现不佳的人。我认为 30% 的低绩效者已经被裁掉了。大家都在争顶,因为最好的绩效结果,会多了一项福利,就是你的最终奖金,你每年的年终奖可以达到你工资的100%。

亚当: 哦,哇。那是巨大的。

Son Luong Ngoc: 所以人们竞相成为表现最好的人,阿里巴巴知道公司的361制度在做什么。

Adam: 如何管理一家由软件开发人员组成的庞大公司,让员工全力以赴玩命工作?好吧,也许你已经知道答案了,我想这就是阿里巴巴的抓手。

Son Luong Ngoc: 阿里巴巴的管理方式是自上而下、非常注重KPI的。每个业务部门都有一定的 KPI。这些业务部门的领导将 KPI 分配给每个子部门,每个子部门将 KPI 分配给其员工,他们有需要满足的指标。这家公司非常注重考核指标。

Adam: 这种 KPI 或 OKR 系统,就像任何针对积极主动的人的自上而下的系统一样,会导致一些意想不到的后果。例如,将 Lazada 移植到内部平台是一回事,但实际运营公司,也许这是一个不那么令人兴奋的项目。

Son Luong Ngoc: 这是传闻,所以我并不是说这是事实来源,但有传言说他们认为 Lazada 是一个无法盈利的地方,无法让他们实现 KPI,所以没有人想成为 Lazada 的首席执行官,因为这注定是一个失败的职位。Lazada 实际上更换了很多 CEO,因为没有人能够达到他们预期的 KPI。那里的文化相当残酷,人们为了获得成功而竞争好职位。

亚当: 从某种程度上来说,这听起来很陌生的工作方式。还有另一种听起来像谷歌的方式。

Son Luong Ngoc: 嗯,我没办法描述,因为我从未在谷歌工作过,但我可以告诉你的是,阿里巴巴的发展速度非常快,而且我认为没有公司可以发展得这么快。尤其是如果你在西方国家、欧洲或北美工作,你的行动速度就不会很快,阿里巴巴则动作快了很多。

新加坡

Son Luong Ngoc去了新加坡工作,充满活力的机场影响了Son Luong Ngoc对规划的思考。

亚当: 好的。阿里巴巴和中国的发展速度很快,这可能令人兴奋,但对Son Luong Ngoc来说,这也有缺点。

Son Luong Ngoc: 阿里巴巴显然提供了很多,但我有兴趣了解还有其他什么东西,而且我对天天使用谷歌翻译中文文档感到有点厌倦。我正在寻找其他机会,有一次我的老板说,“嘿,我要转岗去同一家公司,但在新加坡,你考虑吗?”

Adam: 所以 Son 继续在 Lazada 工作,但搬到了新加坡,他在911的现场经验使他成为团队的技术专家。

Son Luong Ngoc: 然后我就开始教我新加坡的同事关于阿里巴巴的技术。他们当时使用的是Python,很多Python、Django、Flask都在阿里云上自托管,我当时想,“同事们,这里是阿里Java。这就是所有的美好。” 想象一下 Spring Java,但一切都配备了电池的感觉。你想要一个数据库吗?有一个开箱即用数据库。你想要一个消息队列吗?有一个开箱即用消息队列。你无需担心基础设施,一切都是开箱即用的,这实际上是一个缺点,因为我开始意识到外面的世界变化得很快,尽管我在阿里巴巴内部技术相当于专家水平,但我对外面的世界一无所知。

亚当: Son Luong Ngoc想要不断成长和学习,而不是把自己受限于一家公司、一个技术栈,所以他为自己设定了一个最后期限。

Son Luong Ngoc: 所以我制定了一个计划,到新加坡一年后,我需要学习新技术,探索当地就业市场。当时,我实际上正在新加坡面试谷歌。我参加了他们的几次技术讲座,并与新加坡的GPay支付团队进行了交谈,他们做了很多有趣的事情。

亚当: 众所周知,谷歌有一个超长的招聘流程(翻译注:据说谷歌有7面面试),与此同时,Son Luong Ngoc找到了做一些完全不同的事情的机会。

Son Luong Ngoc: 当时我正在和我当时的女朋友谈恋爱,也就是我现在的妻子。我当时想,好吧,我需要在某个地方安顿下来。但是我祝你在新加坡买房好运,因为新加坡的物价太贵了,你最好的运气就是能够租到一套漂亮的公寓,仅此而已。你几乎不可能买一辆车,买一辆车要花费数百万美元,这太疯狂了。

阿姆斯特丹

Son Luong Ngoc搬到阿姆斯特丹为 booking.com 工作

Adam: Son Luong Ngoc收到了 Booking.com 的Offer。Booking.com是一家总部位于荷兰阿姆斯特丹的在线旅行社,在某些方面,阿姆斯特丹的生活和工作方式与新加坡相反。

Son Luong Ngoc: 我借此机会告别了新加坡,尽管我非常爱新加坡。这是一个非常好的国家,非常棒,强烈推荐。

亚当: 哪里的食物更好?

Son Luong Ngoc: 当然是新加坡。荷兰是最糟糕的,即使是荷兰人也讨厌荷兰的食物,我于2019年8月离开新加坡前往荷兰,然后我和我的妻子在新冠疫情风口浪尖上正式结婚了。

工作与生活的平衡

Son Luong Ngoc: 到了荷兰,我记得我第一天上班时的产品经理,他让我和我的团队领导坐下来,我们一起制定了工作方向。我的产品经理让我们俩坐到他们旁边,他解释道,“朋友们,Booking 花了很多钱才把你们Base到这里,我们希望你在这里取得成功,这意味着你需要首先优先考虑你的生活。你需要能够先租房子,完成所有文书工作,所以在接下来的一个月里,如果你需要请假去处理这些问题,就去吧,然后再回来告诉我们,”这是一个巨大的开端,因为这只是一个精神上的转变,与阿里巴巴相比完全是 180 度。

因为阿里巴巴,一切都是工作、工作、工作,你的生活就在公司里,工作即生活。你的KPI指标很重要,想梦魇一样全天候围绕着你。Booking完全不是这样的。Booking的工作方式就像是,“不,我们尊重你作为一个人,我们知道你有一个家庭,我们知道你有需求,照顾好他们,然后回到我们身边,一起尽力而为”,这改变了我的一切工作观念。在 Booking 中,我甚至有一些盲人同事和队友,我的同事中有男同性恋、女同性恋、残疾人,我们都能够一起出去玩耍聚会,没问题,没有歧视。

这是一种巨大的、开放的、受欢迎的文化,荷兰的人非常多元化,与此同时,我们的网站仍然有大量的流量,我们仍然面临着必须解决的大规模流量的问题,即使是在新冠疫情期间,在搬迁期间,在新婚姻期间。尝试找到工作与生活的平衡是非常有趣的。

反思

Son Luong Ngoc的建议是程序员应该去多多旅行

亚当: 所以现在,Son Luong Ngoc已经在世界上找到了自己的喜欢的位置。他和他的妻子仍在荷兰,他找到了自己的家,找到了一个工作文化最适合他的地方,但他只知道这一点是因为他的丰富的经历。如果他一开始就加入 Booking,也许他不会意识到自己拥有什么,因为他无法进行比较。这一事实塑造了他向其他人提供的生活和工作的建议。

Son Luong Ngoc: 生活是丰富多彩的。在我来中国工作之前,中国的生活对我来说是一个黑匣子。我没有想到有一种支付系统如此先进以至于人们会拒绝使用现金。我知道信用卡的存在,但这并不意味着当我递给你现金时,你会拒绝接受。与此同时,去东南亚,看到各种不同的初创公司试图在地图上占据一席之地,这极大地改变了游戏规则,因为它使我能够从商业角度思考,如果我是首席执行官或首席技术官,我将如何经营这个公司,大大丰富了我的商业思维能力。

我还学会了如何参加聚会。在滑铁卢,他们喝珍珠奶茶,去多伦多举办派对就比在滑铁卢举办更精彩。回到越南,每隔一两周就是一次酒会,我们喝了很多啤酒,吃了很多火锅,那里的食物很棒,毕竟是我的祖国。当我去新加坡时,我了解到“城市规划”可以带来什么,你只要进新加坡就可以看到。来到新加坡,你首先看到的就是世界上最好、最美丽的机场。你会看到这样的感觉:“哦,天哪。我的政府要花多少钱来建造这个机场?” 但无限的金钱不会改变这一点,因为这不是金钱的问题,这是规划的问题。然后是荷兰,他们教会我要保持开放的心态,他们教会了我如何平衡工作与生活。

这一切只是需要更多地旅行才能感受到。

这不是 Booking.com 的广告,而是要告诉程序员多去旅行,从中了解更多,并保持开放的心态,也许西方媒体可以告诉你很多关于中国的Shit,关于中国事情有多么邪恶,但请尝试去那里看看人们是如何生活的。能够看到成千上万的人同时在你周围吃午餐,或者看起来像你这样的亚州人,你会感到谦卑和融入。进入自助餐厅,看到数百人排队享用同一道菜,确实有一种卑微的感觉,它让你感觉自己很渺小。外面的世界很大,多旅行。

Son Luong Ngoc拍摄的阿里巴巴图片

 

英文原文点击链接

 更多原创内容关注公众号:ali老蒋,或点击加我好友深度沟通:ali老蒋 - java开发者

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/578572.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】数据库规范化的三大法则 — 一探范式设计原则

🍎个人博客:个人主页 🏆个人专栏: 数 据 库 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 1. 第一范式(1NF): 2. 第二范式(2NF): 3. 第三范式…

打字练习软件推荐:Master of Typing 3 中文 for Mac

"Master of Typing 3"是一款针对打字练习和提高打字速度的软件。它提供了一系列有趣和有挑战性的练习,旨在帮助用户提高键盘打字技能和准确性。 以下是"Master of Typing 3"的一些主要特点和功能: 打字练习:软件提供了各…

2023年12月25日学习总结——MLP

💡我准备每一天都写一个学习总结,周末再把每日的学习总结汇总成专门的文章 🔆我的学习总结主要是为了自己的个人学习,没有商业用途,侵删 okkk开始今日学习 目录 1、今日计划学习内容2、今日学习内容深入学习MLP&#…

西南科技大学计算机网络实验四(交换机基本配置与VLAN配置)

一、实验目的 熟悉交换机的各种基本配置与VLAN配置。 二、实验环境 使用RouterSim Network Visualizer软件来模拟网络设备与网络环境。 三、实验内容 1、交换机的基础配置 2、单台交换机上的简单VLAN设置 3、多台交换机上进行VLAN设置 四、实验步骤 4.1 交换机的基础配置…

6.3 多线程的安全与应用

6.3 多线程的安全与应用 1. 多线程概念1. 进程2. 线程 2. 创建多线程3. 线程同步4. 线程安全5. 线程池应用 1. 多线程概念 1. 进程 2. 线程 2. 创建多线程 3. 线程同步 4. 线程安全 5. 线程池应用

编写fastapi接口服务

FastAPI是一个基于 Python 的后端框架,该框架鼓励使用 Pydantic 和 OpenAPI (以前称为 Swagger) 进行文档编制,使用 Docker 进行快速开发和部署以及基于 Starlette 框架进行的简单测试。 step1:安装必要库 pip install fastapi uvicorn st…

设计模式--建造者模式

实验5:建造者模式 本次实验属于模仿型实验,通过本次实验学生将掌握以下内容: 1、理解建造者模式的动机,掌握该模式的结构; 2、能够利用建造者模式解决实际问题。 [实验任务]:计算机组装 使用建造者模…

MySQL explain执行计划详解

使用explain关键字可以模拟优化器执行SQL查询语句,从而知道MySQL是如何处理你的SQL语句的,分析你的查询语句或是表结构的性能瓶颈。 explain执行计划包含的信息 其中最重要的字段为:id、type、key、rows、Extra 各字段详解 id select查询…

C语言第五十八弹----介绍memset内存函数

介绍C语言内存函数memset memset是C语言标准库中的一个函数,用于将一块内存区域的数据设置为指定的值。 源代码 void* memset(void* ptr, int value, size_t num);ptr是指向要设置的内存区域的指针,value是要设置的值(以int形式表示&#x…

每日一练2023.12.25——验证身份【PTA】

题目链接 :验证身份 题目要求: 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首先对前17位数字加权求和,权重分配为:{7,9,10,5&a…

python对图片进行二值化处理

二值化处理是一种常见的图像处理技术,它可以将灰度图像或彩色图像转换为二值图像,其中每个像素只包含0(黑色)或255(白色)。Python中常用的库来进行二值化处理的是OpenCV和Pillow。 以下是一个使用OpenCV对图片进行二值化处理的简单例子: import cv2# 读取图片 img = c…

Windows配置C语言环境(超级详细)

Windows配置C语言环境 1.安装C编译器(MinGW-W64 GCC)1.1点击安装1.2将压缩包解压到相应目录1.3把mingw添加进系统的环境变量1.4测试 2安装并配置Visual Studio Code2.1下载VSCode2.2“Code Runner”扩展的配置 3.编写C语言 各位小伙伴想要博客相关资料的…

如何使用支付宝沙箱环境支付并公网调用sdk创建支付单服务

文章目录 1.测试环境2.本地配置2. 内网穿透2.1 下载安装cpolar内网穿透2.2 创建隧道3. 测试公网访问4. 配置固定二级子域名4.1 保留一个二级子域名4.2 配置二级子域名5. 使用固定二级子域名进行访问 1.测试环境 MavenSpring bootJdk 1.8 2.本地配置 获取支付宝支付Java SDK,…

【我与java的成长记】之面向对象的初步认识

系列文章目录 能看懂文字就能明白系列 C语言笔记传送门 🌟 个人主页:古德猫宁- 🌈 信念如阳光,照亮前行的每一步 文章目录 系列文章目录🌈 *信念如阳光,照亮前行的每一步* 前言一、什么是面向对象面向过程…

输出从0-n的水仙花数

水仙花数(Narcissistic number)也被称为超完全数字不变数(pluperfect digital invariant, PPDI)、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数(Armstrong number),水仙花数是指一个 3 位数&#…

9.独立看门狗IWDG窗口看门狗WWDG编码思路

前言: 看门狗是维护系统稳定性的一向技术,可以让代码跑飞及时复位,在产品中非常常用,俗话说,重启能解决90%的问题,作为产品来说,你总不能因为一次bug就让程序卡死不动了,肯定要试着重…

Windows操作系统:共享文件夹,防火墙的设置

1.共享文件夹 1.1 共享文件夹的优点 1.2 共享文件夹的优缺点 1.3 实例操作 ​编辑 2.防火墙设置 2.1 8080端口设置 3.思维导图 1.共享文件夹 1.1 共享文件夹的优点 优点 协作和团队合作:共享文件夹使多个用户能够在同一文件夹中协作和编辑文件。这促进了团…

基于ssm珠江学院大学生自愿者服务网论文

目 录 目 录 I 摘 要 III ABSTRACT IV 1 绪论 1 1.1 课题背景 1 1.2 研究现状 1 1.3 研究内容 2 2 系统开发环境 3 2.1 vue技术 3 2.2 JAVA技术 3 2.3 MYSQL数据库 3 2.4 B/S结构 4 2.5 SSM框架技术 4 3 系统分析 5 3.1 可行性分析 5 3.1.1 技术可行性 5 3.1.2 操作可行性 5 3…

2024,华为重塑笔记本的“创新周期”

作者 | 曾响铃 文 | 响铃说 谈及电脑PC,相信不少消费者都会下意识地给行业贴一个标签:夕阳行业。毕竟当下已经是移动互联网时代,传统PC的使用场景不断萎缩,市场研究机构Gartner报告显示,截至2023年第三季度&#xff…

ViT中的上采样和下采样——patch merge

在视觉Transformer(Vision Transformer,ViT)中,上采样和下采样通常指的是在不同层之间调整特征图的空间分辨率,以便在不同层次上捕获图像的不同尺度的信息。与传统的卷积神经网络(CNN)不同&…