郭东白的架构课_11_10法则四架构设计中怎么判断和利用技术趋势
你好,我是郭东白。
上节课我们讲了,为什么要顺应技术的生命周期,但是往者不可见来者犹可追。
我们能不能抓住一个技术萌芽和发展的机会呢?我们今天就来探讨一下这个话题,你们想过到底谁决定技术的未来呢?其实我们大多数人都不决定技术的未来,哪怕是雷军,他也在思考该怎么顺势而为。
那么,技术大趋势的驱动力究竟来自哪里呢?我认为,技术真正的推动力来自于市场需求,规模决定技术走向,这是由经济规律决定的,而不是以个人意志为转移的。
哪怕是一个头部大厂,也不能完全决定技术的未来,而是市场规模和成本结构决定技术发展的走势。
那么细分到我们关心的软件架构,对它来自市场,有三个核心推动力。
从底向上分别是硬件技术、发展,软件行业的竞争格局和垂直行业的商业模式进化越往上离我们越近,迭代也越快。
我们先从软件发展的最底层推动力、硬件技术的发展讲起看,技术趋势甚至是任何发展趋势,都要先找前质量。
对软件发展来说,硬件的革新往往是前质量。
首先,硬件技术的进化驱动力是需求规模。
硬件技术从巨型机、大型机、小型机到PC到mobile的进化过程,就是主场需求规模的增长过程。
随着市场需求的规模越来变革,就会有越来越多的技术创新参与到规模效应中。
这种有规模效应的技术创新,几乎是与赢家通吃。
而市场中最后剩下的玩家很少有超过两个的,一般呢是领先的玩家开发主流技术来服务主流用户和主流场景。
而那个略小的玩家就去服务主流技术,覆盖的不太好的边缘场景的小众用户。
其次,硬件技术的进化来自驱动用户侧的体验变革,再传递到软件的变革。
从商用小型机到个人电脑,从mac到PC,从iphone到安卓,mobile,都是某个硬件厂商先做大,然后硬件厂商对市场份额争夺,最终呢决定了软件的走势啊,这也是为什么我说硬件变革是软件行业的潜质量。
他在提醒我们,虽然我们是软件架构师,但关注硬件侧的变革很重要啊,也顺便提一句,现在很火的元宇宙呢也符合这个规律。
Nvidia先做大大量量产的GPU,寻找增量市场,试图吹打元宇宙这个泡泡。
接着呢epic、 facebook和微软也会入场。
不过国内的软件研发人员对硬件的关注普遍不够。
他们呢受国内大玩家的影响,比如说阿里、腾讯头条和美团,基本上呢都把注意力放在了端上。
但硬件呢更根本的改变是来自设备的,而不是端移动互联网时代。
之所以PC外玩家家都去强端,mob端的入口,并不是mob端一下子变得更更有技术前景了,而是因为mobile端之后的智能设备开始大规模量产了。
大量的设备带来了大量的新用户,也就是mobile端侧的需求被迅速放大了。
有了大量的需求,才会有大量的软件供给争夺份额。
我之前在美国的甲骨文、微软和亚马逊都工作过,对设备的争夺就有很深的设备。
这些公司看到了苹果在智能设备端的长期霸权和成功。
所以一而再再而三的尝试做自己的设备。
甲骨文的x data、微软的x box,还有亚马逊的kindle,都是在各自领域内比较成功的设备,尤其是kindle,给亚马逊带来了在电子书领域决定性的优势。
可以看到国内很多软件玩家对硬件的关注不够,导致战略不够清晰,投入也不够坚决,甚至可以说完全没有我觉得这是一个重大的施策。
啊,在国内做的最好的华为,本来呢可以我希望做出一个现象级的产品品,但是因为封锁呢现在也不太好说了。
那你该怎么关注硬件呢?硬硬件生产测测规模效应,出货量的关系系大。
其其实呢这个关系非常普遍,几乎适用于各行各业。
我呢特别建议你去一家大型的工厂,实际感受一下,甚甚至需需要跟去看跟计算机相关的生产。
只要是现代化的模化流,流水效应的生产环环境。
就这样呢,你很容易理解出货量对规模效应有多么关键了。
因为相比厂房,流水线上移动的单个产品,甚至是工人的成本都可以忽略不计。
一旦流水线建好了,就必须开足马力,使劲生产,这样才能靠量产带来的规模化利用回收。
这样才能靠量产带来的规模化回收利润。
这也是为什么摩尔定律对英特尔公司的成功这么关键的原因。
因为他们靠摩尔定律,对未来的收入生产规模有了个相对较准确的预估。
接下来的规律呢就跟我们的软件架构是息息相关了。
计算机设备的出货量决定了软件架构。
因为按单个设备的定价,基本上就是呢由出货量定的。
而计算设备的价格呢决定了软件的计算成本,所以软件架构必须建立在合理的计算成本之上。
过去二十年分布式计算的架构就是这个规律的一个实力。
本来分布式软件开发的成本要远远高于单机软件的开发成本。
但是当低成本的算力和高网络端宽的同时,出现分布式计算的硬件和分布式软件开发加在一起的总成本,就远远低于单机计算和单机软件的开发的总成本。
而算力呢因为摩尔定理和尔nenelson定理在不断的以指数级别扩大规模优势,这呢就是全社会对分布式操作系统和计算有了大量的投入。
而这些投入的结果就是分布式架构的最终胜出。
可以说,硬件行业的竞争几乎永远是出货量为王,尤其是半导体行业,产品价格远远高于原材料价格,不过靠出货量,最终在竞争中输出。
这个规律在半导体行业之外呢,也适用国内的电子电器和电子设备,制造业就是个不错的例子。
那么,如果你知道摩尔定律和出货率为王的规律,你会怎么决定软件架构呢?在我看来,我们在软件设计上,就要尽量放创造和放大规模效应,从而保障软件开发所带来的价值。
并且在规模增长的过程中不断提升这个价值。
我们先看一下在架构决策上该怎么利用好硬件的规模效应。
这一点我们可以对比一下国内的云计算厂家和亚马逊的AWS策略。
亚马逊AWS在硬件上有一个原则,就是用最低成本采购最便宜的硬件,甚至在运行环节。
比如说机房运维机房的增却参数也设置在国家标准允许的最高温度,以追求最极端的低成本。
结果呢AWS在软件和机制层面开发了大量的高可用计算能力,让建设在不太稳定的硬件环境上的服务,能够稳定运行,不受硬件故障的影响。
最后呢系统规模越大,采购量越大,单位硬件成本越低,最高可用带来的增量价值对比硬件成本也越大。
而开发成本分摊算到每个计算单元上也越小,所以他们的生意越大,竞争壁垒也越高。
但是国内云计算高火起来的时候,国内大多呢云计算厂商在采购和软件投入的决策上其实是反过来的。
很多云厂商采购比较高端的硬件来提升系统稳定性。
然后呢通过营销手段拉新,最后呢再通过提价赚取利润,很少有企业会投入力量做底层的高可用技术。
结果呢就是国内很多玩家入场早,但至今也做不大你软硬件的长期战略上,我特别佩服华为。
华为呢在战略上非常强调规模优势,愿意花大价钱在有长期规模优势的地方做投入。
你有时间呢可以研究一下他们的战略。
另外我认为在纯软件层面,其实也有类似硬件的出货量为王的规模效应。
举个例子,前不久我和一位在大厂做稳定性的同学了解了service mesh.他呢表示大厂的稳定性体系啊相比service mesh呢还是有很大的差距。
另外,厂做了很多年的稳定性,厂场景也很特殊,其他的小企业根本达不到大厂的量级。
Service mesh不论从成本和可靠性都没办法和大厂现有的体系匹敌,未来也不可能。
不过呢我却觉得这是一个典型的软件规模优势必然取胜的场景。
成千上万的企业必然提供为service mesh海量的测试案例,对比单个顶级用户定制一次性的解决方案。
一个为整个行业提供基础设施的玩家必然是硬家。
我这个预测呢可以让时间来见证。
总结来说,软硬件呢都具备规模效应,最终出货量最大的玩家会以更低的价格和更好的质量赢得市场。
而硬件发展呢往往会左右软件架构的走向,最终呢软件架构必须利用好规模效应。
接下来呢我们再看看软件架构发展的第二个核心推动力,那就是软件行业内的竞争。
我们大多数人呢都不为一个决定技术趋势的大厂工作。
哪怕即使我们再这样的大厂工作,往往也不处在决策的位置上。
从个人角度来看,这些决定技术趋势的大厂就像天神一样。
民间有句话说,天神打架,凡人遭殃。
言外之意就是要是天神打架了,凡人躲得越远越好。
不过在技术上面,天神打架决定了未来的技术趋势。
如果有机会看到这个场面,你一定要睁大眼睛看清楚,这样才能在凡人中脱颖而出。
天生打架的玩法呢,其实也逃不出竞争的普遍规律。
这就是我们老祖宗讲的合纵连横。
从竞争而来的技术呢往往有个特征,那就是后来者呢为了挑战先入者的霸主地位,往往在模式和技术上更开放,合作呢也更为广泛,也就是更inclusive.比如说个人电脑apple和IBMPC之间的竞争,我们领域IOS和安卓的竞争等等。
我们呢用云计算的AWS和云原生基金会CNCF的竞争呢来举个例子吧,这个竞争呢还在进行中,分析起来更有意思一些。
在云计算领域,亚马逊呢有非常大的先发优势。
它在零六年正式发布AWS比竞争对手,微软发布ash找了两年。
事实上微软呢真正投入到云计算的领域,时间更晚要到两零一一零年之后。
而谷歌呢真正投入投入到云计算呢,要到两零一二年。
所以这么长的时间给到的AWS足够长的市场渗透期,这就导致很很长一段时间里,谷歌和微软都没办法缩小他们跟亚马逊之间的差距。
直到一三年,容器技术docker的出现竞争出现了转机。
Docker的革命性呢在于他以一个极轻量的方法,完全解决了发布和运行环境的兼容性问题。
任何研发人员都能以极低的成本跟另外一个研发,在云环境下合作。
和微软意识到,这是他们撕开googa WS封闭式云计算环境的一个机会。
所以两零一四年,谷歌不惜把自己增强的核武器coor netis拿出来,让大规模云上和跨云的调度成为可能。
在此同时呢也开始在cloud上的投入。
在此之后呢谷歌和微软在云上的竞争有了明显的转机。
不过呢革命者docker呢只是昙花一现,他的实力呢根本没办法跟AWS抗衡。
毕竟桌上了玩家的赌注呢是以百亿美金计算的。
所以呢大家最后还是团结在了CNCF中为一个非常包容的开发标准,以coopernetice为代表的CNNCF力量到底有多大呢?零零四年年,garner说,AWS的算力是排在他之后的十四家竞争者算力总和的五倍。
到了两零一五年,这个倍数变成了十。
但是呢当CNCF大联盟在这一年形成之后,微软和谷歌就开始反攻铲食。
亚马逊的市场份额IDG二零二零年的调查市场说啊,有百分之五十五的调查对象使用超过一个以上的云供应商。
而亚马逊的公有云的市场份额从两零一八年的百分之六十八降低到了两零二一年初的百分之五十六CNCF.尤其是coop nalise加上docker,事实上呢给了云计算以开放性和互联互通性。
也就是说,不是谷歌、微软或者亚马逊这样样的单个公在在争争是一大批批放生态参与与联合起来来,是谷大s做竞争争结果会是什么样呢?一般来说,开放生态在长时间竞争的过程中会胜过独闭下作合。
公司司是是谷谷大群架,人人前后近去和一个独形下作战的过程。
过去这种竞争呢往往是开放的一方呢最终胜出,而且胜出者往往不一定是最开始挑战独行侠。
那位。
我们也可以看看未来AWS对CNCF会不会是这样。
那么这对我们架构师意味着什么呢?它意味着我们要把架构依赖在你认为的那个赢家身上。
那我们接下来看第三个推动力,刚才我们讲了技术的真正推动力来自于市场。
而市场的另外一个重要变革因素就是商业模式。
所以商业模式也决定了技术的最终走向是个前质量。
商业模式的不断更迭,往往和行业密切有关。
我们就用生鲜行业来举个例子,互联网最早入场生鲜的时候是纯线上加中央仓储的模式。
不过这个模式呢很快被验证跑不通,因为生鲜的季节性非常强。
在水果蔬菜道季之前呢,虽然利润少,但产量上供给稀缺,所以采购呢是个大难题,很难做到规模化。
到季之后呢,线下与线上的竞争变得非常激烈,利润薄,供应链的成本占比非常高。
那么中央仓储的履约模式就没有什么优势了。
等到了季节尾声,利润虽然再次爬高,但是供给质量呢就很难保障。
这时候对用户体验伤害很大,而且同样因为稀缺性带来的采购挑战导致很难做出到规模之后呢,生鲜进化出了线上线下模式,跟着盒马非常历似盒马呢。
在高端社区的模式证明是可行的,线下拉客线上复购。
但缺点呢铺开的过程找不到足够多的高端社区,而且建店的时间周期长,专业人才招聘困难,所以扩张呢也很慢。
后来呢就有了前置仓的模式,比如说叮咚买菜,叮咚买菜的成本结构远远优于盒马,一是没有门店,不需要盒马一样找非常专业的管理和运营人才。
二呢是前置仓,面积小,所以铺开容易扩张,速度快,成本也低。
但是生鲜的季节性的挑战依然在,所以叮咚买菜在扩展品类,到冷藏冷冻的视频上下了很多功夫。
去年的社区团购模式呢火遍全国,相比前置仓这个模式的履约成本更低,因为他把履约成本和前置仓成本也降低,了让团长来负责团点用户自提拉新的成本呢也因为团长的存在而变得更低,所以一下子呢就有大量的玩家进场来争夺市场份额。
无序的竞争呢带来了很多新问题。
比如说团长变成了稀缺资源,成本呢也迅速蹿升。
不过相比前几种模式,社区团购这种商业模式,社军商本份额扩张更简单,对管理人才需求更低,规模效应更大。
也就是说社区模式的确更先进了。
所以这个模式的扩散速度呢就非常快,对相关的技术人员的需求呢也非常大。
那么你作为一个技术人,尤其是这个行业内的技术人,关注商业模式的演变就至关重要了。
因为在这几种商业模式的背后,所需要的软硬件和运营技术之间的差异实在是太大了。
这也是为什么一个行业内的老玩家很难迅速去转身追逐另一个商业模式的原因。
所以呢当新模式出现之后,你要提前看到这些商业模式各自的优劣势,尤其要从成本、规模、效应、增速、技术增值空间等视角来看。
当你发现一个有明显优势的商业模式的时候,那呢你就要为这个垂直行业的技术创新做好准备了。
顺便说,由于这些商业模式本身具有内在价值,所以他们的演变在其他行业也会被复制。
最好的例子呢就是平台型商业模式和前置仓模式,几乎扩散到了其他各行各业。
这方面的数据很多,我就不做介绍了。
你可能说了,研究这些东西和我有什么关系呢?我就是一个普通的架构,是知道这些趋势又能怎么样呢?关系大了。
我们可以运用这些规律去选择我们的行业,选择我们的架构,把自己和团队的未来堵在自己看准的方向上。
这也决定了我们在某个商业模式上要投入多少时间去学习和研究。
就拿我的职业发展来说,二零零九年我在美国甲骨文工作的时候,公司买下了song michael systems.啊,除了accidate的服务器,当时市场上销售非常好,一台furanack服务器价格一百万美金,而且供不应求。
以至于在很长一段时间里,连我们自己的数据库研发团队都找不到测试器。
那个时候我虽然是个基层的小架构师,但是对甲骨文这个动作并不看好。
因为在硬件出货量上,小型机没有任何的规模优势可言。
Sgi买了creay, SGI不久就挂了,上买了SGI上也不久就挂了。
所以甲骨文买了上,在我看来很不明智,公司在短期内确实有了非常好的设备做创新。
但是对比英特尔的服务器能备上的超级计算机能力只有几十倍不到,但成本却是三百倍。
英特尔架构当时在用户市场的驱动下依然遵循着摩尔定律,但是上只有企业市场,所以未来的出货规模发展对上肯定是不利的。
我呢算准了甲骨文最终会落败。
尽管我的职业发展和股票都有保障,但我决定必须离开上更具备规模化的技术,单元上做技术才有前景。
后来的事实证明了,我的选择路径是对的。
甲骨文一度是全球最大的软件企业,但在做出这个决策以及其他不合理决策的时候,就慢慢的风光不再了。
所以作为一个普通架构师,研究技术趋势有一个明显而易见的好处,就是帮你选择一个正确的行业。
正所谓难怕入错行嘛,我做这个决策的时候,人才供给市场的竞争呢还没这么激烈。
这就更加说明你要更早的从硬件技术的发展,软件技术的竞争格局和商业模式进化的角度,去看看未来的技术趋势和架构机会。
假设你真的看清楚了一个趋势和赛道,那你该怎么动作呢?我的建议是你一定要把自己百分之一百的身心投入到你认定的方向上。
过去十年,在互联网领域是个赢家,通吃的年代,未来很长时间应该还是这样,除非大多数国家在政策上做大幅调整,否则在这种大环境下下一个小注就等于没下。
无论公司还是个人,在一个没前途的赛道上,投入不投入都是必死。
但是在一个有前途的赛道上,投入了也要下,大多注才能赢,要all in.除此之外,这个法则对架构师的日常工作也极具指导价值。
这你评审别人的架构选型时,一定要关注他是否采用了一个已经有规模优势或者即将具有规模优势的技术。
如果满足,那么这个架构建议呢基本就是合理的。
在此基础之上,你可以再通过其他的维度看架构选型。
反之,如果选择了即将失去规模优势或者不具备规模优势的技术,你就有必要跟他探讨这么选型是否合理。
有些同学呢喜欢展示一些小众技术动机,可能是好的选型,理由也比较充分,比如在性能或者可用性维度上的优势。
但是呢从更长期的规模优势看,选型可能就不合理。
你就必须要阻止。
假设你还在职业生涯初期看不清技术趋势怎么办?你是不是该看其他老师建议的TCPIP原理c语言编程入门呢,还是找个火热的次薄命?我先给你分享一个规律,任何一个新技术,你进入的时间就决定你的未来。
可以这么说,萌芽期、赌命增长期、圈钱、自喷期、交学费,灵感期拿价值产出期养老衰老期,作死,退出期、剖腹。
你要是年纪轻轻,就不要去学任何产出期衰老期,甚至是退出期的技术。
我强烈建议你去看门牙器的技术,光脚的不怕穿鞋的,万一赌中了呢?什么是门牙器的技术呢?其实最好的源头就是从顶尖学术会议中找一下最近三年论文增长最快的领域。
如果你没有特别好的偏好,哪怕去追一个大词也行啊。
比如说元宇宙,你去找这个大字的数始作晕者,对原宇宙而言,就是NV点那里,你看看他们的开发社区玩什么。
对个人而言,技术的初期充满风险,但是值得进入。
在这个赌命的过程中,你不但可以学习设计思路,能看清一个技术成长与发展过程,你自己也能获得宪发优势。
如果你的精力允许,那么多看一些门牙器的技术,对你的成长而言会非常有价值。
这个时候勇气很重要,投入到一个门牙器的技术的确又意味着更大的风险。
但是当你听到了某个大词已经满世界流行,到处也有人写书开课的时候,其实它已经过了。
这本期好了,今天的内容呢就是这么些。
我来总结一下,我们大多数时间呢都在思考和解决小尺度的问题。
但对我们个人发展和工作产出来说,更重要的是去看大尺度的问题。
比如说技术的生命周期,在计算机时代,时间是一个非常恐怖的概念。
一个互联网技术的先进性和稀缺性,很少有超过三年的微负屋高并发就是很好的例子。
七八年前还是一个稀缺和高增值的能力。
现在呢已经完全被开源厂商和云计算厂商变成了互联网的基础能力。
所以技术的生命周期对一个架构师而言,有一层很重要的含义,那就是架构师需要不断监控自身能力的有效性和增量价值,不断提升自身能力的稀缺性和价值创造的空间。
在这个不断监控当下,技术发展的过程,就会让你在更大尺度上思考变得更准确。
我们这节课呢讲了这么多关于技术趋势和规律的内容,就是期望你能尊重技术规律,爱惜时间。
在计算机科学的世界里,你不能以考古学家的形态来学习和做事。
在具体的架构设计的过程中,尤其是企业现有人员、技术框架和竞争环境的约束下,架构师技术选择的空间会比较局限。
但是,哪怕在这个局限的选择空间里,你也要尽量看准趋势,选择已经有规模优势或者已将有规模优势的技术,而不是选择接近衰老期的技术。
互联网时代,薄命比抱大腿远远更重要。
今天的思考题比较费脑,我建议你呢你只是选一个第一题,你认为NV dia GPU的架构会完善intel架构吗?为什么?如果可以完善,那么它对服务端的架构会有冲击吗?在这个趋势之下,你认为未来的云计算会发生什么变化?第二题,前些年呢国内不少大厂炒作混合部署原文,这么做的价值在哪里?从长期来看,这是一个合理战略吗?当然你也可以把混合部署换成其他比较流行的技术名词,比如说event, driven architecture、低代码、响应式编程等等,然后来谈一谈。
第三题,在最近的两三年里,你认为最大的硬件行业突破软件竞争格局变化或者商业模式的变革是什么?这个变化对未来的技术产生深远影响吗?为什么?欢迎把你的思考和想法分享在留言区,我会和你交流。
如果这节课对你有帮助,也欢迎你把课程通过右上角的分享并赚钱的功能带给自己的朋友和同事,大家一起进步。
我们下节课再见。