从人类文明的两条法则看云计算
日期:2021-09-04

01 人类文明的发展元素

原始社会史学家摩尔根在其里程碑式的著作《古代社会》中说到:“野蛮人的进化是一步一步的,当他发现金属矿的时候,当他学会熔解这些矿石并浇铸在模具中的时候,当他把铜矿与锡共同融合制造青铜的时候,当他发明熔炉并学会冶铁的时候……直到当他学会制造带有刃和尖的铁器的时候,文明最终才算到来”。

摩尔根把冶铁技术的发明叫做“关于事件的事件,制造工具的工具”,在考察了各种古代社会形态之后,他指出人类社会发展核心动力是使用与制造工具的过程,人们不仅使用工具,人们还要制造工具,这两者相辅相成,共同推动着人类进步,而制造工具更是重中之重。

受摩尔根的启发,早在计算机刚刚发明的时候,后来的第一届图灵奖得主Alan Perlis曾经写下这样两条法则:

被训练的能够使用工具的人,被开发出来用以使用的工具,这两者的不断增加表明工具集合逐渐会成长为产品而不是简单的加和。创造的部分——用以开发工具的工具数量与使用情况——也是产品的一部分,并且这部分更能从长期保证工具使用的增长。

计算机与互联网的出现不过短短几十年,站在未来看现在,我们极以傲的新时代可能仅仅是信息文明的一点萌芽,然而复杂系统背后都有简单道理,这两条法则或许也是信息文明发展的第一性原理。

这两条法则有多种应用层次,不仅可以解释全局,也可以解释局部。

比如,我们用它来看看国内互联网。

注:工具是一个比较抽象的词,既可以被人用来开发其他工具也可以直接使用,为了方便理解,我们先以互联网为例做一个粗浅的划分,直接被人使用的叫做应用,用以开发这些应用的工具叫做信息技术,简称技术。

中国消费互联网与产业互联网的发展速度不匹配,法则一,中国有大量的使用信息工具(应用)网民,在这种人口红利的驱动下各个公司进行了大量场景和业务创新,提供了非常多的应用工具,这两者构成了国内消费互联网的繁荣景象。但根据法则二,国内用以开发这些应用的工具往往是从国外引入的(操作系统、编程语言、数据库,开发框架、大数据引擎、人工智能框架与算法包),这一部分长期落后,而且具有使用能力的开发者不多,导致使用情况很浅,所以长期看发展后劲不足,这便是产业互联网的落后局面。

所以互联网不是走完上半场该走下半场了,而是说国内产业互联网的乏力影响了消费互联网的发展——很显然消费者的需求还远远没被满足。

举个例子,我们看一下随着中国互联网一起发展起来的搜索引擎。

你别看搜索引擎动不动返回几百万条结果,其实根本是他不知道你需要什么东西,也不知道自己返回了什么东西,你想要的东西混在大量的垃圾页面里面,所以每次检索都要点开十几个页面。

而造成这个情况的原因恰恰是开发搜索应用的技术还相当初级——且未得到广泛应用。

搜索引擎从效果上最依赖的是自然语言处理技术,在深度学习和知识图谱的强力夹持下,某些特定场景已经取得了较为理想的结果,比如搜索“姚明的老婆”会返回“叶莉”,但在更为广阔的领域,在那些还来不及精心设计一个知识图谱的领域其效果便略显遗憾了,比如你输入“钛媒体的作者”,百度只能给你一个带有“钛媒体作者”标示的页面链接,并没有奇迹般的直接把钛媒体作者及其介绍展示给你,于是你不得不怀疑人工智能里到底有多少人工。而且这还是顶级公司,他们研究多年的技术并没有广泛传播出来。

更为一般的公司用以开发搜索工具的工具则更为初级,原理就是词频。哪个词出现的多哪个词就重要,就代表了文章的意思,然后有些词实在太常见了,以至于在所有文章里出现次数都多,这些词就需要降一下权重(TF-IDF)。为了体面,这里就不再提中文连词都分不准的问题了。而且使用词频的还不算太差,更有甚者,是直接用的Mysql自带的字符串匹配……

02 云计算的位置与意义

云计算市场规模一年比一年高,参与者一年比一年多,抛开金钱的味道,我们在上面两条法则下看一下云计算所处的位置。

云计算这个词很抽象,不妨看看云计算到底提供了什么产品,这些产品要怎么用。


阿里云产品截图

服务器、数据库、负载均衡、图像识别、图像搜索等等,显然这些都是用以生产工具,是工具的工具。

云计算产品如何使用

以实时计算产品为例来看一下原产品的用法。一般云产品都会有一个web控制台,直接通过浏览器登陆后进行操作,管理资源和进行开发。浏览器相当于一个入口,作业在云服务商的数据中心运行,数据也存储于这些分散在世界各地的数据中心里。

在云计算早期的时候很多人说这是旧瓶装新酒,和传统的VPC或服务器托管没多少区别,但我们不要拘泥于两者相似之处固步自封。服务器托管并不是云计算的特点,生产完备性才是云计算想象力的基础:打开aws、azure和阿里云的产品页面看看,基本上开发用到的各种工具都有提供,而且大部分是这些大厂直接提供的。

以第一节提到的搜索为例,各大云厂商均提供了多种自然语言处理工具,比如分词、实体识别等,一般公司基于这些工具开发自己的搜索,至少可以对标当今科技的先进水平,这在云计算出现之前是很难想象的。

所以从互联网整体来看,云计算就是信息时代关于工具的工具,关于事件的事件,通过云的方式促进技术的传播与使用,进而促进应用的发展,这才是云计算的价值与位置,应用侧在互联网时代创造的一切辉煌云计算都将重演,甚至更烈。

说到这里,我们很容易解释一个现象:大的云计算厂商目前大部分是成功的应用开发商,比如AWS、谷歌云和阿里云。

从整个互联网来看,云厂商处在供给者的角色,提供创造工具的工具,那么很显然,只有创造过工具的人才知道工具如何创造,才能更好的提供创造工具的工具——这听起来有点绕,我们不妨举个例子。

很多互联网公司业务都有季节周期,甚至每天都有波峰波谷,如果他们寻找解决方案提供商,那谁最擅长?

显然像Amazon和阿里巴巴这样的公司最有经验,双十一、双十二、黑五等各种活动让他们饱经历练,积累起大量关于弹性的技术,很多客户的挑战在他们这里不过是送分题,所以提供的解决方案也更为有效。

再以前面提到的搜索技术为例,假如谷歌把自己的搜索技术直接云化提供,大家接入后很快就便把搜索水平提升到了世界最先进水平。

除此之外,对云厂商来说,把原有技术直接云化还省去了大量研发成本。

所以公司业务覆盖越广,碰到的问题越多,曾经解决的问题越多,在云计算转型的过程中就越贴近客户需求,成本越低,总体就越有优势。

03 云厂商、第三方市场与开发者

看完整体,我们再用这两条法则看一下局部。

被训练的能够使用工具的人,被开发出来用以使用的工具,这两者的不断增加表明工具集合逐渐会成长为产品而不是简单的加和。

创造的部分——用以开发工具的工具数量与使用情况——也是产品的一部分,并且这部分更能从长期保证工具使用的增长。

我们可以把云计算厂商提供的产品叫做工具,开发者显然就是使用这些工具的人,那么从第一条法则来看,云厂商需要:

说到工具的供给,除了在第二节提到的自研和把自己原来的系统直接云化之外,各大云厂商还有自己的第三方市场,就像苹果的APP store一样,允许其它公司和个人提供服务。

然后说一下开发者。

AWS re:Invent 2018的主题——It is all about builders。我觉得这句话说的特别好,恰好代表了云厂商对开发者该有的态度。

开发者首先是自己培养,有些产品完全是云厂商的自研产品,必须要培养开发者,这点各大云厂商都有自己的开发者社区,也都在提供开发者认证培训。

其次是开源开发者,除了自研产品与开源产品保持兼容之外(比如阿里云的MaxCompute大数据服务保持了与开源软件HIVE的兼容),大家最近都在直接争夺开源社区开发者——微软收购Github、阿里引入Elastic&收购Flink、AWS和Azure引入Databricks等等,甚至阿里毕玄最近有一篇标题为《开发者生态,未来云的胜负手》的文章。

我前面在钛媒体的文章《OAS启示录:2B业务高昂的售前售后成本是否能通过开放源码降低?》介绍过开源软件如何降低销售与交付成本。开源软件已经存在了大量经过高度训练的开发者,显然这种红利对云厂商来说不得不考虑,引入开源产品不仅能补充云产品,还能获取大量开源开发者,一举多得。

大家都知道云计算不是新概念,但可能不知道云计算的目标最初就包含开发者。

云计算概念的雏形是1961年由John McCarthy(人工智能之父、1971年图灵奖获得者)在MIT的百周年纪念上第一次提出的:

如果我设想的那种计算机能够成真,那么计算或许某天会像电话一样被组织成公共服务…… 公共计算服务(Utility Computing)将是一种全新的重要工业的基础。

注:这里说的计算机便是分时计算机,即同时支持多人使用的计算机。

在公共计算服务思想的推动下,1963年,美国军方IPTO与MIT、GE、贝尔实验室一起发起了MAC(Multiple Access Computing)项目,这可以认为是云计算的系统雏形。

MAC项目最初目标由MIT提供,共包括三个部分:1)分时系统;2)一个使用分时系统的群体;3)教育。

注:对于这段历史感兴趣的读者可以参考《Project MAC》

所以你看,即使在云计算的石器时代,大家已经意识到了用户的重要性。

04 总结

其实Alan Perlis的这两条法则是不是什么第一性原理并不关键,关键的是他能够让我们看清一个复杂系统发展的关键因素,能够看清各种纷杂事件所处的位置。

就像指南针,虽然不能让你直接达到目的地,但至少能够防止你迷失方向。

不识庐山真面目,只缘身在此山中,毕竟我们处在云计算的高速发展之中,最不缺乏的就是细节。希望这两条法则能让你跳出山来看山,跳出云来看云。