观点速览:- 不论在任何时代,软件架构师的恒定不变的第一性原理永远是价值思维从价值思维出发,我们最终能推导出架构师的六大生存法则:有唯一且正确的目标、架构设计要顺应人性、最大化经济价值、架构选型必须顺应技术趋势、通过架构手段为企业注入外部适应性、在一个友善的企业文化中成长;- 没有人性的技术架构就没有生存空间;- 微服务不是万能的,如果有人声称只有一种架构能够适应所有企业,那么架构师就没有存在的必要了;- LLM is a text/token Computer大模型时代,架构师在 LLM 本身的设计上没有多大机会,但是在 text/token 的计算效率,数据质量和计算及时性上有很大的发挥空间;- LLM 时代,机会主义者程序员看盲区从编码到架构,普通程序员和架构师的本质区别是什么?如何设计出一款优秀的架构,其中是否有衡量标准?大模型会对架构师带来哪些机会与挑战?近日,我们和韩国电子商务巨头公司 Coupang 副总裁、《架构思维:从程序员到 CTO》作者郭东白聊了聊,从这位资深架构师的技术人生中,看他与架构“交手过招”的 24 年,也希望他曾经奋力跨越的那些架构“巨坑”带来的经验与心得体会、以及在 LLM 时代下的新思考,能够给当代开发者一些启发与帮助郭东白,Coupang 副总裁
郭东白的程序人生在采访的过程中,令笔者有些意外的是,博士毕业即进入甲骨文、微软、亚马逊、阿里巴巴、车好多等科技大厂公司的郭东白,起初并非是专业的程序员,就连成为架构师用其本人的话来自评——也是“偶然的”当问及其技术成长之路时,郭东白表示,首先要感谢自己的父母,在很多父母都倾向于过度干预孩子的教育和发展、俗称“鸡娃”之际,“我觉得我的父母相对笨拙,与其他父母不同”郭东白袒露,因为父亲是作家,母亲是家庭主妇,家里没有科技领域相关的从业者,但父母给了他足够的「自主决策」空间所以,在初中一年级去“少年宫”初次接触到电脑时,一种对新事物油然而生的好奇心随之萦绕在郭东白的心头,父母也是始终支持他的选择兴趣趋势下,即使彼时学校没有编程课程,郭东白依旧独身从 4KB 内存的 Laser 310 单板机到 Apple II 电脑,从 BASIC 到 6502 汇编语言,开始了自学之路再次出乎意料的是,虽然从小开始接触了编程,但是郭东白起初似乎并没有打算走这条路在 90 年代末,因为当时听到了生物、能源和信息技术才是未来的各种传闻,郭东白采用“剔除法”选报了专业:首先,对生物并不感兴趣;其次,此前学习了太多计算机相关的内容,还参加了各种竞赛活动,所以有些“乏”了,就这样,选择了能源专业进入大学后,郭东白在“选择”与“兴趣”之间来回徘徊,但做到了“两手抓”:一边选择未来趋势之一的能源专业;另一方面做不到彻底放下计算机,在大学时攻读了双学位,兼顾了计算机科学这样有些“纠结”的心态持续到了攻读更高学位期间,郭东白也没有做出关于“计算机”方向的终极选择,反而他在研究生、博士时选择了一个与计算机相结合的 Computer Vision(计算机视觉)方向郭东白主要做医疗图像处理方面的研究,甚至他的导师也不是计算机系而是工程系的学业生涯结束后,郭东白才开启程序员“升级打怪”的全历程2000 年,郭东白先后加入美国的 Oracle、微软、Amazon 任职,从程序员开始到高级研发经理,郭东白开始认真学习并实践软件架构,同时也在图像和 NLP 算法领域继续专研2014 年,郭东白加入阿里巴巴旗下的 AliExpress(速卖通)团队,期间支持全球速卖通在四年内从 24 亿美元增长到超过 100 亿美元的 GMV(Gross Merchandise Volume)郭东白带队为速卖通搭建起了全球化的技术架构,这个架构迄今还在支持速卖通的全球化到本地化的增长过程2018 年,郭东白到了阿里巴巴的另一个团队 Lazada(来赞达)担任集团 CTO,管理全球六个开发中心的 600 多名全职工程师,并与阿里巴巴集团内的 10 多个业务部门合作,打造东南亚最大的电子商务平台随后他在车好多(瓜子二手车母公司)担任集团 CTO现在,他在韩国电子商务公司 Coupang 担任技术副总裁一路走来,郭东白的程序人生“修炼”之路又有哪些诀窍,我们将从对话中进一步深入了解从程序员到架构师、CTO 的修炼之路CSDN:2014 年回国加入阿里,从首席架构师职位到速卖通 CTO,你曾经用了多久的时间?郭东白:实际时间应该是一年半CSDN:成为 CTO,不仅需要夯实的技术能力,也需要丰富的管理经验,中间有哪些学习方法可以与我们分享?郭东白:我个人觉得最有效的学习方法就是经常思考不同的情景,并不断在监测和反馈的闭环中验证、实施过往遇到事情时,我会一直思考下一步可能发生的情况,并做出各种假设,然后观察结果是否与自己设想的一致,如果不一致,进而再去弄清楚“为什么”同时,也要学会多做判断,当然并不是所有的判断都需要立即采取行动,可以先做分解,进而分析为什么我的判断可能出现偏差我相信通过思考和反馈,可以不断地改进和提升自己的学习和判断能力这一点正如我在《架构思维:从程序员到 CTO》这本书中特别强调的实证思维,即你在任何时候都会遵循一套相对规则驱动或理性驱动的规则,然后这些理性驱动的决策永远都在不断修正你的决策体系接着,你会观察每次修正后的效果是变好了还是变差了CSDN:由此看来,实证思维是不是一线程序员晋升为架构师最重要的思维之一?郭东白:我认为是的我还要强调一点,这种思维不应该只在程序员想晋升为架构师、CTO 时才开始培养,而应该在日常作为程序员的时候就开始培养现在,我们正在亲眼见证大模型如何冲击这个行业简而言之,我们之前认为的一些简单编程任务,在未来 1-2 年内很可能会被自动化替代掉在这个时代,无论你是程序员还是架构师,你都必须开始尝试实证思维实践换句话说,架构不再仅仅是架构师的职责,而是所有程序员所需的技能如果你没有这些架构技能,那么你可能连程序员这个职业都很难胜任架构师的生存法则CSDN:从一位编程爱好者成长为专业程序员时,你也完整地经历了前互联网时代、移动互联网时代、云时代再到如今的大模型时代,你在不同时期做技术架构有什么不一样的感受?每一个不同阶段,都会淘汰掉一些东西,以及留存下一些东西,你发现不同时期最大的变量和不变量是什么?郭东白:我觉得你问的问题很好首先,我们发现一个规律,即一两年前的技术很少有人会觉得新鲜或值得学习,那是因为已经有取代它们的技术出现了放眼当前,特别是像大型模型等新技术发展迅速,技术迭代速度更是快之又快以出书为例,大多数情况下,看有关大模型的论文等资料的时效性还好,但是要把它的相关内容出成一本书,或许当图书出版时,关于这项技术的内容可能已经过时了因此,不同阶段最大的变量是面向用户和设备的技术,设备到用户的连接层技术一直在变化,但是做软件架构的背后的思维方式,我认为是不变的在我们的思考出发点中,有三个不变的视角:首先是企业视角,即从企业的角度出发,你必须以最大化企业利益的角度思考,这是理性决策的一部分其次是职能视角,作为架构师,你必须不断提升专业决策的能力,而实证主义是提升这种能力的方法论最后是个人视角,在一个快速发展的行业中,必须持续成长,这就需要采取成长思维的方式所以,我认为这三个视角是不变的,尽管技术在变化,但价值思维、实证思维和成长思维是永恒的我在书中第一部分详细解释了价值思维是第一性的,另外两个思维则是价值思维的必然结果CSDN:你在书中着重分享了架构师六大生存法则:有唯一且正确的目标、架构设计要顺应人性、最大化经济价值、架构选型必须顺应技术趋势、通过架构手段为企业注入外部适应性、在一个友善的企业文化中成长其中,对于「目标」和「经济价值」也是从业者正在面临的痛点、难点问题,因为在架构没有落地实践之前,很难判断目标是否正确、有限资源经济价值是否可以做到最大化,对此,有什么样的建议,可以促使决策者尽可能地成功或者少走弯路?郭东白:「目标」和「经济价值」这两个概念略有不同在我看来,目标是企业中心化思维的一部分,是自上而下地执行那么目标的源头在哪里?其实就在公司的高层管理者,比如 CEO 和 CTO,而他们的目标又可以追溯到企业为客户创造的价值从这个角度来思考,最好能够与 CEO、CTO 等接触,了解他们的思维方式即使没有机会直接接触 CEO,至少也要从以客户为中心的价值思维的角度考虑,这可以被视为一种捷径我认为深入理解目标是至关重要的许多技术人员只追求技术,却不了解公司的客户是谁,或者现在和未来的客户是什么一个很好的例子是当下的阿里巴巴,今年初他们重新定义了客户,思考为客户创造什么价值尽管这家企业拥有众多优秀的人才,在商业和战略上都很复杂,但他们仍然需要重新认识客户我认为每个人,包括企业中的员工,都应该不断地意识到世界的变化,了解我们的企业受到了什么价值的影响,以便思考我们的目标应该是什么,我们的目标最终应该对价值做出贡献如果你无法理解目标与价值之间的联系,那么你将无法找到解决问题的方法学习理解经济价值的办法和学习理解目标的办法有很大的差异我认为最好的办法是花时间读一本微观经济学的教材 还有一些与经济学理论应用相关通俗的书籍,比如 Freakonomics,也会对理解经济价值有所帮助CSDN:在很多工程师看来,技术好像才是重要的,未必能想到「人性」这一块,你为什么想到要把“人性”归纳到架构师的生存法则中?此前是否遇到过这样的情况?郭东白:对于架构要顺应人性的观点,我认为特别是对于大型互联网公司的架构师来说,这是一件必须理解的事情只要一个架构活动的成败强依赖于多数程序员的全力投入,那么尊重人性就是一个架构设计的必需 我在书中讨论架构时曾强调过:没有人性的技术架构就没有生存空间也在书中举过一个架构案例(详情见《架构思维:从程序员到CTO》P58-59),在这个案例中,我受邀做架构评审的一家国内大企业在海外布局过程中,投资了一家同领域的国外的初创公司原本这家国外小公司有自己的研发人员且初步建设了自己的技术体系,并且在行业领先,但大企业希望通过设计新的架构,将小公司的技术迁移到自己开发的技术平台上,以实现全球业务的统一输出原本这如果实现,小公司可以专注于本国解决方案的开发,减少人力成本,提高开发效率但没想到,这家大企业投入超过 1.5 万人年建立这个庞大的系统,通过更多的海外投资大幅扩展了自己的投资版图,技术方案的推进和被投资业务的增长都不尽如人意最终,这个方案被取消了,这家企业总共损失高达几十亿美元,这还不算浪费掉的机会成本我们通过分析会发现,这个架构在多次尝试下、在多个不同的国家中屡战屡败失败的根因是:这个架构设计完全忽略了人性
因为它完全破坏了最核心的研发人员的心理安全感在多数核心研发人员无法全力投入的情况下,该架构失败就成为了必然如果以金额度量,这是我至今所见过的最大的架构失败 如何设计出一个优秀的架构?CSDN:架构师不仅需要面对老板,也需要面对开发人员、产品经理等,每个不同角色对架构的需求理解都是不一样的,因此,架构师在面对不同需求的时候,如何平衡?郭东白:我觉得做架构的人经常会面临各种各样的平衡,就像你提到的,涉及各种利益方的冲突,不论是成本、需求还是研发利益,不同的角色都会给架构师带来不同的看法如何解决这些冲突,在我看来,这里有一个核心原则:必须以价值思维为导向一旦将企业的价值放在首位,其他原则便可迎刃而解作为架构师,你可以期待通过这些原则:首先,促进达成理性共识;其次,把你变成一个引导决策发生的人,而不是一个做命令或者是产生决策的人越是有利益冲突的地方,越需要坚持原则,而这个原则在架构上就是价值思维CSDN:你是否认可“优秀的架构不是设计出来的,而是迭代出来的”这句话?郭东白:我认为这是一个完全错误的观点在我看来,无论企业处于何种环境下,都存在一个最佳的架构方案,这就是企业最迫切地想通过软件获取的价值而最大化这种价值的软件架构是有唯一解的但是为什么软件会有迭代这一过程呢?是因为当企业内外部环境发生变化时,原有的架构假设可能会失效,从而导致之前定义的好的架构不再适用因此,迭代的过程是为了在新的环境和挑战下重新设计一个最适用的架构,但是这个适用的架构也是新的挑战下唯一的答案,不存在多个最优解CSDN:判断一个系统架构是好还是不好,有没有什么衡量标准?郭东白:我认为衡量标准很简单,就是企业生存优势最大化当然,企业的生存优势很难量化,最终最直接的量化指标通常是经济指标,即最大化经济价值最终变成优化成本或者扩大收入CSDN:在过去一年里,有人称是「2023 年微服务的水逆之年」,其中 Google 一位工程师斥责,“微服务将逻辑边界(如何编写代码)与物理边界(如何部署代码)混为一谈”;亚马逊的一个监测视频流质量工具的团队称,放弃无服务器、微服务架构了,改用单体架构后,为客户节省 90% 的运营成本,还简化了系统复杂度此外也有不少小企业放弃微服务,你如何看待这种趋势?郭东白:这个案例很有趣,我认为这是架构师应该具备判断力的一个很好的案例首先,报道中提到 Google 工程师时,并不是指 Google 整个公司,而是个别工程师的看法其次,Google 这位工程师的说法并非完全错误,但它只是在某个特定时期的观点微服务主要想解决的就是逻辑边界的问题,而不是解决部署的问题而解决逻辑边界的问题,并不是任何一个企业的任何时间的最高优先级,搞清楚这件事情其实很重要如果你把编写代码的逻辑边界分得非常清晰,它是有价值的,它会让你代码生产的速度变大,而代码生产的速度变大,就意味着企业的迭代效率会变高,对于成长型企业而言,肯定是希望迭代速度变快的但是对并非处于高速成长期的 Google、亚马逊而言,情况却相反至少从 Google 这家公司角度来看,其很多产品的形态是没有发生翻天覆地的变化的,因此高速迭代并不是 Google 的第一需求,因此,这位 Google 工程师说不需要微服务很正常而亚马逊公司视频团队放弃微服务用单体结构其实就和合并部署一样,的确会带来很大的成本回报这也是一个典型的成长后期企业的需求在这种情况下,一名架构师需要结合公司的具体情况对断言做出判断架构师没必要盲目追随像谷歌、亚马逊等大公司的做法,更不需要追捧某个大企业中一个工程师的说法我认为,在生存阶段的大多数企业都需要进行高速迭代、高速探索在这种高速探索的情况下,清晰地定义服务边界尤为关键这是绝大多数架构师的处境 不过,并不是说微服务就能解决所有问题如果世上真的存在一套能适用于所有企业的架构,那么架构师就不复存在了作为架构师,更多的是需要考虑你的企业真正需要什么你需要采用一种灵活的思维方式,结合企业和团队的特点以及当前所面临的具体问题,来应对这些挑战 迎接 LLM,架构师如何适应变化?CSDN:大模型的到来,改变了开发者的日常编码方式,互联网架构师原有的思维是否需要进行改变?大模型为这个时代的软件架构师带来怎样的影响?郭东白:我自己也一直在探索这个问题我相信所有在这个行业内的人都在探索着自己的感受与传统的互联网相比,LLM 是一种全新的方法我们可以肯定的是未来的计算架构会发生变化我们过去一直是指令计算机,而现在是字符计算机,所以我认为未来的架构机会可能更多地集中在数据层面数据是 LLM 架构设计中的重要考量,它涉及如何高效处理数据、提升数据质量、提升数据时效和最大化地利用数据我认为这是一个非常值得所有架构师深入思考的问题CSDN:敏捷软件开发的倡导者肯特·贝克(Kent Beck)曾经在推特上写道,“我很不情愿地用 AI 试着写代码,发现它可以让我的 90% 技能被取代,但是,它可以让我剩余的 10% 技能放大一千倍”,图灵奖得主 Joseph 认为,“入门阶段的程序员避免完全依赖大模型”,你同意这种观点吗?郭东白:他们两个的看法在假设上有非常大的差异Beck 的思考更像是一个投降主义者他认为大模型是历史必然,他必须在这个新的生存环境下寻找自己的生存价值虽然大模型会挤压程序员的生存空间,但是至少那些能够从大模型中借力借到极致的人还有可能成为少数幸存者而 Joseph ,我觉得更像是一个抵抗军,他可能认为大模型只是诸多可能之一,人类有可能通过更全面的知识而创造大模型无法取代的价值 虽然这两种想法都有其可取之处,但从经济价值和大模型的发展速度来看,可能在大型模型领域寻找提升自己的机会会更为明智, 也就是说对大多数人而言,Beck 的思考更现实一些不久前,我发表了一次主题演讲,其中特意提到了一种机会主义者的策略对于架构师来说,大型模型的出现意味着更多的机会和发展空间因为大模型发展至今,它还是一个执行领域的优化效率提升的工具一些程序员可能会选择深入研究大型模型的盲区,大模型的爆火背后必然带来一些看不见的需求,他们会找到大型模型的不足之处,并在那里深入挖掘CSDN:从管理者的角度来看,你认为最优秀的程序员、架构师是怎样的?郭东白:我觉得最优秀的人,不仅限于程序员,甚至包括其他角色,都有一个共同点,那就是他们 Enjoy the process,享受着工作的过程,他们从中获得快乐这些人并不只是在做某件事,而是在整个过程中感受到了乐趣他们的动力并非来自外部薪酬或晋升的奖励,而是源自内心的满足感如果能发现这种状态,通常意味着这个人是优秀的从公司的角度来看,HR 可能会期待员工是自驱的,但实际上更重要的是,员工能够从工作中获得正面的反馈,而不是仅依赖外部的奖励体系CSDN:在软件工程师的职业生涯中,你经历了不同的阶段在大模型冲击整个软件行业过程中,你认为架构师需要培养怎样的心态和技能呢?郭东白:首先,我觉得最重要的是保持乐观和积极探索的心态每当社会发生变革的浪潮时,总会有人说这是末日,认为人类将被机器取代但实际上,人类并没有被机器取代回想一下,过去我们是农耕民族,但随着机器的发明,虽然农耕民族的角色消失了,但人类有了更多的生存机会马克·吐温在 Life on the Mississippi 中讲述了他在密西西比河上从学徒到船长的职业经历蒸汽轮船的船长曾经是人人羡慕的职业,在兴盛时期也像互联网软件架构师一样是一个高回报和高挑战的职业,但随着火车这种更高效的交通工具的出现,这个职业逐渐式微当人类进入了一个新的时代,旧的职业就不复存在了不过历史总是以另外一种方式重复自己马克·吐温的 Roughing It 一书中有段关于炒地契的故事,简直和互联网时代炒网名的过程如出一辙 一名架构师也需要意识到,我们所处的时代不断发展,旧的机会不断地被淘汰,新的机会不断地出现但是不论如何,架构师都需要从为企业创造价值出发做出最优决策只要我们在新的技术环境下在我们的思考上超越他人,那我们就会有足够的生存空间这就是《架构思维:从程序员到 CTO》这本书的思考起点:价值思维我期望读者能够从这本书中学习到架构师的第一性原理,以及如何通过这个第一性原理来推导出所有的架构决策受访者介绍:郭东白,Coupang 副总裁,布朗大学博士,兼任浙江大学计算机学院兼职教授和博导他先后在甲骨文、微软、亚马逊、阿里巴巴、车好多等公司任职他是云计算和国际化电商平台领域的资深专家,分别为亚马逊、阿里巴巴和Lazada搭建每秒上万次成交、年成交额超百亿美金的大型电商平台,使平台覆盖数字、跨境和本地3种电商商业模式,支持内容化、社交化、游戏化、私域化等一系列创新技术,为企业带来了巨大的商业成功和生存优势最新著作《架构思维:从程序员到 CTO》
0 评论