最近經(jīng)濟寒冬的說(shuō)法越來(lái)越多,身邊的互聯(lián)網(wǎng)企業(yè)裁員的也有不少,越是寒冬,我們越需要了解趨勢,找準前進(jìn)的方向。過(guò)去幾年,互聯(lián)網(wǎng)各種“風(fēng)口”此起彼伏,到底哪些才是真正的趨勢?這篇文章里我將試圖分析目前互聯(lián)網(wǎng)技術(shù)的發(fā)展,找出它們背后的原因和邏輯。
如果你長(cháng)期跟進(jìn)本領(lǐng)域的前沿技術(shù),你會(huì )發(fā)現近十年來(lái)互聯(lián)網(wǎng)技術(shù)發(fā)生了非常大的變化,這種變化幾乎在每一個(gè)領(lǐng)域里發(fā)生:
在軟件架構領(lǐng)域,經(jīng)歷了從單體應用到 SOA 再到微服務(wù);
在云計算領(lǐng)域,經(jīng)歷了從虛擬機到容器;
在數據庫領(lǐng)域,從關(guān)系數據庫到 NoSQL 再到 NewSQL;
在大數據領(lǐng)域,從批處理到流處理;
在運維領(lǐng)域,從手工運維到 DevOps、AIOps;
在前端領(lǐng)域,從 jQuery 到 React 等三大框架......
除此之外,還有一些新興的領(lǐng)域如 AI、區塊鏈,從不受重視到成為顯學(xué),開(kāi)啟了一波又一波的風(fēng)口。
單個(gè)去看這些領(lǐng)域的發(fā)展,會(huì )覺(jué)得紛繁雜亂沒(méi)有頭緒,但如果從整體上去看,會(huì )發(fā)現它們相互之間有聯(lián)系,它們的發(fā)展源于一種共同的推動(dòng)力,遵循著(zhù)相似的邏輯。
如果要對這個(gè)推動(dòng)力、對今天這個(gè)技術(shù)浪潮起一個(gè)名字,在當前階段我覺(jué)得可以用“云原生”,但這個(gè)短語(yǔ)被過(guò)度使用在各種營(yíng)銷(xiāo)語(yǔ)境中,它的定義會(huì )發(fā)生偏離,所以后文我不會(huì )用這個(gè)短語(yǔ),而是用真正的云計算這句話(huà)。
我們當前技術(shù)浪潮的真實(shí)含義,就是我們正在走向真正的云計算時(shí)代,其它領(lǐng)域的發(fā)展皆由此而來(lái),如果要更具體一點(diǎn),就是:
云計算的技術(shù)逐漸發(fā)展成為它本來(lái)該有的模樣;
以及與這樣的云所匹配的軟件架構;
以及與這樣的架構所匹配的開(kāi)發(fā)流程與方法論。
下面,我會(huì )分析幾個(gè)主要的技術(shù)領(lǐng)域,從它們的發(fā)展歷程來(lái)論述。
一、云計算:從虛擬化到容器到 Serverless
先從云計算說(shuō)起。
2005 年亞馬遜發(fā)布了 AWS,算是拉開(kāi)了云計算的序幕。但是,在很長(cháng)一段時(shí)間里云計算都沒(méi)有兌現自己的“自動(dòng)擴容、按使用付費”的宣傳語(yǔ)。
云計算最重要的技術(shù)是分布式計算和分布式存儲,分布式計算方面,最開(kāi)始的技術(shù)是虛擬化,也就是所謂的“Software defined xxx”,通過(guò)對計算/存儲和網(wǎng)絡(luò )資源的虛擬化,同時(shí)能夠給用戶(hù)任意分配資源。但這里面一開(kāi)始做的最好的只有文件存儲這一塊,AWS S3 及類(lèi)似的對象存儲產(chǎn)品給人們帶來(lái)了云時(shí)代的一些實(shí)際的體驗,但云服務(wù)器則還是走回了賣(mài)服務(wù)器的老路。
當然, 這里的云服務(wù)器和傳統服務(wù)器相比還是有優(yōu)勢的,至少運維不需要千里迢迢跑到機房去排查問(wèn)題。但和我們想要的云服務(wù)相比還差的很遠,它只是傳統技術(shù)在過(guò)渡到云時(shí)代的替代品。虛擬化技術(shù)新建服務(wù)器耗時(shí)長(cháng),在擴容方面限制很大,容器技術(shù)誕生后,才終于解決了這一問(wèn)題。但現在一些 MicroVM 開(kāi)始出現,比如 AWS 剛剛發(fā)布的 FireCracker,試圖融合虛擬機和容器的優(yōu)點(diǎn),這也是當前云計算技術(shù)的一個(gè)重要關(guān)注點(diǎn)。
分布式存儲方面,分為文件和數據庫,文件通過(guò)對象存儲的方式很早就解決了,數據庫則面臨漫長(cháng)的發(fā)展過(guò)程,傳統的數據庫需要向分布式架構轉變,同時(shí)你會(huì )發(fā)現云計算廠(chǎng)商成為了數據庫的研發(fā)主力,這些新數據庫天生就是分布式,或者天生就支持云計算特性的。
在云計算的發(fā)展過(guò)程中,有一個(gè)分支是 PaaS,最早是 2007 年推出的 Heroku,從形態(tài)上來(lái)說(shuō),它是一個(gè) App Engine,提供應用的運行環(huán)境。PaaS 的理念被認為更貼近真正的云計算,如果你使用虛擬化的云服務(wù)器,你仍然要自己負責應用分發(fā)、部署和運維,要與各種底層接口、資源打交道,在 PaaS 上,這些都不用管了,你只需要把應用上傳到云端就行。
但是,之前的 PaaS 體驗較差,容易造成平臺綁定,難以支持大型應用,所以并沒(méi)有成為主流。這些問(wèn)題直到 Kubernetes 出現后才得以解決。
在 2015 年之前,OpenStack 是云計算的主流技術(shù),很多公司包括 IBM/ 紅帽都在它身上投入重注。然而,隨著(zhù)曾經(jīng)過(guò)分天真樂(lè )觀(guān)的一些公司如思科,它們試圖基于 OpenStack 進(jìn)入公有云市場(chǎng),但在現實(shí)面前迅速敗退,以及主要參與者 Nebula 的關(guān)閉,市場(chǎng)的信心遭遇重挫。再加上 Docker 和 Kubernetes 的快速崛起,OpenStack 的聲勢已經(jīng)大不如前了。
然而在這么多廠(chǎng)商的支持下 OpenStack 是否就無(wú)敵了呢?看似緊密的社區與廠(chǎng)商之間的關(guān)系,在容器這個(gè)新的技術(shù)熱點(diǎn)面前被輕松擊破。廠(chǎng)商不再是 Pure Play OpenStack,社區貢獻排名也不再提及?!苼喒?《OpenStack 七年盤(pán)點(diǎn),熱潮褪去后的明天在哪?》
但是,Kubernetes 還是太底層了,真正的云計算并不應該是向用戶(hù)提供的 Kubernetes 集群。
2014 年 AWS 推出 Lambda 服務(wù),Serverless 開(kāi)始成為熱詞,從理論上說(shuō),Serverless 可以做到 NoOps、自動(dòng)擴容和按使用付費,也被視為云計算的未來(lái)。但是,Serverless 本身有一些問(wèn)題,比如難以解決的冷啟動(dòng)性能問(wèn)題,因此,圍繞 Serverless 的研發(fā),以及將 Serverless 和容器技術(shù)融合也是當前的前沿課題。
Serverless 是我們過(guò)去 25 年來(lái)在 SaaS 中走的最后一步,因為我們已經(jīng)漸漸將越來(lái)越多的職責交給了服務(wù)提供商?!狫oe Emison 《為什么 Serverless 比其他軟件開(kāi)發(fā)方法更具優(yōu)勢》
二、架構:微服務(wù)、Service Mesh 和 Serverless
云計算為應用打造了分布式的基礎設施,但是,如果應用還是以傳統的單體應用的思路開(kāi)發(fā),則云計算意義并不大。
這些年里,軟件架構逐漸從 SOA 進(jìn)化到微服務(wù),很多人認為微服務(wù)是一種細粒度的 SOA,在去掉了 SOA 中的 ESB 之后,微服務(wù)變得更加靈活、性能更強。但是,實(shí)施微服務(wù)需要一些前提。
Martin Fowler 曾經(jīng)總結過(guò)微服務(wù)實(shí)施的前提包括:
計算資源的快速分配;
基本的監控;
快速部署。
這基本就是 Kubernetes 所起到的主要作用,雖然如 Spring Cloud、Dubbo 微服務(wù)框架在各方面已經(jīng)非常完善,但隨著(zhù)云原生計算基金會(huì )的壯大,基于 Kubernetes 的微服務(wù)在社區中的熱度越來(lái)越高,也開(kāi)始有很多公司開(kāi)始利用這一套技術(shù)棧來(lái)構建微服務(wù)。
到 2016 年,Service Mesh 開(kāi)始引起社區的注意,Kubernetes 加上 Service Mesh,再加上 CNCF 的一些開(kāi)源項目,基于 k8s 的微服務(wù)技術(shù)?;揪屯晟屏?。2018 年 Istio 1.0 發(fā)布,更是為這股浪潮加了一把火,未來(lái)的微服務(wù)將是 k8s 和 Service Mesh 的天下。
Service Mesh:下一代微服務(wù)?
微服務(wù)正在逐漸走向巔峰的過(guò)程中,但它的挑戰者已經(jīng)出現。Serverless 或者說(shuō) FaaS 最開(kāi)始只是 AWS 推出的一個(gè)功能,但隨著(zhù)社區和業(yè)界的跟進(jìn),逐漸有人將其認為是微服務(wù)的進(jìn)化。其邏輯也很簡(jiǎn)單,從 SOA 到微服務(wù)是一個(gè)服務(wù)粒度逐漸拆分得更小的過(guò)程,FaaS 里的 Function 可以視為更小的、原子化的服務(wù),它天然的契合微服務(wù)里面的一些理念。
(許曉斌 《從微服務(wù)到 FaaS》)
當然,關(guān)于 Serverless 如何融入到現有架構,目前并沒(méi)有成熟的經(jīng)驗,Serverless 本身也存在一些問(wèn)題,但毫無(wú)疑問(wèn)這是業(yè)界關(guān)注的重點(diǎn)。
三、數據庫:從 NoSQL 到 NewSQL
在過(guò)去幾年,數據庫的發(fā)展同樣令人矚目。
2009 年 MongoDB 開(kāi)源,掀開(kāi)了 NoSQL 的序幕,一時(shí)之間 NoSQL 的概念受人追捧,MongoDB 也因為其易用性迅速在社區普及。NoSQL 拋棄了傳統關(guān)系數據庫中的事務(wù)和數據一致性,從而在性能上取得了極大提升,并且天然支持分布式集群。
然而,不支持事務(wù)始終是 NoSQL 的痛點(diǎn),讓它無(wú)法在關(guān)鍵系統中使用。2012 年,Google 發(fā)布了 Spanner 論文,從此既支持分布式又支持事務(wù)的數據庫逐漸誕生,以 TiDB、蟑螂數據庫等為代表的 NewSQL 身兼傳統關(guān)系數據庫和 NoSQL 的優(yōu)點(diǎn),開(kāi)始嶄露頭角。
從目前已有的 SQL 數據庫實(shí)現方案來(lái)看,NewSQL 應該是最貼近于云數據庫理念的實(shí)現。NewSQL 本身具有 SQL、ACID 和 Scale 的能力,天然就具備了云數據庫的一些特點(diǎn)。但是,從 NewSQL 到云數據庫,依然有很多需要挑戰的難題,比如多租戶(hù)、性能等?!耷铩对茣r(shí)代數據庫的核心特點(diǎn)》
本來(lái)事情發(fā)展到這里就結束了,但 2014 年亞馬遜又推出一個(gè)重磅炸彈:基于新型 NVME SSD 虛擬存儲層的 Aurora,它實(shí)現了完全兼容 MySQL(甚至連 bug 都兼容)的超大單機數據庫,同時(shí)在性能上高出 5 倍以上。(Amazon Aurora 讀后感:https://zhuanlan.zhihu.com/p/30159571)
另外,各種不同用途的數據庫也紛紛誕生并取得了較大的發(fā)展,比如用于 LBS 的地理信息數據庫,用于監控和物聯(lián)網(wǎng)的時(shí)序數據庫,用于知識圖譜的圖數據庫等。
可以說(shuō),數據庫目前處于一個(gè)百花齊放的階段,而由于云廠(chǎng)商的努力,基本上新的數據庫都支持自動(dòng)擴容、按使用付費的云計算特征。
四、大數據:從批處理到流處理
Google 在 03-06 年發(fā)布了關(guān)于 GFS、BigTable、MapReduce 的三篇論文,開(kāi)啟了大數據時(shí)代。在發(fā)展的早期,就誕生了以 HDFS/HBase/MapReduce 為主的 Hadoop 技術(shù)棧,并一直延續到今天。在這當中,不少組件都是可替換的,甚至有的發(fā)生了換代。這其中,最重要的換代就是處理引擎。
最開(kāi)始大數據的處理大多是離線(xiàn)處理,MapReduce 理念雖然好,但性能捉急,新出現的 Spark 抓住了這個(gè)機會(huì ),依靠其強大而高性能的批處理技術(shù),順利取代了 MapReduce,成為主流的大數據處理引擎。
隨著(zhù)時(shí)代的發(fā)展,實(shí)時(shí)處理的需求越來(lái)越多,雖然 Spark 推出了 Spark Streaming 以微批處理來(lái)模擬準實(shí)時(shí)的情況,但在延時(shí)上還是不盡如人意。2011 年,Twitter 的 Storm 吹響了真正流處理的號角,而 Flink 則將之發(fā)揚光大。
到現在,Flink 的目光也不再將自己僅僅視為流計算引擎,而是更為通用的處理引擎,開(kāi)始正面挑戰 Spark 的地位。
Apache Flink 已經(jīng)被業(yè)界公認是最好的流計算引擎。然而 Flink 的計算能力不僅僅局限于做流處理。Apache Flink 的定位是一套兼具流、批、機器學(xué)習等多種計算功能的大數據引擎。在最近的一段時(shí)間,Flink 在批處理以及機器學(xué)習等諸多大數據場(chǎng)景都有長(cháng)足的突破?!踅B翾(大沙)《不僅僅是流計算:Apache Flink?實(shí)踐》序
Hadoop 本身也遭遇了 Kubernetes 的挑戰。Hadoop 本身包括專(zhuān)用于處理大數據的編排系統如 Yarn 等,但如 Spark/Presto/Kafka 等最重要的 Hadoop 技術(shù)已經(jīng)可以在 Kubernetes 上運行,使用 Kubernetes 來(lái)運行大數據技術(shù)棧,可以更好的與其它業(yè)務(wù)集成。遭遇挑戰的表現之一就是 Hadoop 技術(shù)棧的兩家主要提供商,Cloudera 和 Hortonworks 最近決定合并,緩慢的增長(cháng)表明市場(chǎng)上已經(jīng)容不下兩家提供商了。(Will Kubernetes Sink the Hadoop Ship?:https://thenewstack.io/will-kubernetes-sink-the-hadoop-ship/)
五、運維:從手工運維到 DevOps
運維在過(guò)去幾年遭遇了云計算技術(shù)的強烈沖擊。那些依賴(lài)云計算提供商的公司,它們的運維的職責大大削弱,而自研云技術(shù)的公司里的運維則要求大大提高,過(guò)去的經(jīng)驗已經(jīng)難以適用了。
這其中最重要的變化就是 DevOps 的出現,運維的身份職責發(fā)生了轉變,它不再是專(zhuān)門(mén)跑任務(wù)腳本或者與機器打交道的人,而是變成了 OpenStack 或者 Kubernetes 的專(zhuān)家,通過(guò)搭建 / 管理相關(guān)的分布式集群,為研發(fā)提供可靠的應用運行環(huán)境。
DevOps 更重要的方面還是改變了應用交付的流程,從傳統的搭火車(chē)模式走向持續交付,應用的架構和形態(tài)改變了,其方法論也隨之而改變。DevOps 和持續交付也被認為是云原生應用的要素。
至于 AIOps 是 DevOps 在實(shí)踐 AI 過(guò)程中的一些應用,稱(chēng)不上是范式的改變,AI 在運維領(lǐng)域還遠遠取代不了人的作用。
六、前端:前后端分離
前端在過(guò)去幾年的變化同樣稱(chēng)得上是翻天覆地,2008 年 Nodejs 的出現徹底激發(fā)了前端的生態(tài),將 JavaScript 的疆域拓展到服務(wù)端和桌面,最終催生出大前端的概念。
如果純粹看傳統的前端開(kāi)發(fā)的變化,不僅主流技術(shù)從 jQuery 轉移到三大框架,更重要的是 SPA 和前后端分離的出現。
SPA 代表著(zhù)前端的應用化,也就意味著(zhù)胖客戶(hù)端,部分業(yè)務(wù)邏輯可以從服務(wù)端轉移到客戶(hù)端完成。前后端分離更是將前端從后端獨立出來(lái),劃定了領(lǐng)域邊界。后端對前端來(lái)說(shuō),成為了數據層,只要接口能夠正確返回數據,前端并不關(guān)心后端是如何做到的。
事實(shí)上,胖客戶(hù)端的轉變正好與后端的進(jìn)化方向吻合。無(wú)論是微服務(wù)還是 Serverless,都強調無(wú)狀態(tài),這意味著(zhù)你不應該用后端去生成有狀態(tài)的 UI,而是讓客戶(hù)端自行處理狀態(tài)。
從前后端分離看阿里 Web 應用架構演變
互聯(lián)網(wǎng)分層架構,為啥要前后端分離?
為了應對越來(lái)越大型的客戶(hù)端代碼,前端發(fā)展出的技術(shù)包括 TypeScript、Redux/MobX、WebAssembly、WebWorker 等,這些也是前端重點(diǎn)關(guān)注的技術(shù)。
七、AI:互聯(lián)網(wǎng)的新基礎設施
現代的 AI 是基于大數據和機器學(xué)習的,在很多公司里大數據和 AI 屬于同一個(gè)數據科學(xué)的團隊。在過(guò)去兩年,AI 已經(jīng)用各方面的成績(jì)證明它可以成為整個(gè)互聯(lián)網(wǎng)的基礎設施之一,幫助讓我們的互聯(lián)網(wǎng)更加的智能化。
如果把 2016 年的 AlphaGo 當做現代 AI 的起點(diǎn),那么 AI 發(fā)展的歷史其實(shí)很短。學(xué)術(shù)界還在研究怎么提升 AI 的算法,各個(gè)公司則是急于將 AI 應用到生產(chǎn)環(huán)境。
AI 從感知層大致分為兩大塊,一塊是計算機視覺(jué),這一塊已經(jīng)比較成熟,無(wú)論是人臉識別、物體檢測、運動(dòng)檢測都已經(jīng)能用于實(shí)際場(chǎng)景中。另一塊則是 NLP,雖然微軟、Google 等宣稱(chēng)它們的 AI 翻譯準確率已經(jīng)極高,但實(shí)際上仍然不太好用,而多輪會(huì )話(huà)的問(wèn)題沒(méi)有解決,Chatbot 還是難以與人展開(kāi)正常對話(huà)。
總之,真正的通用人工智能 AGI 離我們還遠,至少現在還看不到頭緒。AI 雖然在炒作中顯得有些過(guò)熱,但其技術(shù)和應用是真實(shí)的。
致開(kāi)發(fā)者:2018 年 AI 技術(shù)趨勢展望
被高估的 2018——深度學(xué)習發(fā)展并沒(méi)有想象的快。
值得注意的是,在 2018 年,國內幾家涉及公有云業(yè)務(wù)的公司紛紛調整架構,將之前的云計算部門(mén)升級為智能云計算部門(mén):
9 月 30 日,騰訊架構調整,新成立云與智慧產(chǎn)品事業(yè)群;
11 月 26 日,阿里集團架構調整,阿里云事業(yè)群升級為阿里云智能事業(yè)群;
12 月 18 日,百度調整架構,將之前的智能云事業(yè)部升級為智能云事業(yè)群。
云廠(chǎng)商們之所以將 AI 作為它們的頂級戰略并與云計算放在一起,是因為 AI 本身需要強大的、專(zhuān)門(mén)定制的基礎設施,是云的一個(gè)非常適合的場(chǎng)景;同時(shí)也因為 AI 技術(shù)有一定門(mén)檻,可以作為自身云計算差異化的一個(gè)點(diǎn)??傊?,這些云廠(chǎng)商通過(guò) AI 來(lái)賣(mài)它們的云服務(wù)。
八、區塊鏈:不確定性
2018 年的區塊鏈無(wú)疑是最有爭議的話(huà)題,這里拋開(kāi)那些炒作與騙局,可以看到區塊鏈技術(shù)在 2018 年有很大的發(fā)展。
具體可分為兩方面:
一方面是公鏈上一些痛點(diǎn)解決方案的探索和突破。包括比 POW 更好的共識機制、并發(fā)交易性能、數據存儲和處理、跨鏈交易等等。當然,問(wèn)題還遠遠沒(méi)有得到解決。由于利益牽扯太多,這一領(lǐng)域也沒(méi)有公認的主流解決方案。
另一方面是聯(lián)盟鏈的逐漸成熟,其中代表技術(shù)為超級賬本,一部分早期采用者在探索聯(lián)盟鏈的適用場(chǎng)景,一部分則是做起賣(mài)水的生意,推出 BlockChain as a Service。
在現在這個(gè)時(shí)刻,區塊鏈的未來(lái)有太多的不確定性了,無(wú)法進(jìn)行預測,所以這里不再多談。
九、物聯(lián)網(wǎng)與邊緣計算:為何發(fā)展不起來(lái)
物聯(lián)網(wǎng)在過(guò)去幾年一直不溫不火,似乎一直在炒作中,但真正有影響力的產(chǎn)品和應用比較少。曾經(jīng)炒過(guò)一陣的開(kāi)發(fā)板最終回歸為極客的玩具。物聯(lián)網(wǎng)本身的技術(shù),除了各種通信協(xié)議和嵌入式操作系統和開(kāi)發(fā)框架之外,近兩年炒的最火的就是邊緣計算了,然而,邊緣計算也是炒作的重災區。
事實(shí)上,邊緣計算的定義并沒(méi)有清晰,甚至連邊緣是什么都沒(méi)有共識。有的說(shuō)終端節點(diǎn)、智能設備是邊緣,有的說(shuō) CDN 是邊緣,有的說(shuō)路由器、交換機是邊緣,還有的說(shuō)未來(lái)的 5G 基站是邊緣。
邊緣計算的技術(shù)目前只看到一個(gè) EdgeX Foundry,然而在該項目里目前還看不到一個(gè)有代表性的重量級的技術(shù),更多是一些廠(chǎng)商搶占風(fēng)口的占位行為。
為什么會(huì )這樣呢?其實(shí)好理解,因為物聯(lián)網(wǎng)是一個(gè)很好預測的未來(lái)趨勢。
從互聯(lián)網(wǎng)到移動(dòng)互聯(lián)網(wǎng),是一個(gè)不斷擴張的過(guò)程,不但終端節點(diǎn)大量增加,而且每時(shí)每刻都在線(xiàn),如果將這個(gè)邏輯延伸一下就是物聯(lián)網(wǎng)了,終端從智能手機變成任何可聯(lián)網(wǎng)的設備。
正因為這是大家都看得到的趨勢,所以所有的廠(chǎng)商都提前在物聯(lián)網(wǎng)布局,試圖成為下一個(gè)領(lǐng)先者。
但互不退讓的結果,就是陷入三個(gè)和尚沒(méi)水吃的境地。歷史上,NFC 移動(dòng)支付和物聯(lián)網(wǎng)通信協(xié)議都有這種遭遇:
NFC 方面,在中國,銀聯(lián)主推 miniSD 卡的 NFC 方案,而運營(yíng)商主推帶 NFC 的 sim 卡,而手機廠(chǎng)商更愿意將 NFC 功能直接集成至手機中。在國外,美國三大運營(yíng)商推出基于 NFC 的移動(dòng)支付功能 Isis,蘋(píng)果谷歌各自有自己的 NFC 錢(qián)包,而 Android 陣營(yíng)的手機也多半將 Android Pay 功能替換為自家的支付功能。
物聯(lián)網(wǎng)通信協(xié)議方面,WiFi、藍牙、RFID、ZigBee,背后代表了不同的利益方,而在包括工業(yè)物聯(lián)網(wǎng)等行業(yè)之后,各種私有通信協(xié)議多達數十種。到現在我們都沒(méi)有辦法簡(jiǎn)單的將兩個(gè)任意兩個(gè)支持聯(lián)網(wǎng)的設備相互連接,可以想象,物聯(lián)網(wǎng)的發(fā)展還任重而道遠。
智慧城市是物聯(lián)網(wǎng)之集大成者,然而其概念從誕生到現在數十年了,我們沒(méi)能看到一個(gè)成功的落地案例。
所以,物聯(lián)網(wǎng)的發(fā)展不會(huì )像移動(dòng)互聯(lián)網(wǎng)一樣一蹴而就,而是通過(guò)在共享單車(chē)上的應用,這樣一個(gè)個(gè)案例積累起來(lái)逐漸進(jìn)入我們的生活。
十、從當下的技術(shù)看未來(lái)
看了上面的盤(pán)點(diǎn),你會(huì )發(fā)現云原生或者說(shuō)真正的云計算是我們當下互聯(lián)網(wǎng)技術(shù)發(fā)展的大趨勢,在這個(gè)大趨勢之下,推動(dòng)不同的領(lǐng)域進(jìn)行相應的發(fā)展。
其中的代表技術(shù),就是機器學(xué)習、Kubernetes、Serverless,它們是當下這個(gè)時(shí)代技術(shù)發(fā)展的主旋律,如果你認同這個(gè)觀(guān)點(diǎn),你可以得出這樣一個(gè)預測:
傳統的應用開(kāi)發(fā)將走向以容器、Serverless 為代表的真正的云計算,而隨著(zhù)終端和云的更深度的集成、物聯(lián)網(wǎng)的發(fā)展、智能化的提升,云和端的界限會(huì )變得模糊,我們和理想中的互聯(lián)網(wǎng)會(huì )更加接近。
信息技術(shù)的革命將把受制于鍵盤(pán)和顯示器的計算機解放出來(lái),使之成為我們能夠與之交談,與之一道旅行,能夠撫摸甚至能夠穿戴的對象。這些發(fā)展將變革我們的學(xué)習方式、工作方式、娛樂(lè )方式—一句話(huà),我們的生活方式?!岣鹇妪嫷邸稊底只妗?/p>
《數字化生存》是 1996 年出版的,對于理想的互聯(lián)網(wǎng)以前我們只是憑空的想象,而現在我們知道通過(guò)怎樣的技術(shù)發(fā)展路徑能抵達這個(gè)理想。
十一、技術(shù)的本質(zhì)與技術(shù)發(fā)展的邏輯
技術(shù)在不斷地推陳出新,令人眼花繚亂,但如果抓住了這些技術(shù)的本質(zhì),會(huì )發(fā)現太陽(yáng)底下并沒(méi)有新鮮事。
如果將上面的各個(gè)領(lǐng)域的重要技術(shù)變革提煉一下,會(huì )發(fā)現其中的一些有共同點(diǎn):
虛擬化:將硬件資源虛擬為軟件資源,然后進(jìn)行統一調度和管理。
隔離:從虛擬機到容器,再到虛擬機與容器融合,隔離的技術(shù)定義了云的形態(tài)。
解耦:無(wú)論是后端的微服務(wù)、前端的前后端分離、組件化等等,都是將關(guān)注點(diǎn)分離,解耦合的過(guò)程。
編排:大量不同的服務(wù)、任務(wù),讓他們組成一個(gè)整體,相互間能良好的協(xié)作。
智能化:讓服務(wù)個(gè)性化,或者讓自動(dòng)化替代以前需要人工完成的事情。
實(shí)時(shí)化:計算和處理在極短時(shí)間內完成,從而實(shí)時(shí)的給予反饋。
當然,其中會(huì )有一些遺漏,或者有些你并不認同,但我想表達的是,這些技術(shù)存在一些共同的本質(zhì),它們是不同的領(lǐng)域技術(shù)發(fā)展的共同邏輯。
十二、再進(jìn)一步:是什么在推動(dòng)軟件的發(fā)展?
上面我們已經(jīng)知道了軟件的常規發(fā)展趨勢,可是,如何預測軟件的顛覆式創(chuàng )新?要預測這個(gè),我們需要更加深入去挖掘軟件進(jìn)步的源頭。
軟件并不是憑空發(fā)展起來(lái)的,它必須要運行在各種硬件上,軟件的發(fā)展,也離不開(kāi)硬件的支持。
或者說(shuō),正是硬件的不斷升級和變革,支撐了軟件的發(fā)展進(jìn)步。云計算的誕生,正是源于大型機已經(jīng)無(wú)法支撐高并發(fā),才讓人們轉而采用一般硬件和虛擬化、分布式的軟件技術(shù)。
軟件的顛覆式創(chuàng )新,一定是在硬件支持的基礎上,隨著(zhù)現有的軟件架構對現有硬件能力的挖掘,再發(fā)生顛覆的可能性已經(jīng)較小了。
當然,這并不是說(shuō)不存在,如 Docker 和比特幣的誕生,都沒(méi)有利用特別新的硬件能力,更多的是現有軟件發(fā)展積累到一定程度的質(zhì)變。
但軟件創(chuàng )新更多的可能性,則在于硬件的顛覆上。
AWS 推出的 Aurora 數據庫就是一個(gè)很好的例子,它的誕生正是基于非易失性存儲技術(shù)的重大進(jìn)步?,F在的趨勢是,硬件的創(chuàng )新體現在軟件上的時(shí)間會(huì )越來(lái)越短。
英特爾、英偉達研發(fā)的最新芯片,也都會(huì )被云廠(chǎng)商第一時(shí)間訂購,充分利用硬件升級帶來(lái)的性能提升。
最近,還有一個(gè)新趨勢是軟件廠(chǎng)商反過(guò)來(lái)驅動(dòng)硬件的進(jìn)步,谷歌、阿里、華為等都開(kāi)始自研用于云和終端的芯片。
如果要預測軟件的發(fā)展,我們不能不去看硬件可能帶來(lái)的提升,這里我們從軟件運行需要的三大資源入手:
計算:AI 對于計算的特殊需求,催生了相關(guān)芯片的研發(fā)。而更多非通用性芯片將推動(dòng)物聯(lián)網(wǎng)和邊緣計算的發(fā)展。而在遠處忽隱忽現的量子計算,一旦能普及,也必將產(chǎn)生顛覆。
存儲:Nano Flash 類(lèi)非易失性存儲還有提升的空間,在云和端的利用也沒(méi)有普及。如果非易失性存儲能在內存領(lǐng)域有所突破,對于軟件架構必將帶來(lái)另一次顛覆。
網(wǎng)絡(luò ):網(wǎng)絡(luò )方面,WiFi 技術(shù)即將進(jìn)入第六代,帶來(lái)?yè)頂D場(chǎng)合的大幅性能提升;藍牙進(jìn)入第五代,連接距離將提升至 300 米;更重要的則是 5G,相較于 4G 數百倍的數據傳輸速度和低至幾毫米的延時(shí),讓很多應用都有了更大的想象空間。
對于技術(shù)發(fā)展的總結基本就到這里了。
選擇技術(shù)是有風(fēng)險的,如果是一家做 To B 或者 To C 的公司,選擇了非主流的技術(shù),只是會(huì )演變成長(cháng)期的技術(shù)負債,但如果是一家面向開(kāi)發(fā)者的云計算公司,選擇錯了技術(shù)則幾乎注定了之后的衰落,無(wú)論是堅持下去還是切換成主流技術(shù),都會(huì )因為錯過(guò)最佳時(shí)機而步步艱難。這也是近年來(lái)新技術(shù)受到追捧的一個(gè)原因。
這種現象也導致了技術(shù)迭代的速度越來(lái)越快,開(kāi)發(fā)者只要幾年不關(guān)注新技術(shù),就有一種被世界拋棄的錯覺(jué),于是每個(gè)人都很焦慮。
我希望用這篇文章,幫助你梳理技術(shù)的發(fā)展,知道正在發(fā)生什么,以及將會(huì )發(fā)生什么。只要知道了這些,想必不會(huì )那么焦慮了。
聯(lián)系客服