云計(jì)算從 aws 初創(chuàng)時(shí)的牛刀小試到如今巨大的行業(yè)和生態(tài),從新鮮詞匯變?yōu)榱餍姓Z(yǔ),它的十年發(fā)展經(jīng)歷了哪些階段?每個(gè)階段分別創(chuàng)造和發(fā)展了什么?未來(lái)云計(jì)算又將朝著哪些方向繼續(xù)前行?此文系 qcon 十周年特別策劃《技術(shù)十年》系列文章,旨在通過(guò)回顧技術(shù)發(fā)展總結(jié)最佳實(shí)踐、為開(kāi)發(fā)者啟發(fā)技術(shù)新思路。本文篇幅較長(zhǎng),建議您可以先收藏,再細(xì)細(xì)品讀。
來(lái)源寫在前面
科學(xué)技術(shù)的革新始終在推動(dòng)時(shí)代巨輪轟鳴向前。云計(jì)算,已經(jīng)走過(guò)十余年的風(fēng)雨歷程,從 aws 初創(chuàng)立時(shí)的牛刀小試,到如今成長(zhǎng)為一個(gè)巨大的行業(yè)和生態(tài),堪稱是新世紀(jì)以來(lái)最偉大的技術(shù)進(jìn)步之一。“云計(jì)算”這個(gè)術(shù)語(yǔ),也早已從一個(gè)新鮮詞匯,成為了婦孺皆知的流行語(yǔ)。十年荏苒,風(fēng)云變幻,值此 infoq 中國(guó)籌劃發(fā)表十周年系列回顧文章之際,我們正可憶昔撫今,回顧和感受云計(jì)算領(lǐng)域的發(fā)展與變革。
任何事物的誕生和發(fā)展一定有其前提條件和土壤,云計(jì)算亦是如此。記得在世紀(jì)初的大學(xué)課堂上,教授們頗為推崇網(wǎng)格計(jì)算理論,該理論事實(shí)上已經(jīng)充分體現(xiàn)了計(jì)算資源分布式協(xié)作和統(tǒng)一管理的先進(jìn)思想??上ЬW(wǎng)格計(jì)算過(guò)于學(xué)術(shù)化,最終是更接地氣也更宏大的云計(jì)算橫空出世,震動(dòng)了整個(gè) it 業(yè)界。
那么,云計(jì)算誕生及蓬勃發(fā)展的原因是什么呢?在筆者看來(lái),主要有三大因素,分別是相關(guān)軟硬件技術(shù)的成熟、巨大的社會(huì)價(jià)值和偉大的商業(yè)模式。
所謂 軟硬件技術(shù)的成熟,指的是在技術(shù)和工程層面,構(gòu)建云計(jì)算平臺(tái)的條件開(kāi)始陸續(xù)具備,主要包括超大規(guī)模數(shù)據(jù)中心建設(shè)、高速互聯(lián)網(wǎng)絡(luò),以及計(jì)算資源虛擬化 (hypervisor) 和軟件定義網(wǎng)絡(luò) (sdn) 技術(shù)的不斷發(fā)展和成熟——這些基礎(chǔ)能力構(gòu)成了云計(jì)算發(fā)展的技術(shù)前提;
所謂 巨大的社會(huì)價(jià)值,指的是從用戶角度出發(fā),云計(jì)算的采用使任意組織和個(gè)人得以站在巨人的肩膀上開(kāi)展業(yè)務(wù),避免重復(fù)造輪,極大提高了軟件與服務(wù)構(gòu)建各環(huán)節(jié)效率,加速了各類應(yīng)用的架構(gòu)和落地,而云端按需啟用和隨意擴(kuò)展的資源彈性,也能夠?yàn)槠髽I(yè)節(jié)省巨大成本;
所謂 偉大的商業(yè)模式,指的是云計(jì)算的產(chǎn)品和服務(wù)形態(tài)非常適合新時(shí)代的 b 端需要,訂閱制和 pay-as-you-go 的計(jì)費(fèi)方式大幅降低了客戶的進(jìn)入門檻,而技術(shù)基礎(chǔ)設(shè)施架構(gòu)方面的穩(wěn)定性需要又帶來(lái)了較高的客戶粘性,再加上多租戶高密度數(shù)據(jù)中心所能帶來(lái)的規(guī)模效應(yīng),這些因素使得云計(jì)算能夠成為一門好的生意,對(duì)應(yīng)著一個(gè)極佳的 b 端商業(yè)模式。
這三者缺一不可,共同促成了云計(jì)算的興起與繁榮,也吸引了不計(jì)其數(shù)的業(yè)界精英投入其中,是為云計(jì)算取之不竭的源動(dòng)力。
當(dāng)然,同任何新生事物一樣,云計(jì)算行業(yè)的發(fā)展也并非一帆風(fēng)順。從早期被指責(zé)為“新瓶裝舊酒” 的概念炒作,到對(duì)云上數(shù)據(jù)隱私問(wèn)題的擔(dān)憂,再到對(duì)各類公有云線上偶發(fā)事故的譏諷和嘲笑,云計(jì)算的成長(zhǎng)亦伴隨著各種挑戰(zhàn)和質(zhì)疑。其中部分負(fù)面反饋實(shí)質(zhì)上還是由于使用不當(dāng)或偏離最佳實(shí)踐造成,也讓云計(jì)算背負(fù)了不少 “冤屈” 和罵名。所幸瑕不掩瑜,云計(jì)算的先進(jìn)性終究讓發(fā)展的主旋律蓋過(guò)了干擾與雜音,配合其本身持續(xù)的改進(jìn),越來(lái)越多地得到客戶的認(rèn)可,市場(chǎng)規(guī)模也不斷擴(kuò)大。
本文會(huì)試圖從普通開(kāi)發(fā)者及實(shí)踐者的視角來(lái)回顧云計(jì)算的偉大歷程。因篇幅所限,所討論的范疇將聚焦于公有云,以 iaas 和 paas 層面的技術(shù)演進(jìn)為主。
01
萌芽時(shí)代
2008 – 2011
事實(shí)上,云計(jì)算行業(yè)的開(kāi)端較難精準(zhǔn)定義。一般認(rèn)為,亞馬遜 aws 在 2006 年公開(kāi)發(fā)布 s3 存儲(chǔ)服務(wù)、sqs 消息隊(duì)列及 ec2 虛擬機(jī)服務(wù),正式宣告了現(xiàn)代云計(jì)算的到來(lái)。而如果從行業(yè)視角來(lái)看,我們也不妨視 2008 年為另一個(gè)意義上的云計(jì)算元年。
因?yàn)樵谶@一年,當(dāng) aws 證明了云是可行業(yè)務(wù)之后,越來(lái)越多的行業(yè)巨頭和玩家注意到這塊市場(chǎng)并開(kāi)始入局:微軟在 pdc2008 上宣布 windows azure 的技術(shù)社區(qū)預(yù)覽版,正式開(kāi)始微軟眾多技術(shù)與服務(wù)托管化和線上化的嘗試;google 恰好也在 2008 年推出了 google app engine 預(yù)覽版本,通過(guò)專有 web 框架允許開(kāi)發(fā)者開(kāi)發(fā) web 應(yīng)用并部署在 google 的基礎(chǔ)設(shè)施之上,這是一種更偏向 paas 層面的云計(jì)算進(jìn)入方式;而眾所周知,國(guó)內(nèi)的云計(jì)算標(biāo)桿阿里云也是從 2008 年開(kāi)始籌辦和起步——可見(jiàn)是從 2008 年起,云計(jì)算的時(shí)代大幕逐步拉開(kāi),開(kāi)始形成一個(gè)真正的多元化市場(chǎng),并隨著眾多巨頭的加入開(kāi)始良性競(jìng)爭(zhēng)。
在云計(jì)算興起之前,對(duì)于大多數(shù)企業(yè)而言,硬件的自行采購(gòu)和 idc 機(jī)房租用是主流的 it 基礎(chǔ)設(shè)施構(gòu)建方式。除了服務(wù)器本身,機(jī)柜、帶寬、交換機(jī)、網(wǎng)絡(luò)配置、軟件安裝、虛擬化等底層諸多事項(xiàng)總體上需要相當(dāng)專業(yè)的人士來(lái)負(fù)責(zé),作調(diào)整時(shí)的反應(yīng)周期也比較長(zhǎng)——相信許多研發(fā)負(fù)責(zé)人都有過(guò)等待服務(wù)器到位的經(jīng)歷。云的到來(lái),突然給出了另一種高效許多的方式:只需輕點(diǎn)指尖或通過(guò)腳本即可讓需求方自助搭建應(yīng)用所需的軟硬件環(huán)境,并且根據(jù)業(yè)務(wù)變化可隨時(shí)按需擴(kuò)展和按量計(jì)費(fèi),再加上云上許多開(kāi)箱即用的組件級(jí)服務(wù),這對(duì)許多企業(yè)來(lái)說(shuō)有著莫大的吸引力。netflix 就是早期云計(jì)算的擁抱者和受益者,該公司在 2010 年成功地全面遷移到 aws,堪稱是云計(jì)算史上最著名的案例之一。
技術(shù)產(chǎn)品上看,早期的云上產(chǎn)品組合雖然還比較單薄,也存在一些限制,但計(jì)算和存儲(chǔ)分離的核心理念已經(jīng)得到初步確立,并深刻影響了基于云上應(yīng)用程序的架構(gòu)模式。
具體來(lái)說(shuō),該理念一方面體現(xiàn)在云廠商紛紛將存儲(chǔ)服務(wù)開(kāi)辟為獨(dú)立的產(chǎn)品類別,通過(guò)如 aws s3、azure storage、阿里云 oss 等服務(wù)清晰剝離了二進(jìn)制對(duì)象與文件的負(fù)載與管理,并且提供了豐富的接口和 api 以供應(yīng)用程序進(jìn)行集成;另一方面,在虛擬機(jī)層面基于網(wǎng)絡(luò)存儲(chǔ)的托管磁盤服務(wù)也得到了大力發(fā)展和推廣,如 aws 的 ebs、azure 的 page blob(后封裝為 managed disk)以及阿里云的塊存儲(chǔ)(云盤),此類托管磁盤既很好地保障了數(shù)據(jù)可靠性,又提供了豐富的容量和性能級(jí)別選擇,使得云上虛擬機(jī)的計(jì)算和存儲(chǔ)充分解耦,在這兩方面都能夠獨(dú)立擴(kuò)展和調(diào)節(jié)。
在云計(jì)算的萌芽時(shí)期,另一個(gè)有趣現(xiàn)象是當(dāng)時(shí)“云計(jì)算”和“大數(shù)據(jù)”糾纏不清的關(guān)系。可能是由于發(fā)展歷程上幾乎同期興起,以及在大規(guī)模數(shù)據(jù)存儲(chǔ)與計(jì)算上的確存在能力交集,兩者的概念和定義一度容易互相混淆。早年筆者曾購(gòu)買過(guò)一本很不錯(cuò)的 hadoop 技術(shù)書籍,其副標(biāo)題卻是“開(kāi)啟通向云計(jì)算的捷徑”,可見(jiàn)早期云計(jì)算的定義曾有較為模糊的階段。當(dāng)然,隨著后續(xù)的時(shí)代發(fā)展,這樣的歧義越來(lái)越少見(jiàn)了,云計(jì)算已多特指提供各類云端服務(wù)與組件的軟硬一體化技術(shù)資源平臺(tái),是一個(gè)帶有明確商業(yè)模式的綜合性載體,而大數(shù)據(jù)則是技術(shù)上處理大體量數(shù)據(jù)的方法論和實(shí)現(xiàn),主要是一種技術(shù)體系——所以兩者各自獨(dú)立又可互相依存,比如各云計(jì)算廠商都陸續(xù)推出了云上大數(shù)據(jù)分析服務(wù),如 aws 的 emr、azure 的 hdinsight、阿里云的 e-mapreduce,本質(zhì)上正是開(kāi)源大數(shù)據(jù)技術(shù)在云上的實(shí)現(xiàn)和適配。
02
探索時(shí)代
2011 – 2014
當(dāng)云計(jì)算玩家們紛紛入場(chǎng)并確認(rèn)大舉投入的戰(zhàn)略后,行業(yè)進(jìn)入了精彩的探索時(shí)代。這一時(shí)期的各朵云在產(chǎn)品技術(shù)層面進(jìn)行了許多有益嘗試,雖然免不了在個(gè)別方向上走些彎路乃至經(jīng)受挫折,但總體而言云端服務(wù)的能力與質(zhì)量取得了相當(dāng)大的進(jìn)步和提升,也為云計(jì)算贏得了越來(lái)越多的關(guān)注和喝彩。
首先,iaas 層面繼續(xù)圍繞虛擬機(jī)為核心得到穩(wěn)扎穩(wěn)打的推進(jìn)和增強(qiáng)。更強(qiáng)更新的 cpu 帶來(lái)了云上虛擬機(jī)計(jì)算能力的提升和換代自不必說(shuō),早期機(jī)型內(nèi)存相對(duì)偏小的問(wèn)題也隨著新機(jī)型的推出逐步得到解決,新上云端的 ssd 磁盤更是讓機(jī)器性能如虎添翼。廠商們不約而同地形成了通用型、計(jì)算型、內(nèi)存型等多個(gè)虛擬機(jī)系列,通過(guò)將不同 cpu與 iaas 的高歌猛進(jìn)相比,paas 的發(fā)展在這一時(shí)期則顯得多少有些落寞,尤其是從希望從頂層應(yīng)用框架入手來(lái)推廣云的方式一直不溫不火,沒(méi)有得到太多的關(guān)注。例如前面我們提到的 google app engine,經(jīng)過(guò)幾年發(fā)展后技術(shù)上其實(shí)頗為扎實(shí),除 python 外也添加了 javapaas 中的另一重要分支——泛數(shù)據(jù)庫(kù)類服務(wù)(亦稱 dbaas)則得到了快速的發(fā)展。由于數(shù)據(jù)庫(kù)服務(wù)較為標(biāo)準(zhǔn)化,又是應(yīng)用程序中不可或缺的重要組成,因此很快得到了廣泛支持和采用。這里的典型代表有 amazon rds、阿里云 rds、azure sql databases 和 azure database for mysql03
發(fā)展時(shí)代
2014 – 2018
當(dāng)整個(gè)云計(jì)算行業(yè)一定程度走過(guò)蹣跚探索時(shí)期之后,開(kāi)創(chuàng)者們積累了越來(lái)越多的經(jīng)驗(yàn),對(duì)市場(chǎng)反饋和客戶需求有了更清晰的了解與洞察,業(yè)務(wù)模式與商業(yè)運(yùn)營(yíng)也駕輕就熟起來(lái)——云計(jì)算行業(yè)終于進(jìn)入高速發(fā)展時(shí)代。在這一時(shí)期,不論是總體市場(chǎng)規(guī)模,還是云計(jì)算的產(chǎn)品與服務(wù),都得到了極大的增長(zhǎng)和豐富。
首先,iaas 方面的繼續(xù)進(jìn)步體現(xiàn)在服務(wù)的特異性和多樣性上,不斷推出細(xì)分領(lǐng)域和特定場(chǎng)景下適用的虛擬機(jī)實(shí)例:如基于物理隔離的專屬實(shí)例、可運(yùn)行 sap hana 等大型負(fù)載的超高配實(shí)例、采用 cpu 積分制的性能突增實(shí)例、適用于機(jī)器學(xué)習(xí)與 ai 的