云計算領域的發展與變革
萌芽時代 2008—2011
事實上,云計算行業的開端較難精準定義。一般認為,亞馬遜 AWS 在 2006 年公開發布 S3 存儲服務、SQS 消息隊列及 EC2 虛擬機服務,正式宣告了現代云計算的到來。
而如果從行業視角來看,我們也不妨視 2008 年為另一個意義上的云計算元年。因為在這一年,當 AWS 證明了云是可行業務之后,越來越多的行業巨頭和玩家注意到這塊市場并開始入局:
◆微軟在 PDC2008 上宣布 Windows Azure 的技術社區預覽版,正式開始微軟眾多技術與服務托管化和線上化的嘗試;
◆Google 恰好也在 2008 年推出了 Google App Engine 預覽版本,通過專有 Web 框架允許開發者開發 Web 應用并部署在 Google 的基礎設施之上,這是一種更偏向 PaaS 層面的云計算進入方式;
◆而眾所周知,國內的云計算標桿阿里云也是從 2008 年開始籌辦和起步——可見是從 2008 年起,云計算的時代大幕逐步拉開,開始形成一個真正的多元化市場,并隨著眾多巨頭的加入開始良性競爭。
在云計算興起之前,對于大多數企業而言,硬件的自行采購和 IDC 機房租用是主流的 IT 基礎設施構建方式。除了服務器本身,機柜、帶寬、交換機、網絡配置、軟件安裝、虛擬化等底層諸多事項總體上需要相當專業的人士來負責,作調整時的反應周期也比較長——相信許多研發負責人都有過等待服務器到位的經歷。
云的到來,突然給出了另一種高效許多的方式:只需輕點指尖或通過腳本即可讓需求方自助搭建應用所需的軟硬件環境,并且根據業務變化可隨時按需擴展和按量計費,再加上云上許多開箱即用的組件級服務,這對許多企業來說有著莫大的吸引力。Netflix 就是早期云計算的擁抱者和受益者,該公司在 2010 年成功地全面遷移到 AWS,堪稱是云計算史上最著名的案例之一。
技術產品上看,早期的云上產品組合雖然還比較單薄,也存在一些限制,但計算和存儲分離的核心理念已經得到初步確立,并深刻影響了基于云上應用程序的架構模式。具體來說,該理念一方面體現在云廠商紛紛將存儲服務開辟為獨立的產品類別,通過如 AWS S3、Azure Storage、阿里云 OSS 等服務清晰剝離了二進制對象與文件的負載與管理,并且提供了豐富的接口和 API 以供應用程序進行集成;另一方面,在虛擬機層面基于網絡存儲的托管磁盤服務也得到了大力發展和推廣,如AWS的EBS、Azure的Page Blob(后封裝為 Managed Disk)以及阿里云的塊存儲(云盤),此類托管磁盤既很好地保障了數據可靠性,又提供了豐富的容量和性能級別選擇,使得云上虛擬機的計算和存儲充分解耦,在這兩方面都能夠獨立擴展和調節。
在云計算的萌芽時期,另一個有趣現象是當時“云計算”和“大數據”糾纏不清的關系??赡苁怯捎诎l展歷程上幾乎同期興起,以及在大規模數據存儲與計算上的確存在能力交集,兩者的概念和定義一度容易互相混淆。早年筆者曾購買過一本很不錯的 Hadoop 技術書籍,其副標題卻是“開啟通向云計算的捷徑”,可見早期云計算的定義曾有較為模糊的階段。
當然,隨著后續的時代發展,這樣的歧義越來越少見了,云計算已多特指提供各類云端服務與組件的軟硬一體化技術資源平臺,是一個帶有明確商業模式的綜合性載體,而大數據則是技術上處理大體量數據的方法論和實現,主要是一種技術體系——所以兩者各自獨立又可互相依存,比如各云計算廠商都陸續推出了云上大數據分析服務,如 AWS 的 EMR、Azure 的 HDInsight、阿里云的 E-MapReduce,本質上正是開源大數據技術在云上的實現和適配。
探索時代 2011—2014
當云計算玩家們紛紛入場并確認大舉投入的戰略后,行業進入了精彩的探索時代。這一時期的各朵云在產品技術層面進行了許多有益嘗試,雖然免不了在個別方向上走些彎路甚至經受挫折,但總體而言云端服務的能力與質量取得了相當大的進步和提升,也為云計算贏得了越來越多的關注和喝彩。
首先,IaaS 層面繼續圍繞虛擬機為核心得到穩扎穩打的推進和增強。更強更新的 cpu 帶來了云上虛擬機計算能力的提升和換代自不必說,早期機型內存相對偏小的問題也隨著新機型的推出逐步得到解決,新上云端的 SSD 磁盤更是讓機器性能如虎添翼。廠商們不約而同地形成了通用型、計算型、內存型等多個虛擬機系列,通過將不同 CPU/ 內存比例搭配的機型擺上貨架,給予不同應用程序負載以更多選擇。當筆者瀏覽這些琳瑯滿目的機型列表和參數時,恍惚間猶如來到了當年熱鬧的中關村 IT 賣場,頗有在云端“攢機”的奇妙感覺。
同屬基礎設施的存儲類服務在初期得到了市場歡迎和認可之后,也同樣迎來了大發展。原有功能得以細化,通過引入冷、熱乃至存檔的各級分層,進一步凸顯成本優勢。為了彌補托管磁盤在跨機器文件共享方面的不足,類似 NFS 的文件存儲類服務也逐步成為了云上標配,如 AWS 的 EFS、Azure 的 Azure Files 及阿里云 NAS 等,進一步把計算存儲分離架構發揮到極致,大大方便了某些場景下的架構與實現。
與 IaaS 的高歌猛進相比,PaaS 的發展在這一時期則顯得多少有些落寞,尤其是從希望從頂層應用框架入手來推廣云的方式一直不溫不火,沒有得到太多的關注。例如前面我們提到的 Google App Engine,經過幾年發展后技術上其實頗為扎實,除 Python 外也添加了 JAVA/Go 等更多語言的支持,亦可與 Google 其他基礎設施無縫集成,但就市場而言總是處于叫好不叫座的狀態;國內率先實踐此模式的廠商是新浪 SAE,上線之初頗受關注,亮點在于支持 PHP 語言及集成 MySQL,可惜多年運營亦未達到火爆狀態;阿里云也曾推出相似的 ACE 服務對此類產品形態進行嘗試,后也于 2016 年下線——究其原因,恐怕還是因為 App Engine 類服務本質上是相對受限的環境,平臺的技術約束和綁定較強,出問題時也較難進行深入排查所致。
這揭示了云的用戶固然喜歡技術實現上的便利和平臺抽象,但也同樣渴求技術靈活性、可移植性和自我掌控。在后來的 Web 類 PaaS 服務中,我們看到業界調整了策略:更多地定位為通用運行平臺并著力于自動擴容和負載監控等專業增值服務,盡可能解除技術、語言和框架層面的限制,如 AWS 的 Elastic Beanstalk、Azure 的 App Service 等;另一種發展思路則徹底輕量化,主要面向中小客戶推廣較為經濟的建站服務,以滿足入門級托管需求。
所幸,PaaS 中的另一重要分支——泛數據庫類服務(亦稱 DBaaS)則得到了快速的發展。由于數據庫服務較為標準化,又是應用程序中不可或缺的重要組成,因此很快得到了廣泛支持和采用。這里的典型代表有 Amazon RDS、阿里云 RDS、Azure SQL Databases和 Azure Database for MySQL/PostgreSQL等。
與自行使用虛擬機搭建相比,云上數據庫一鍵式的創建過程,自帶的高可用性和自動備份,可謂省心省力;豐富的性能等級選項更是可根據實際負載選擇和調節,實現了成本的最優化控制。除此之外,由于云上數據庫按時間及容量計費的輕量特點,也給予了一些優質企業級數據庫以重要的展示和售賣渠道,降低了企業的評估和嘗試成本:例如,原本只能以昂貴的一體機方式售賣的 MPP 數據庫 SQL Server Parallel Data Warehouse (PDW),微軟將其徹底云化之后以 Azure SQL Data Warehouse 的產品形態發布,改變了其養在深閨人未識的狀態,使得相關技術讓普通開發人員觸手可及,也無疑大大增加了在整體數據架構中的采用可能。
讓我們回到宏觀視角。在這一百家爭鳴的探索時期,令人可喜的是中國云計算真正如火如荼地發展了起來。除了早期入場的阿里云和盛大云,騰訊、百度及三大運營商等各路巨頭也都先后布局試水,并紛紛把“云”的品牌從一度紅火的個人網盤服務讓位于企業級云計算;微軟 Azure 也于 2014 年在中國正式商用,標志著外資廠商開始參與國內市場競爭。值得一提的是,這段時期獨立云計算企業 UCloud、七牛云、青云等都相繼創立,分別以極具特色的產品服務和強大的自主研發能力,為中國云計算發展書寫了濃墨重彩的篇章,使得國內云計算市場更加精彩紛呈。
發展時代 2014—2018
當整個云計算行業一定程度走過蹣跚探索時期之后,開創者們積累了越來越多的經驗,對市場反饋和客戶需求有了更清晰的了解與洞察,業務模式與商業運營也駕輕就熟起來——云計算行業終于進入高速發展時代。在這一時期,不論是總體市場規模,還是云計算的產品與服務,都得到了極大的增長和豐富。
首先,IaaS 方面的繼續進步體現在服務的特異性和多樣性上,不斷推出細分領域和特定場景下適用的虛擬機實例:如基于物理隔離的專屬實例、可運行 SAP HANA 等大型負載的超高配實例、采用 CPU 積分制的性能突增實例、適用于機器學習與 AI 的 gpu 實例等。此類細分服務在云端出現的背后,是不少廠商針對性地研發和定制了適用于云的專屬配套硬件。這些新一代的服務器不僅是簡單的配置升級,而且在設計之初就是為云端負載而生,與云計算產品理念及底層軟件技術棧高度融合匹配。另外在虛擬機計費規則方面,除了經典的按使用時長計費方式,各廠商也相繼推出更為靈活的計費模式:包年包月、預留實例、競價實例等,可有效幫助降低使用成本。這些 IaaS 方面的諸多進展,進一步滿足了各場景的細分需求,減少了許多客戶的上云阻礙。
在存儲服務方面,云計算的步伐也在加快,除立足于核心對象存儲服務的增強外,開始以一體化方式進攻部分垂直市場,擠占傳統廠商的市場空間。最典型的例子莫過于 CDN:阿里云自 2015 年起在 CDN 領域大舉擴張,多次主動大幅降價搶占市場,其他云計算廠商也紛紛跟進,這是原本波瀾不驚的 CDN 領域的標志性事件。面對云計算廠商的競爭,網宿、藍汛等老牌 CDN 廠商頓時立感壓力,市場份額也開始發生相應變化。在國外,AWS CloudFront 和 Azure CDN 等云服務同樣與 Akamai 這樣的傳統巨頭進行著激烈角逐。當然,得益于 CDN 的架構融合特性,傳統廠商也可選擇與云廠商合作,從上游的基礎設施方面作為云的供應商存在,不失為合作共贏之道。但無論如何,事實說明云的參與和擠壓是相關市場發展的必然趨勢。而且從技術層面來看,服務之間的一體化協同效應是云計算廠商進入 CDN 這樣的單一領域的獨到優勢。例如,云廠商的 CDN 可以與自家的對象存儲服務聯動,用戶只需要輕點鼠標,即可將對象存儲中的文件映射至云 CDN 的邊緣節點網絡來對外服務,免去了搭建傳統回源站點的麻煩。
PaaS 方面在這個大發展時代也找到了崛起之道,不再尋求大一統的應用程序框架,而是更多提供標準的可復用中間件,并與其他 IaaS/PaaS 設施進行組合與聯動——這一思路迅速得到開發者和架構師們的歡迎,隨著特性完善其采用率開始穩步上升。典型的例子包括 API 網關、負載均衡器、消息隊列等。
更進一步地,這一階段的 PaaS 服務在與 IaaS 虛擬網絡集成方面有了較大進步——這是以往 PaaS 服務常為人詬病的短板,即只提供面向互聯網的公開端口,游離于 IaaS 的虛擬網絡和架構體系之外——這一現狀也通過兩種方式得到了相當程度的解決:一種可稱之為 PaaS-in-VNet,即允許 PaaS 服務直接部署到現成的虛擬網絡之上,例如 Azure 上的 App Service Environment (ASE),就是將 App Service 部署到私有虛擬網絡的服務形式;另一種方式則是所謂 PaaS-to-VNet,為 PaaS 與虛擬網絡之間提供私有通道,在不開放公開訪問的情況下允許雙向網絡互通,同樣以 Azure App Service 為例,用戶可通過開啟服務內置的 VNet Integration 特性來配置與私有網絡的安全通信。可以看到,無論是 PaaS-in-VNet 還是 PaaS-to-VNet,其本質都是試圖解決 PaaS 和 IaaS 的融合問題,這無疑增加了 PaaS 在整體架構中被采納的可能。
勢頭頗佳的 DBaaS 方面的進展,主要體現為從經典關系型數據庫拓展到新興的各類 NoSQL 數據庫及大數據領域的云服務。MongoDB、Redis、Kafka、ElasticSearch——這些耳熟能詳的開源數據庫,我們幾乎能在每一個云上找到其對應的托管服務,輕松地一鍵搭建所需集群。云上數據庫的開箱即用是如此的便捷與誘人,不斷獲得市場,甚至引起了開源廠商的不滿:MongoDB 近期將開源協議從 AGPL 調整為新推出的 SSPL,是一時關注度頗高的社區新聞,其矛頭正是直指開源軟件被直接包裝為云服務牟利的狀況(部分網友戲稱此為“插管吸血”)。
在此,我們對各方抱有商業目的的行為不做傾向性評價,但從產品技術層面來講,實力雄厚的云廠商并不乏應對之道:一是基于開源版本作分叉并開始自行維護和迭代,二是完全自行實現數據內核和引擎,僅在客戶端協議方面與主流數據庫進行兼容。目前,后者這類自研云數據庫越來越成為一種新趨勢:廠商可以放開手腳,充分利用云的特點進行重新設計,同時又兼容流行協議,這一方式迅速取得了市場和開發者認同,此類數據庫的杰出代表是 AWS Aurora 和 Azure CosmosDB。其中 AWS Aurora 完全兼容最流行的 MySQL,同時實現了計算存儲的高度分離和近乎無限的擴展,而 Azure CosmosDB 則是一款多模式數據庫服務,提供 SQL、MongoDB、Cassandra、Gremlin 等多種開放協議或查詢語言的兼容,同時實現了全球分布、按需擴容、一致性保障等特性。
所以,無論是 Aurora 還是 CosmosDB,一經推出都迅速攻城略地,取得了不俗的戰果。在國內,以阿里、騰訊為代表的大廠商也同樣在自研數據庫方面不斷加碼,陸續推出了阿里云 PolarDB、騰訊云 CynosDB 等重磅服務。
在這樣的局面下,也許開源軟件廠商可以參考同為創業公司的 DataBricks 的做法。DataBricks 作為大數據處理領域事實標準 Spark 框架的實際掌舵者,一方面主導把控 Spark 開源版本不斷進步,另一方面也開始推出性能更佳、交付節奏更快的商業版本 Databricks Runtime。更重要的是,Databricks 積極地同云廠商合作,將自身的解決方案融入到公有云平臺之中,成為了平臺上原生的 PaaS 服務,例如與微軟深度合作推出的 Azure Databricks。盡管云上已有基于純開源方案的大數據服務如 AWS EMR 和Azure HDInsight,但基于 Databricks 商業級解決方案的 PaaS 服務有自己獨到的優勢和特點,已初步獲得了不錯的發展勢頭。
我們由衷希望,出色的開源軟件公司能夠像 DataBricks 這樣尋找到一種與云合作共贏的商業模式,畢竟業界既需要一站式的整合平臺,又應當保護開源與創新的良性環境。
容器與微服務,可以說是近年最重要的技術趨勢之一。作為新技術的擁抱者和試驗田,公有云自然不會袖手旁觀。事實上各大云在容器服務方面的嘗試由來已久,在早期廠商們就各自推出了如 AWS ECS、Azure ACS、阿里云容器服務等基礎設施,提供基于底層 IaaS 的容器運行環境,同時包含開源或自研的編排引擎。而當 Kubernetes 在編排大戰中逐步勝出并成為事實標準后,各大廠商又不約而同地對 Kubernetes 提供更加定向和深度的支持,紛紛推出 AWS Elastic Kubernetes Service (EKS)、Azure Kubernetes Service (AKS) 等新一代容器服務。另一類容器托管服務則進一步屏蔽了底層細節和調度麻煩,讓容器作為獨立計算單元直接在共享基礎設施上運行,如 AWS Fargate、Azure Container Instance、阿里云 ECI 等,頗得無服務器計算思想之精髓。當然,經典的無服務器計算一般指 FaaS,例如也在同步發展的 AWS Lambda 和 Azure Functions,它們雖在編程框架和范式方面有所限制,但得益于更高層抽象,可讓開發者聚焦業務邏輯,在合適的場景中使用得當可大幅提高研發效率。
讓我們的視角再從技術回到商業。隨著云計算行業體量越來越巨大,市場競爭也愈發激烈,價格戰屢見不鮮。雖然說云計算有著相當不錯的商業模式,但這畢竟是一個重投入長周期的行業,因此陸續有中小玩家力不從心、陷入困境。例如國外的 Rackspace,原本入場頗早也有相當積累,一度曾在市場中占先,但當巨頭紛紛入場后就顯得后勁不足,現已跌出市場占有率前五名。也許當云計算進入巨頭角力時代后,中小玩家還是需要著力發展自己特色,深耕細分市場,或是尋求聯姻以共享能力與資源。
客戶方面,云計算在這一時期開始明顯地從互聯網企業向傳統行業進行滲透。為了拿下更多傳統行業客戶,組織架構和流程的匹配也是必做的功課。走在前面的云廠商相應地完善了云上的多賬號管理、組織架構映射、資源分組、細粒度權限管控等企業級功能。例如阿里云就在不斷地更新升級其企業控制臺,幫助用戶更好地管理人員、資源、權限及互相之間的關系。
至此,經歷了大發展的云計算已然成長為幾乎承載一切、包容一切的巨大平臺,是一艘提供企業信息化和數字化整體解決方案的航空母艦。云計算無疑已經全面走向成熟,成為了參與和推動 IT 業界向前發展的重要力量。
繁榮時代 2019—?
時間終于進入 2019 年?;谶^去十年發展的良好態勢,我們沒有理由不相信云計算將進入繁榮熱潮。來自 Gartner 的分析報告顯示,2019 年的全球公有云市場規模將超越 2 千億美元,并將繼續保持穩定增速。而國內由于起步相對較晚,市場滲透率還不高,將擁有更高的增速?!吧显啤睂⒊蔀楦黝惼髽I加快數字化轉型、鼓勵技術創新和促進業務增長的第一選擇甚至前提條件。對于企業而言,更多的不會是上不上云的問題,而是要考慮上哪家云、怎么上云的問題,是如何遷移重構以適配云端的問題,是如何讓云更好地服務生產的問題。因此,我們對云的未來理應充滿信心,同時也抱有更高的期待。接下來,我們不妨結合企業的需求和云廠商的投入方向,大膽預測未來云計算發展的若干趨勢。
來源:悟空智能科技
責任編輯:葉超
編輯:王藝霏