雲端計算簡史(完整版)
文/明道雲創始人任向暉
圍繞雲端計算相關的技術領域、技術名詞和技術產品令人眼花繚亂。在雲端計算髮端之初,應用開發環境還比較簡單,當時還有所謂的全棧工程師存在,意味著如果不考慮開發週期,一個人就能搞定整個應用軟體。今天,這個稱謂已經名不符實。很少再有一個人,甚至一個企業能夠全面掌握和雲端計算有關的所有技術棧。他們可能會應用旁人完成的一些成果,結合自有的一些專有經驗,來形成在某個細分市場有競爭力的產品,或者為客戶交付期望的產出。
即使作為純粹的應用者,要想全面瞭解和雲端計算有關的技術,做到合理架構,恰當選型,順利完成整合開發和部署的全過程,也都比過去難得多,需要的技術人才也比過去昂貴。坦率來說,在當下的人才競爭度下,一般行業的企業,即使擁有資訊部門,也都不太可能獨立駕馭這樣複雜的開發設施,他們將不得不廣泛依賴雲端計算平臺提供的服務。這給軟體行業的解決方案商帶來了新的市場機會。誰能夠為數字化轉型企業提供友好的應用開發和部署環境,誰就能夠獲得和保有客戶。
這篇長文主要面向大中型企業的技術和非技術管理者。我通過描繪雲端計算技術和市場領域的發展過程,介紹關鍵技術和市場里程碑,包括不同技術域下的核心開源專案,讓企業能夠對雲端計算髮展歷史和相關技術域有一個通盤的瞭解。有了通盤的認知,你會更容易看透本企業應該怎樣利用雲端計算,未來可能的市場機會和挑戰在哪裡?
本文受到Tom Siebel 2019年出版的Digital Transformation一書的啟發,但我儘量結合了中國市場的實際情況通俗地來講述。
雲端計算市場的形成和結構
我們今天能夠享受經濟和便捷的雲端計算服務,主要來自兩大動力,一是計算資源的虛擬化技術,二則是規模經濟效應。前者發端於2000年後VMWare推出的Hypervisor虛擬化軟體,它不再依賴一個母體作業系統,就允許使用者將硬體和網路資源劃分成多個單元,從而實現計算資源的池化、共享和按需排程。
2006年,Amazon推出了S3物件儲存服務和SQS簡單佇列服務,開創了公共雲端計算服務的先河。在此後,微軟,IBM,谷歌,中國的阿里,騰訊和華為等都陸續加入了公共雲服務的市場,提供的服務也從基礎計算資源擴充套件到資料庫、人工智慧、物聯網等多個技術領域。目前,這個行業已經成長為年收入2500億美元的巨大市場。
在這十多年的發展過程中,當然出現了很多的公司,產品和服務,但是概括起來這些事物的湧現基本沿著兩條明顯的路線在進行:
趨勢一:從基礎設施,到應用,再到應用相關的平臺服務。
基礎雲 (Infrastructure as a Service)
最早的雲端計算服務就是最基礎的雲主機(Virtual Machine),服務商把裸金屬裝上Hypervisor,把計算和網路資源分塊後就可以賣了。隨後,基礎服務被拆分為主機、儲存、網路、資料庫和安全等幾個重要的基礎雲產品,允許使用者靈活組合,並實現了彈性計費(目前國外基礎雲廠商大多都提供按分鐘或按秒的計費精度,儲存則可以按月計費,比如AWS的S3服務每GB資料的標準儲存月費在0.0125美元,而深度歸檔儲存的每GB月費可以低至每GB0.001美元)。
我們一般把主機,儲存,網路,資料庫和安全相關的計算服務統稱為基礎雲服務。在這些服務之上,開發者需要完成所有的技術棧搭建,構建自己的資料架構,開發編碼,部署運維,最終才能實現雲端應用。而初代的雲端計算客戶大多數都是網際網路公司。他們並非雲服務的最終消費者,而是生產者。
應用即服務(Software as a Service)
和Amazon Web Services幾乎同時起步的另外一家公司Dropbox是一家面向個人和團隊提供檔案儲存和共享服務的創業公司。趕上了AWS起步的時候,Dropbox就直接使用了AWS現成的S3物件儲存服務,這讓一家團隊人數很小的初創公司有機會能夠聚焦在應用開發和營銷上,讓Dropbox通過短短的幾年時間發展成市場份額第一的檔案共享應用。和Dropbox類似的大票SaaS企業大多也都是在隨後的十年內陸續出現,他們千篇一律都使用了雲端計算平臺的服務,而不再自建基礎設施。這當中也包括一個超級大使用者“奈飛“(Netflix),他們的下行流量佔到整個網際網路下行流量的15%之多,也是AWS的客戶。
我們創辦的明道協作應用誕生在2011年,也正好趕上了中國雲端計算平臺開始的年份,所以我們也避免了很多基礎設施的建設工作。廣義來說,最早的雲服務在基礎雲公司之前就出現了。1999年創辦的Salesforce,就是一個典型的SaaS公司,只不過當年沒有這樣的行業術語。2016年,據說Salesforce也已經成為了AWS的客戶。因為SaaS服務形式的存在,使得雲端計算能夠間接提供服務給大量的中小企業和非網際網路行業企業。今天,幾乎所有的企業都或多或少應用一些SaaS服務。
雲端計算市場發展的第一波主要由網際網路企業使用者帶動。他們具備比較完整的開發和自助運維能力,而且也有日益增長的用量,屬於基礎雲服務最理想的客戶群體。直到今天,阿里雲和騰訊雲的主要客戶群體依然是泛網際網路行業。
SaaS企業是雲端計算基礎服務的重要推動者,雖然這個門類和2C的網路服務相比,貢獻的經濟價值要小得多,但是他們深諳企業市場的需求,推動了雲端計算平臺的應用開發環境日益成熟。這就是趨勢的下一步:平臺即服務。
(開發)平臺即服務(Platform as a Service)
所謂平臺即服務,特指開發平臺。應用開發工作從本地遷移到雲端,自然需要在雲端計算環境中提供對應的更優解決方案。所以過去傳統的中介軟體市場陸續發生變遷,逐一轉換為在雲端計算平臺上的某項服務。比較常見的開發平臺服務包括:
通訊:提供音視訊通訊、訊息推送、簡訊、郵件等服務
地理資訊:提供地圖、定位、導航相關的服務
應用開發框架:提供應用開發環境和執行時環境
媒體服務:提供圖片和音視訊等媒體檔案的編碼、加工和儲存服務
機器學習框架:提供面向AI應用開發者的機器學習資料標註和模型訓練平臺
小到傳送一條驗證碼簡訊也是一項PaaS服務。
作為PaaS服務,主要是為開發者服務的,所以除了功能性服務以外,PaaS廠商也要提供開發友好性相關的周邊能力,比如彈性擴充套件的能力,除錯和控制許可權的能力等。參與的開發者越多,一項PaaS服務就能夠有更多的改進機會和攤低的平均成本。
PaaS服務是不是一定由獨立的PaaS廠商來提供呢?不一定。實際上,主流的PaaS服務大多被IaaS公司所覆蓋了。如果你開啟阿里雲的產品列表,在數百個產品中,你會發現基礎雲服務只是其中一個門類,其他十幾個門類都是和開發環境有關的服務。這意味著,一家創業公司想要獨立成為一家成功的PaaS廠商,需要相當聚焦地執行,而且產品有明顯的技術領先度。一旦做到這一點,也不用擔心和基礎雲公司的競爭,因為我後面會講到雲端計算市場的技術發展,其中已經有眾多的技術趨勢保障了獨立性PaaS公司建立跨雲服務的獨特優勢。
以上說的是雲端計算服務過去十五年發展中的一條脈絡,從基礎雲到應用的共生,再到日益豐富的開發平臺即服務。雲端計算覆蓋的使用者越來越多,依賴的是這三個層次的服務互為補充。
趨勢二:從公共雲、私有云到混合雲,再到多雲
第二條脈絡有關雲端計算服務的部署模式(Deployment Model)。當雲端計算概念被提出時,它顯然指的就是公共雲服務,客戶不需要保有任何基礎設施,直接像水電煤一樣使用雲端計算資源就可以。但是商業的現實和技術企業的理想之間總是存在溝壑。雲端計算到底是技術還是服務,在很長一段時間內是缺乏共識的。
在雲端計算服務開啟之前,很多大型企業和組織都有自己的伺服器。2010年,全球伺服器市場就有500億美元的規模,這些伺服器大多數都賣給了企業和政府。企業擁有了這些基礎設施,難道再花錢買公共雲服務嗎?既然雲端計算技術這麼好,為什麼我自己來實現呢?政府、金融、醫藥等行業客戶更加不可能在公共雲端計算服務誕生的初期就義無反顧地採納,他們有各種各樣所謂的合規要求。
私有云 (Private Cloud)
果不其然,有需求就有供給。2010年Rackspace和NASA公開了一個叫做OpenStack的開源專案組。它包含了一系列用於構築雲端計算服務的開源軟體。這意味著,所有擁有硬體基礎設施的使用者都可以用很低的成本來實現和AWS類似的技術架構。Rackspace是一家IDC公司,它這麼做的動力顯然是很強的。它認為只要幫助客戶解決虛擬化問題,自己的主機託管生意一樣可以興旺發達。
雖然軟體是開源免費的,但是要實施Open Stack依然需要雲端計算相關的專業知識。因此,從2010年開始,出現了很多基於OpenStack幫助企業建立私有云的服務商。在國內,公共雲服務商甚至都提供過這類服務。十年過去了,這股由OpenStack帶起的私有云風潮基本告一段落。除了極少數大型使用者在經濟上能夠承受自己維護獨立的雲端計算平臺,絕大多數使用者根本無法得到經濟上合理的回報。虛擬化只是雲端計算服務的一個技術前提,但並非所有的價值。私有云方案永遠無法利用到資源彈性利用(可大可小)和真正的規模經濟效應,除非使用者根本不關切經濟理性。
在中國市場,重點行業可能至今依然無法使用商業雲服務,但是電信運營商和一些國家級的科技企業也在公共雲服務商的幫助下建立了各種行業雲。比如移動雲,聯通雲和電信天翼雲都是這樣形成的,他們為金融、政府、交通、教育等重點行業提供公共雲服務。
故事到這裡,似乎公共雲已經大獲全勝。但是,商業現實又回來了。在越來越同質化的雲端計算服務市場,客戶難道完全沒有議價能力嗎?客戶的需求如果不能得到滿足,總有供應商會願意創新。於是混合雲(Hybrid Cloud)出場了。
混合雲 (Hybrid Cloud)
其實混合雲並不是什麼獨特的雲端計算技術,它實質上是一組通訊服務。只要堆上足夠好的網路裝置和奢侈的專線連線,世界上任何地點的計算裝置都可以組成高速專網。即便客戶預算有限,只要對安全性和連通性的要求沒有那麼高,也可以自助搭建經濟的VPN網路。圍繞通過商業網路連線組建混合雲的技術被稱之為“SD-WAN”(軟體定義廣域網)。有了網路連線,就可以把客戶自有的計算設施和公共雲端計算設施連線在一起,稱之為“混合雲”。
混合雲對客戶的好處是明顯的。首先,每個企業都可能有云計算基礎用量,但也可能有短期的激增需求。有了混合雲,客戶就可以圍繞自己的基礎用量採購自有IT資產,自己運營私有云,而短期波動的增量則可以通過公共雲服務滿足,等需求高峰過去,就可以去掉這部分的開支。企業也可以將運維難度比較低的基礎雲服務保留在自己的設施內,而同時使用公共雲提供的複雜計算服務,比如機器學習平臺等。Dropbox是一個大規模的SaaS應用,它在2016年做了很大的架構調整,大部分的服務不再使用AWS的公共雲,一舉節省了7000萬美元的年度雲端計算開銷。
混合雲策略現在已經得到了廠商和客戶的雙重支援,它終結了公共雲和私有云非黑即白的爭議,讓整個IT產業更加務實。這其中也誕生了很多的商業機會。微軟,亞馬遜,IBM,Google等領先的雲端計算廠商都推出了自己的混合雲解決方案。因為混合雲方案主流化,雲端計算廠商的競爭開始從基礎雲資源的成本嚮應用開發生態環境遷移。因為在混合雲架構下,客戶面臨如何規劃流暢的資料連線,如何快速交付雲原生應用的新挑戰。所以,雲端計算的終極競爭不是硬體的競爭,也不是軟體的競爭,而是應用開發和部署(AD&D)環境的競爭。
多雲 (Multi-Cloud)
多雲概念是雲端計算市場最近幾年出現的概念。它把所有的雲端計算平臺,客戶的私有云設施全部視作一般基礎設施。所有的應用在所有的雲上都能一致並可靠地執行。多雲解決方案不僅是基礎設施提供者需要協調的,更重要的是應用開發和部署要面向多雲執行目標。
2013年,Y Combinator孵化企業Docker Inc開源了Docker專案。它成為應用跨雲部署的重要前提。Docker允許使用者將複雜的應用、資料和依賴的環境,包括作業系統本身打包到一個“容器”中,通過標準的Docker引擎,在任何計算環境中都可以一致地執行。有了這項技術,把一個應用系統從阿里雲轉移到騰訊雲就和傳輸一個檔案一樣簡單,雲和雲之間已經沒有邊界。為什麼Windows和mac OS的應用永遠不相容,而云計算廠商卻眼睜睜地看著這些事情發生呢?很簡單,因為整個雲端計算技術生態都建立在開源軟體上,亞馬遜再大,它也只是一個服務提供者,收的是租金。而客戶方,則越來越看重自主可控性,他們不希望被單一的雲端計算公司鎖定,畢竟自己的客戶和交易資料都執行在雲端計算上,它是所有企業的命脈了。
2015年,Google開源了Kubernates專案,讓多雲解決方案更勝一籌。K8S能夠對容器的建立、擴充套件等進行自動編排。這意味著無論應用有多麼複雜,它都能夠在多雲環境中進行統一運維。比如自家的某種型別儲存用完了,就可以臨時購買一些亞馬遜的儲存。資料過時了,就定期自動地轉移到低價格的冷存服務中。
有了多雲技術框架和服務,同時意味著雲端計算平臺必須提供廣泛支援。阿里雲當然希望多賣一些雲主機服務,但是如果因為技術框架落後,客戶就會流失。所以,全世界的雲端計算平臺目前都義無反顧地支援了多雲策略,希望在這個過程中繼續以專業服務商的地位存在。
多雲策略對應用開發者的影響也很大。首先開發者必須從第一天就按照雲端計算環境來規劃,支援多雲部署,自動伸縮,採用微服務架構以實現容器部署。其次,應用開發者也能夠從這樣的架構中受益。因為它使得客戶獲得私有軟體也像應用SaaS一樣簡單,唯獨不同的是應用和資料執行在客戶控制的計算環境中,但是軟體本身都是基於單一程式碼庫的(Single Code Base)。我們明道雲原來是一個SaaS形態應用,客戶只需要在http://mingdao.com上註冊即可使用,現在,通過容器技術,我們的客戶也可以在自己的雲端計算環境中安裝和升級。這些都有賴於多雲技術架構。
前面我們提到了雲端計算公司的競爭將嚮應用開發和部署環境遷移。那麼它具體指的是什麼呢?它有關於圍繞雲端計算相關的四個技術領域。Tom Siebel把他們概括為雲端計算本身、大資料、人工智慧和物聯網。
接下來,我們會逐一介紹這十五年來,伴隨雲端計算髮展起來的數字化技術領域。正是因為雲端計算服務的普及,才催化了這些新興的技術領域,反過來,這些技術領域的發展也讓現代雲服務更加完善,當然也更加複雜。正是這些複雜性,讓企業數字化轉型工作變得阻力重重。相較於更早前的基礎資訊化工作,企業屆要認知和掌握的技術範疇要比寬廣得多。因此,我們介紹雲端計算的發展簡史,就必須要把關聯技術域的發展也一併介紹。
雲端計算相關的技術領域
大資料(Big Data)
在大資料概念出現之前,資料儲存、處理和分析的技術早已存在。隨著儲存成本的下降和雲端計算提供的彈性計算能力增強,越來越多的資料場景已經不能被傳統的資料庫技術所處理。這些新場景可以被概括為高資料量(Volume),高頻度(Velocity)和多資料型別(Variety)三個特點。比如在電子商務、金融和物聯網領域,系統往往在很短的時間內會產生大量的資料。這些資料甚至在儲存的過程中就會產生瓶頸,更不用說實時性很強的計算和分析。所以,從搜尋引擎時代開始,大資料相關的技術就開始孕育。
MapReduce和Hadoop
搜尋引擎的霸主Google成立於1998年,幾年以後,Google的搜尋服務所承載的資料量已經是一個天文數字,而且還在以光速增加。傳統的資料處理技術完全依賴硬體算力的鋪陳,這會讓Google在未來的發展中不堪重負。2004年,Google在內部推出了GFS分散式檔案系統和分散式計算框架MapReduce。前者解決了單一硬體資源的限制,後者通過一系列數學原理,將多型別的資料進行切片並分散儲存在特定的分割槽中,這個設計能夠讓未來的計算和分析大幅提效。MapReduce的技術原理是大資料技術發展的最重要基礎。
很快,開源軟體領域開始響應這項技術方案,Lucene專案創始人Doug Cutting在2006年正式獨立出Hadoop開源專案,在其中包括了分散式檔案系統,在叢集資源上的排程工具,以及最核心的大資料並行處理開發框架。有了Hadoop以後,那些面對海量資料分析難題行業從此有了更好的解決方案。只是在2006年前後,主要的應用行業還是網際網路行業本身。Yahoo,
中國的百度等都很快應用了Hadoop來解決海量資料的儲存和檢索問題。
Hive,Spark和流式計算
在隨後的幾年中,Hadoop相關的大資料處理技術繼續得到增強。Facebook開源的Hive分析工具用更高層和抽象的語言來描述演算法和資料處理流程,能夠用SQL語句進行大資料分析,這大大降低了使用者門檻,也提升了大資料技術的應用效率。不要小看這項改進,它讓全世界大多數現有的資料分析人員可以輕易掌握大資料技術。
2009年,加州大學伯克利分校的AMP實驗室開發了Spark開源叢集計算框架,通過完善API和庫,提供更完善的能力和通用性。而且Spark的特色是能夠將資料儲存在記憶體中,所以資料處理和查詢效率要比利用硬碟儲存的MapReduce框架快百倍。目前,Spark已經加入Apache Software Foundation,成為Apache開源專案中的明星專案,被大資料技術領域作為最重要的工具框架。
至此為止的技術棧基本解決了針對海量資料批量進行處理和分析的需求。比如零售業企業如果需要研究顧客和交易資料,從而對顧客群進行特徵細分,這些技術就足夠了。但是,數字化技術的發展總是會刺激出更高階的需求。比如,線上上零售中,商品和顧客的行為資料是永續不斷在發生的,我們希望在資料發生的時刻就立即進行計算,及時地給顧客推送一張個性化的優惠券,而不是定時進行某種批量計算,這時候就需要大資料技術的一個分支—流式計算。
流式計算的常用框架包括Storm和Spark Stream和Flink,他們在零售和電子商務行業中的交易分析、金融風控、物聯網中的態勢監控、車聯網中的自動駕駛等領域都被廣泛應用。2019年,阿里巴巴用1億美元收購了Flink,是因為我們用的淘寶天貓中的搜尋、商品推薦,包括雙11的實時監控大屏資料都是由Flink來驅動的。Flink用幾乎無延遲的速度截獲雙十一最後一秒鐘結束後的GMV數值,可見它在實時處理資料方面的效能。
NoSQL資料庫
與大資料技術同步發展的還包括NoSQL(非關係型)資料庫市場。在上個世紀,大多數商業資料庫都是關聯式資料庫,通過SQL語言進行資料處理和查詢。當大資料技術發展起來後,技術專家們發現資料庫完全可以用不同的形態來儲存資料,這樣可以大幅減少資料分析過程中的預處理工作量。所以,從2009前後開始,各種NoSQL資料庫開始進入市場。
下圖是維基百科上針對NoSQL資料庫型別的分類方法:
讀者可以忽略其中的細節技術語言,只需要瞭解不同型別的NoSQL資料庫會有利於特定場景的應用開發。比如文件資料庫採用JSON格式儲存,可以隨心所欲定義不同的資料結構,而且橫向擴充套件性很強(資料規模增大後可以保證查詢效率)。我們明道雲的工作表就是利用了文件資料庫MongoDB作為儲存方案。
NoSQL資料庫普遍支援分散式檔案系統,所以都具備很強橫向擴充套件性。和關聯式資料庫相比,NoSQL資料庫大多不具備事務一致性,但是這個犧牲交換得到資料處理的效率,因而作為大資料技術相關的常見儲存方案。
雲端計算平臺上的大資料服務
以上我們介紹了大資料技術發展依賴的各個重要技術棧。很顯然,和傳統的應用開發相比,大資料技術相對更加複雜。它不僅涉及複雜的程式設計框架,還需要一個專業的運維體系。這使得大部分普通企業使用者很難自己來搭建大資料開發環境。所以雲端計算平臺在基礎雲服務之外,也開始結合雲端計算資源提供大資料服務。阿里雲上的MaxCompute是一個全託管的大資料SaaS服務,使用者甚至無需管理主機基礎設施,直接按照大資料計算任務量付費。順便說一下,這種直接將計算服務提供給開發者的模式被稱為“無伺服器”(Serverless)計算,它的目的是為了簡化開發工作中的運維任務,讓開發者聚焦在應用開發上。不僅僅是大資料領域,在AI,物聯網等其他技術領域,無伺服器服務模式正在日益成為主流。E-MapReduce則是一整套大資料相關的PaaS服務,使用者可以選擇利用現成的服務在自己控制的雲主機上完成部署,客戶主要支付的是基礎雲的資源費用。和阿里雲類似,亞馬遜AWS等其他雲端計算平臺也提供豐富的大資料相關平臺服務。
應用領域
我們前面提到大資料技術起源於搜尋引擎應用。在隨後的十多年中,它的主要應用場景依然還是在網際網路領域。最常見的應用包括計算廣告(依據使用者和內容資料動態決定廣告投放策略和定價),內容檢索和推薦(百度、頭條),商品推薦和營銷活動優化(淘寶、拼多多)。不要小看這幾個場景,它們幾乎和網際網路使用者上網過程中的每一分秒都有關係,所以創造了巨大的經濟價值。
資料的價值當然不僅僅侷限於網際網路行業,幾乎每個產業都有機會在大資料技術的幫助下發掘出資料的價值,或者改善運營效率,或者發現出新的業務機會。金融行業是較早的受益者。銀行貸款業務中的風險控制、零售和結算業務中的欺詐發現、保險業務中的精算和保單個性化定價、證券行業中的期貨定價和股價預測等都實實在在在創造出財富。
大資料在研究和開發領域也在大顯身手。在生物醫藥領域,大資料技術在幫助縮短藥物研發的週期和提高成功率;合成化學行業也在利用大資料和機器學習技術來加快發現新材料。有人甚至認為資料科學將成為實驗、推演和模擬以外的一種新的科學研究方法,成為“第四正規化”。
大資料在城市交通、社會治理、能源傳輸、網路安全、航空航天等領域也都已經有了現實的應用。但在這些資本投入密集的領域之外,大資料在一般行業和企業中的應用依然道路曲折。這不是因為大資料技術不夠完善,而是諸多行業尚未能夠明確抽象出大資料應用的價值以及可付諸實施的方法論。正如前面提到的,雲端計算和大資料對於普通中小企業來說依然是一個模糊的技術工具,一般企業也很難僱傭大資料專家,而專業服務企業目前還沒有找到利用自己的技術專長提供普遍服務的有效機會。通用領域中的大資料應用還停留在理念階段。所以,在過去幾年出現的大資料技術公司大多都還在服務金融、公安、交通、能源等大客戶集中的行業。
突破的關鍵點可能在兩個方面,一是大資料技術棧本身十分複雜,當下的工具還依賴專門訓練的計算機專家,產業還沒有抽象出一個通用領域的應用模型,也無法提供一個類似SaaS這樣友好的應用介面。這值得資料技術領域和企業應用領域中的跨界專家來探索。二是企業數字化建設還剛剛開始,很多企業缺失穩定和可靠的資料採集和記錄的過程。如果沒有資料流,自然就不會有大資料應用。因此大資料技術被廣泛應用可能還需要五到十年的時間。
人工智慧(Artificial Intelligence)
人工智慧的概念和基本原理起源早至1950年代。早期的人工智慧研究集中在加州大學伯克利分校,麻省理工,史丹佛和南加州大學等計算機實驗室中。今天已經商業化的神經網路演算法就來自於半個世紀多前麻省理工大學的明斯基教授發表的《感知元》論文,但是計算機算力在當時實在是太弱了,以至於任何計算理論上的假設都很難付諸於現實。因此,在長達五十年的時間內,人工智慧技術都停留在理論研究和一部分不成功的實踐上。
雖然人工智慧領域經歷了漫長的冬天,但它所提出的機器向人類學習,並最終在特定領域能夠做得比人類更好的假設卻是千真萬確的。
千禧年後的AI復甦
2000年以後,有幾大動因推動了人工智慧概念的復興。首先,因為摩爾定律的存在,計算機的運算速度和單位儲存成本均用指數速率發展到一個新的階段。雲端計算和大資料技術也允許計算機用很快的速度處理TB甚至PB級的資料。其次,網路服務的興起在諸多領域生產出豐富的資料,Google,Netflix和Amazon的業務就像資料機器一樣,每分每秒都能產生海量的使用者行為資料。
第三,在人工智慧的數學方法研究中,AT&T貝爾實驗室的三位科學家(Tin Kam Ho, Corinna Cortes, 和 Vladimir Vapnik)在機器學習領域取得了突出的進展。機器學習技術可以將複雜和不確定的非線性問題通過線性的數學公式來解決。在解決不同的問題的過程中,機器學習理論方法和實踐被明確驗證。最早的一批網際網路企業,包括Google,Facebook,Linkedin等在這個過程中既提供了海量資料,也從研究過程中獲得了巨大的成果。尤其是Google,它是機器學習及其分支深度學習領域最重要的信奉者和推動者。2010年,Google成立了Google大腦,一個專注人工智慧研究的內部組織,後來又收購了英國企業DeepMind。後者在2016年3月擊敗了人類圍棋冠軍李世石。
下圖是Tom Siebel在Digitlal Transofrmation一書中對AI技術進化史的一張插圖,顯示了從1950年代開始到現在的主要技術迭代歷史。
機器學習(Machine Learning)
機器學習是推動AI復甦的最重要動力。它的興起標誌著人工智慧很長時間彎路的終結。要想讓機器比人做得更好,並不是依靠人來教機器規則,而是讓機器從歷史資料中學習。比如最常見的機器學習場景——物體識別,要想讓機器從各種照片中找出“貓”,只要讓機器學習各種各樣貓的照片物件。機器學習演算法會將訓練用的貓影像背後的向量特徵總結為一個預測模型,讓這個模型預測任何一張新圖片中包含貓的概率。同樣的道理,語音識別、語言翻譯、人臉識別等都是使用的類似的原理。餵養演算法的資料量越大,通常預測的準確率就越高。
機器學習應用可以分為有監督學習和無監督學習。前者需要人工參與訓練資料的標識,後者則通過數學方法自動聚類出存在相似性的物件。在缺少訓練資料的情況,無監督機器學習就會起到更大的作用。
機器學習的一個分支被稱為深度神經網路(DNN),它的設計已經高度參照了人類大腦神經元的連線結構。在深度神經網路中,資料被輸送到輸入層,結果則從輸出層產生,在輸入層到輸出層之間存在多個隱藏層,每一層會對輸入資料的各個特徵進行推斷,最終能夠得到更為準確的預測結果。打敗李世石的AlphaGo就是一個基於深度神經網路的演算法。但是,DNN對於使用者來說依然是一個黑盒子。設計者並不需要也不會知道神經網路中的每一層到底在判斷什麼具體特徵,以及它是如何分解特徵的。它背後都是高度抽象的數學方法。不管它有多麼玄妙,深度神經網路的確厲害,它不僅具備高超的自學習能力,而且還簡化了傳統機器學習中大量複雜和耗時的特性工程(Feature Engineering,通過行業專有知識來調優機器學習演算法的過程)。
TensorFlow
2015年,Google開源了內部的TensorFlow框架,開始將人工智慧計算框架作為一項雲端計算服務向外界提供。在核心開源庫之後,TensorFlow還陸續推出了Javascript版本,滿足在瀏覽器和Node.js上開發和訓練機器學習模型,以及在移動裝置和IoT裝置上部署的Lite版本。另外,TensorFlow Extended是一個端到端的機器學習生產平臺,它連帶提供了程式設計環境和資料處理工具。
當然,TensorFlow並不是唯一的機器學習框架,Caffe,Torch,Keras等都是。它們無一例外都是開源的。在雲端計算的前沿領域,軟體開源是一個普遍的策略。為什麼如此複雜和高階的軟體都會義無反顧地選擇開源呢?一方面因為框架性產品本身並不直接包含商業價值,價值需要開發者進行二次創造,另一方面,在雲端計算服務的商業模式大前提下,通過API來提供封裝好的人工智慧服務是一個非常容易實現的商業手段。這些開源產品的運營者沒有必要對框架進行收費。
人工智慧服務
事實上,即便你不使用這些機器學習框架,也能直接使用人工智慧服務。國內外雲端計算平臺都已經在通過API提供各色各樣的人工智慧服務。這些服務已經完全封裝成應用開發介面,開發者完全不需要了解和處理複雜的機器學習過程,只要把自己當作使用者就可以了。
但是這些服務都非常具體和專向,並不存在任何通用的AI介面,每個介面只能為使用者解決一類具體問題。以下是阿里雲AI類目下的服務分佈。你可以看出這些服務都和使用者的某一個具體需求有關。比如語音識別可以讓移動開發者開發出讓使用者直接通過語音來控制功能的應用。人臉識別可以識別出影像中的人臉物件和實現身份對比驗證。
提供一次此類服務要收多少錢呢?在雲端計算平臺上,這類AI應用開發介面大多按照次數或者每秒次數級別(QPS)進行收費。比如識別一張身份證上的資訊大約要收取1-5分錢,聽起來不少吧?
實際上,從事人工智慧技術的企業並不僅僅是雲端計算平臺提供商。比如中國市場中,Face++,科大訊飛、商湯科技、寒武紀、優必選等都分別在計算機視覺、語音、機器人等領域有專長。但是它們的專向定位讓這些企業很難提供普遍的開發者服務。因為開發者往往希望在一個雲端計算平臺上獲得一攬子服務,而且使用者的基礎雲資源也是從雲端計算平臺購買的。作為開發者來說,擁有一個統一和完善的應用開發環境是非常重要的。
所以,在人工智慧的商業化中,還有不少企業利用自己的專向技術優勢來解決更加細分的問題。比如科大訊飛主要通過自己在語音和自然語言處理方面的技術積累為教育和司法等行業提供解決方案,中國法院的庭審文字記錄現在很多都是通過自動化的語音轉錄而實現的。商湯科技和曠視科技則主要在智慧城市和安防領域提供軟硬體一體化方案。還有一組創業企業專注於解決高價值的自動駕駛問題,並從中派生出更細分的AI晶片設計和製造企業。
技術棧和人才
AI相關的技術棧是前面介紹的大資料技術的一個擴充套件。也就是說,沒有離得開資料獲取和處理的人工智慧專案。要把如此眾多的開發框架和微服務組合在一起,對於非雲端計算專業企業來說是非常困難的。除了技術棧的複雜性以外,開發者還需要搞定大規模訓練資料的獲取和處理過程,這個成本在短時間內一定會成為牽制企業投入的因素。
成本還是相對容易克服的問題,因為只要問題足夠值錢,有長期主義價值觀的企業總是願意投入。但是更致命的問題在於AI相關人才的激烈競爭。能夠從事AI應用開發的團隊需要包含大資料相關的資料庫專家,深諳數學建模的演算法專家,以及熟練掌握C++或Python等程式語言的高階程式設計師,同時還離不開有技術素養的業務專家參與。而在當下階段,雲端計算巨頭企業和專業企業像吸鐵石一樣吸引走了絕大多數專長人才,讓普通企業根本無從獲取。
考慮到AI技術的複雜性和專業度,它極可能像雲端計算服務一樣,大多數企業都只會成為使用者級別的角色,這就給專業開發者留下了創新的空間,看誰能夠進行足夠合理的抽象,組合出更加易用,面向通用業務場景的AI服務。
物聯網(Internet of Things)
消費產品引爆的物聯網普及
雲端計算服務的普及不僅為使用者提供了彈性伸縮的經濟性,還提供了一個泛在的可連線性。任何計算裝置只要連上網際網路,就彼此通過TCP/IP協議能夠相互訪問。這個互聯價值在物聯網技術發展之前還僅僅限於傳統計算裝置,也就是伺服器和個人計算終端。在個人、家庭和企業世界,還有大量非傳統計算裝置並沒有聯入這個數字化世界。
汽車、家電、個人穿戴裝置、工廠的製造裝置現在都已經有接入網際網路的條件,市場上流通的這些互聯智慧產品也越來越多。當連線的裝置豐富到一定程度的時候,各種智慧化場景才能真正實現。IHS Markit預測到2025年,全球聯網裝置總數量將達到750億個。萬物互聯,正是物聯網技術所追求的願景。
具有數字化連線能力的非常規計算裝置在上個世紀90年代就已經出現,比如可以無線連線的攝像頭。真正具備中長距離連線能力的裝置首先出現在零售和工業製造領域,包括西門子,通用電氣等企業開發的工業裝置互聯協議(M2M)。在當時,這些裝置已經可以通過低速的無線區域網使用IP協議連線到工廠的控制中心。這樣的網路被成為工業乙太網。但當時商業網際網路並沒有開始發展起來,所以M2M的出現只能算作是物聯網技術的區域性發展。
物聯網開始成型還是通過消費產品市場來推動的。2000年代初期,LG率先推出了可以接入網際網路的家電產品,一臺聯網冰箱售價高達20000美元,這顯然無法真正帶動市場。在隨後幾年中,像Garmin GPS和Fitbit智慧手環這樣的消費電子產品開始獲得更大的產銷量,從而帶動相關的低功耗晶片行業發展。到了2011-12年,消費電子領域出現了更多的明星級產品,這其中包括後來被Google收購的家用感測器Nest,Philip推出的Hue智慧燈泡等。在中國市場,以小米為代表的智慧手機廠商開始擴充套件到物聯網產品領域,推出了一系列圍繞個人和家庭的智慧裝置和家庭閘道器產品。蘋果也於2015年正式進入可穿戴產品市場,推出了Apple Watch,後來還推出了智慧音響HomePod。Google和國內的網際網路巨頭企業也都加入了這場通過新型個人數字裝置爭奪使用者和資料的競爭。目前,全球可穿戴產品市場已經多年保持了40%以上的年度增長率。
個人和家庭智慧裝置的量產促進了和物聯網相關的協議發展和元器件成本的降低。在這期間,藍芽5.0,WiFi-6,IPv6,NFC和RFID等關鍵傳輸和通訊協議得到進一步發展,讓裝置能耗和連線速率都進一步提升。在同一時間,雲端計算基礎服務和大資料處理技術也起到了關鍵作用。物聯網裝置往往在短時間內會產生大量資料,如果沒有前文提到的大資料技術棧,傳統的資料庫工具是無法承載的,同時雲端計算也是裝置資料匯聚的海洋,今天幾乎所有的物聯網技術平臺都架構在雲端計算平臺上,他們是典型的互生行業。
物聯網的技術棧
物聯網相關的技術棧非常綜合。它橫跨軟硬體,既包含感知探測相關的硬體技術,也包含網路傳輸和應用構築的軟體技術。直至今天,物聯網相關的技術棧都沒有完全穩定下來,甚至很可能長期保持多元的特徵。但是概括起來,整個技術棧還是有一些層次特徵。
行業一般把物聯網相關的技術架構分解為四層,分別定義為和物理環境相關的裝置感測層、和資料傳輸和通訊有關的網路層,IoT相關的平臺管理層,以及最終實現使用者價值的業務應用層。無論是針對消費市場還是企業市場的物聯網系統都會有這四個層次。
裝置感測層是由各種型別的感測器和可互動訪問的硬體模組及其嵌入式軟體而組成的。例如溫度溼度感測器、攝像頭、電源開關和插座和閘道器等。感測層裝置不僅是單向獲取資料,還可能從外界接受指令改變硬體狀態(比如智慧鎖)。行業內一般把這個層次稱為“邊緣”(Edge)。
裝置感測層的技術棧主要由軟硬體協同開發的嵌入式系統構成。我們用的智慧手機本質上也是一個嵌入式系統,只是它的嵌入度非常完整,甚至不亞於一臺標準計算裝置。嵌入式系統開發經歷了早期的微控制器和嵌入式作業系統/CPU階段,目前最前沿的是SoC(片上系統),把一個專用系統的所有嵌入式軟體完全整合在一個積體電路上。今天的智慧手機、智慧電視等都是由若干個SoC整合而成的。在嵌入式系統中,固化在硬體上的軟體程式甚至依然可以得到更新,而且這種更新目前大多都可以通過連線網際網路實現,這種升級被稱之為OTA (Over-the-air)更新。
另外,裝置感測層還需要解決裝置的訪問協議問題。物聯網系統目前已經廣泛支援IPv6協議。IPv6能夠提供全球的IP地址總量高達2的128次方,這是一個天文數字,可以確保任何物聯網裝置都能夠擁有獨立的IP地址,從而實現在全球的唯一定址。當全球物聯網裝置達到千億,甚至萬億數量級的時候,IPv6功不可沒。
網路傳輸層要解決的是感測裝置和計算裝置之間,以及最終與平臺管理層之間的資料傳輸問題。根據連線性質不同,又可以分為短距、中距和長距型別,以及有線和無線型別。在這些連線協議中,藍芽、NFC、Wi-Fi、無線射頻(RFID)、4G和5G等是比較常用的。這些傳輸協議在裝置側一般都是直接設計在板上系統上的,通過IP協議提供可訪問地址。開發者需要根據連線的距離、速率、功耗和成本等要求做出合理的選擇。
IoT平臺層是物聯網系統中至關重要的部分,它的出現也標誌著基於雲端計算平臺的物聯網系統誕生。一個IoT平臺的核心作用是管理成千上萬的物聯網裝置,包括他們的狀態,資料上報接收,建立對它們的控制,對裝置進行運維分組,並能夠實現從雲端往邊緣側的更新推送(OTA)。同時,物聯網平臺也要借用上文提到的大資料技術棧,對裝置上報資料進行處理,並用各種資料庫完成儲存,這其中比較重要的資料庫型別就是時序資料庫。
更完整的IoT平臺還包括圍繞裝置資料建立自動化工作流的能力,資料分析工具以及為更上層的應用開發提供資料開發介面的設計。
目前,主流雲端計算平臺都專門為客戶提供了物聯網技術平臺,結合基礎雲和大資料相關服務獲取增值業務收入。阿里雲,AWS,Azure和Google Cloud都有專門的解決方案,國內外也有專門的物聯網平臺技術公司將自己的解決方案架構在基礎雲上或者提供跨雲服務。
Oracle,Salesforce和微軟Azure等企業軟體廠商的物聯網平臺不僅提供了上述基礎服務,還結合了自己的企業應用套裝優勢,提供一站式的物聯網應用開發平臺。它們更適合企業物聯網系統建設。
最上一層的應用層是整個物聯網技術架構中最不標準化的部分。應用層最終要將連線的裝置和資料用於具體的商業場景。比如共享充電寶就是一個物聯網系統,它的應用層包含面向C端的租用和支付系統,面向商戶的裝置狀態報告,收益結算系統,以及面向運營部門的裝置運維管理系統。換到另外一個物聯網場景,應用層的構成可能完全不一樣。
邊緣計算和AIoT
物聯網技術架構的基本思路是分層分工,感測層主要取得資料和建立對物理硬體的控制,資料通過網路層和計算平臺連線,計算則在雲端完成。但是隨著物聯網應用場景的豐富,裝置規模的擴大,以及晶片技術的發展,邊緣計算概念開始得到認可。所謂邊緣計算,就是利用裝置端和鄰近閘道器的計算能力處理和儲存資料,減少和雲端的資料傳輸,從而實現更快速的應用響應。除了速度的提升,邊緣計算還能夠大幅減少雲端計算和資料傳輸成本。比如針對一個大型的視訊監控網路,如果攝像頭將所有的視訊流資料都傳輸到雲端,雲端算力要求和成本將會非常高。而如果在攝像頭裝置內部實現必要的視覺計算(比如識別異常),整個物聯網系統的效率將大大提高。再例如廣泛應用的人臉認證和識別系統,如果不能依賴本地的裝置計算能力,十億使用者的高頻度使用將會讓雲平臺不堪重負。
上面兩個例子顯示了邊緣計算往往和人工智慧應用相關,裝置側往往完成的是模式識別類的人工智慧演算法,因此往往需要專門晶片的助力。Nvidia公司推出的Jetson系列模組就是專門為邊緣計算場景而服務的。這些晶片模組被安裝在機器人、自動駕駛汽車等邊緣裝置上,所以這組技術產品也被稱為“自主機器”。因為物聯網和這些人工智慧應用的結合,因此,這套技術方案也常被稱為AIoT。
應用領域
如果把2012年前後作為基於雲端計算的物聯網平臺技術發展開端的年份,僅僅八年左右的時間,物聯網應用領域已經發展得非常廣泛。只是我們身在其中,享受它帶來的便利,並不一定能夠感知它的存在。這個高速發展過程很大程度上受益於基礎雲端計算服務和大資料技術棧的同步發展。
在消費應用領域,個人穿戴裝置已經從手錶、手環發展到耳環戒指這樣的雜項。在智慧家居領域,我們可見的家電、門鎖、照片、開關、音響等都已經是網際網路裝置。在個人和家庭領域,物聯網技術競爭已經不再重要,競爭的焦點已經遷移到內容生態和使用者網路效應。在這些領域,蘋果、谷歌和國內的華為、小米等已經牢牢佔據了領先地位。小米生態鏈重點指的就是依託米家體系的一群消費電子產品企業。
在工業、農業、交通運輸、能源和社會管理領域,物聯網的應用場景更為廣泛。我們的街道上已經密佈了各種攝像頭,這些攝像頭通過專門網路構築了天眼系統;我們頭頂上的電力傳輸網路和用電單位終端也已經完成了智慧電網改造;礦場和工地上也都佈滿了各種安全監控裝置。這些都是最近十年來重大的IT投資。預計未來十年這樣的建設和更新依然不會結束。
雲端計算的未來
本文主要是對雲端計算過去十五年的一個回顧。技術領域的發展速度是如此之快,以至於我們很難預測未來的十五年會發生什麼。在本文的最後,我僅僅對當下已經呈現的雲端計算市場趨勢做一些簡單的概括,它們甚至已經在發生,但我們不知道這些技術趨勢的發展具體會顛覆哪些巨頭,會催生出哪些明星。
- 儲存和計算的成本將進一步下降,但消耗會同步增長。考慮到全球範圍內的計算服務還有大量沒有轉移到雲端計算環境中,未來十年基礎雲服務的算力還會大量增加,服務單價會持續下降。
- 前沿技術將持續融合到雲端計算平臺,包括量子計算、AR/VR、區塊鏈等。尤其是那些依賴海量資料計算能力和彈性計算資源的應用,雲端計算是成就它們更快成長速度的軌道。
- 雲端計算的核心競爭將聚焦在應用開發環境的優越性上。誰能夠提供廉價、完善和前沿的開發技術棧環境,誰就能夠獲得更多的開發者使用者。當開發者使用者選擇了雲服務商後,他們其實就為終端使用者做出了選擇。
- 多雲、或稱混合雲環境成為長期的企業應用策略,雲端計算使用者將綜合使用邊緣、各個雲端計算服務商和自有IT設施。
- 雲端計算開發技術棧會越來越複雜,這會讓應用開發領域的分工更加明確。面向終端使用者的應用開發將變得更加簡潔,應用生成的方式會越來越多元,無需編碼,依靠普通業務使用者建立應用程式的服務商會越來越多。
本文作者是明道雲創始人,明道雲是一個零程式碼應用平臺廠商,通過視覺化方式幫助企業使用者建立中後臺企業應用,具備快速搭建,靈活調整,資料貫通和簡單易學的特點。
相關文章
- 雲端計算開發學習教程,簡單介紹雲端計算
- 【雲端計算】雲端計算六大優點簡單說明
- 邊緣雲端計算簡介
- 初識雲端計算:歷史、服務、架構架構
- 計算機發展簡史計算機
- 計算機網路簡史計算機網路
- 學習雲端計算簡單嗎?專科生學習雲端計算就業前景如何?就業
- 計算機極簡發展史計算機
- 【雲端計算小知識】什麼是雲端計算?雲端計算特點是什麼?
- 什麼叫雲端計算?雲端計算通俗解釋
- 雲端計算和Linux什麼關係?linux雲端計算Linux
- 雲端計算開發教程,雲端計算能幹什麼?
- 什麼叫做雲端計算?學習雲端計算先要理解
- 邊緣計算與雲端計算
- 什麼是雲端計算雲端計算能幹什麼?雲端計算學習筆記工具素材筆記
- 簡單介紹雲端計算的容器技術
- 雲端計算素材、課件:雲端計算可以做什麼用?
- 什麼是雲端計算?雲端計算學習方向有哪些?
- 雲端計算架構架構
- python雲端計算1Python
- 瞭解“雲端計算”
- 雲端計算的前身
- 雲端計算基礎
- 雲端計算 = “潘多拉”?
- 雲端計算的前景
- 分散式雲端計算分散式
- 小白怎麼學習雲端計算?雲端計算學習大綱
- 雲端計算影片教程:2020年雲端計算學習路線圖
- 學習雲端計算怎麼入門,如何學習雲端計算?
- 雲端計算管理的功能是什麼?Linux雲端計算學習Linux
- 什麼叫做雲端計算?雲端計算基礎學習路線
- 雲端計算面試題及答案,AWS雲端計算面試題面試題
- 雲端計算都有哪些特點?展望雲端計算的發展前景
- 學習雲端計算哪裡好?雲端計算新的前景出路
- 初入雲端計算行業,可以考取哪些雲端計算證書?行業
- 【雲端計算】雲端計算四個必學知識看這裡!
- 【雲端計算】從事雲端計算運維可以考取哪些證書?運維
- 雲端計算:雲端計算是怎麼分類的?