從人類文明的兩條法則看云計算
日期: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的這兩條法則是不是什么第一性原理并不關鍵,關鍵的是他能夠讓我們看清一個復雜系統發展的關鍵因素,能夠看清各種紛雜事件所處的位置。

就像指南針,雖然不能讓你直接達到目的地,但至少能夠防止你迷失方向。

不識廬山真面目,只緣身在此山中,畢竟我們處在云計算的高速發展之中,最不缺乏的就是細節。希望這兩條法則能讓你跳出山來看山,跳出云來看云。