柚子快報邀請碼778899分享:從云計算到天空計算(一)
柚子快報邀請碼778899分享:從云計算到天空計算(一)
2021年,UC Berkeley的Ion Stoica和Scott Shenker,在運行系統(tǒng)熱點話題的研討會上,發(fā)布了“從云計算到天空計算”的論文。不同于我們都熟知的Cloud Computing(“云計算”),Sky Computing (“天空計算”),是云計算的未來,是指天空中有很多的云,如何解決跨云的問題,打破不同云之間的隔閡,最大化地利用跨云數據。
達坦科技的使命正如同論文中描述的“天空計算”的愿景:打造下一代云計算平臺,讓云之間沒有隔閡。為此,新年伊始,我們翻譯了這篇論文,將分兩期發(fā)布。如下是“從云計算到天空計算”的第一部分。
簡介
1961年,John McCarthy 對未來計算提出了一個預言:
“也許在未來的某天,計算本身將會成為基礎設施, 就像電話一樣。我們可以連接到計算服務提供商, 用戶只需為使用的計算資源付費, 就擁有了能夠使用整個系統(tǒng)的能力。”
從技術角度而言, John McCarthy 的預測還是很有預見性的, 他準確地描述了當今云計算的使用場景。 但是在商業(yè)上 John 的預測就差得比較遠了, 例如在美國連電話服務都不是公共設施,因為該服務是由一系列服務商提供的。 盡管如此, 電話服務還是給用戶提供了統(tǒng)一的用戶體驗,即無論用戶使用的是哪一個電話運營商的服務, 他都能接通電話網絡上的任何人, 并且該用戶想要切換供運營商也非常方便, 甚至能夠保留電話號碼。
回到 John McCarthy 的預測, 我們其實也并不期望能夠將計算變成一個公共服務, 但是現(xiàn)在的云計算仍然不是一個可行的解決方案。 每一家云計算都在提供自己定制的服務, 相互之間差別較大無法轉換。綜上,本文將闡述如何一步一步地抹平這些差異,?將云計算變成更加通用的天空計算。
歷史的回顧
高性能計算社區(qū)(HPC)在1980年代曾經嘗試過將計算發(fā)展成為基礎設施, 但是個人電腦的崛起拖慢了這個進程, 人們紛紛將注意力放到了如何將電腦小型化上, 以便讓所有人都能使用上電腦。個人電腦產業(yè)的第一批發(fā)起者是一些電腦愛好者, 他們讓電腦變得更加輕薄, 同時摩爾定律也使得電腦的性能得到急速提升, 從而滿足了人們日漸增加的需求。
因特網的發(fā)展使得一些服務被大家廣泛使用, 例如電子郵件, 論壇和游戲。萬維網則推動了下一波的浪潮, 包括網絡搜索, 電商和社交媒體。為了上述服務能夠正常運行且滿足日益增長的需求, 服務商們不得不搭建自己的數據中心, 并構建復雜的分布式系統(tǒng)。 這場運動囊括的都是大家耳熟能詳的大公司, 像雅虎,谷歌,Ebay和亞馬遜等。因為建設這樣大規(guī)模的數據中心需要有巨大的資產投入, 因此是一個非常高的壁壘,使得絕大多數小公司無法進入。
上述的情況在 2006 年發(fā)生了改變, Amazon 開始提供 S3 和 EC2服務, 以此開啟了云計算的時代。本來以此為開端, 我們是有機會發(fā)展出上述的"天空計算"的, 但是因為sk商業(yè)上的原因,我們最終走向了另外一個方向。
在早期 Amazon 主導了整個云計算市場, 成為了該領域的事實標準。但是過去的十年市場發(fā)生了翻天覆地的變化, AWS 現(xiàn)在只有32% 的市場份額, 微軟緊隨其后占有 19% 的份額, 谷歌 7% 份額, 阿里巴巴 6% 份額, 后續(xù)所有云計算廠商瓜分了剩余的 37% 份額。這樣的市場分布造就了更低的使用價格, 也產生了更多的服務和產品廣度, 例如 AWS 一家就提供了超過 175 種產品和服務。 這些服務絕大多數是私有化服務, 并且這些個性化的服務也是云計算提供商達到區(qū)分度的手段之一。舉個例子, 每個云計算提供商都有自己版本的 API 來管理集群, 也都有自己面向對象的存儲接口等等。程序開發(fā)人員為一個云平臺開發(fā)的軟件無法直接在另外一個云平臺上運行, 想要達到上述目的需要進行大量的二次開發(fā)。這就好像為 Windows 系統(tǒng)開發(fā)的程序無法直接在 Mac OS 上直接運行一樣。正是因為這些商業(yè)競爭使得我們距離計算公共設施化越來越遠。
目前為了達成一個標準的討論已經非常多了, 但是這樣的努力卻收效甚微。而且現(xiàn)在的云計算的商業(yè)模式就基于服務的差異化, 首先將用戶吸引到自己的平臺上來, 然后將用戶綁定在自己的平臺, 因此提供通用性的服務本身就是和上述的商業(yè)模式相沖突的。 在此背景下, 我們如何從現(xiàn)在的云計算模式向計算公共設施化推進呢?
我們的提議叫做天空計算, 用以表明我們想要突破單個云計算廠商的束縛的目標。然而我們并不是第一個提出這個概念的人, 從 2009 年開始已經有好幾篇論文使用了這個名字。但是那些論文的關注點主要是技術層面的, 比如在云計算平臺上運行一個中間層, 或者就是針對特定的應用場景, 比如高性能計算。本文將從一個更寬廣的視角來看天空計算, 從更通用的角度來考慮未來的計算方式, 考慮如何從技術和市場的角度來達到天空計算這個目標。
從因特網獲得的啟示
雖然云計算和互聯(lián)網從很多方面都不一樣, 但是這并不妨礙因特網能夠帶來一些啟示。 在上個世紀六十年代, 好幾個組織都在開發(fā)自己的包交換技術。這些早期的網絡都工作得很好, 但是他們并不兼容。整個社區(qū)面臨一個選擇: 需要一個單獨的標準化的網絡嗎? 有沒有可能找到一種方式能夠抹平這些差異? 在1972年, Robert Kahn 提出了開放架構網絡, 并引入一個通用的兼容層, 使得任意兩個網絡之間能夠相互通信, 這一層最終就變成了現(xiàn)在大家熟知的 IP 層。雖然 IP 層解決了兩個網絡之間的通信問題, 但是隨著因特網的發(fā)展, 路由的問題就凸顯了出來: 網絡包如何跨過多重相互獨立的網絡到達正確的目的地。
BGP 就是被發(fā)明出來解決上述問題的, 它就是網絡間的膠水, 把相互獨立的網絡粘合成一個整體呈現(xiàn)給用戶。這是一個技術解決方案, 但是經濟上的問題仍然存在: 當網絡連接起來之后, 是否需要相互付錢? 如果需要的話, 誰付給誰錢? 一系列的協(xié)議和實踐在現(xiàn)實生活中被使用, 這個方法被稱作 "peering" 協(xié)議。 比如兩個體量差不多的網絡, 他們之間的連接很可能是免費的。這樣的方法從技術上是直觀的, 但是在商業(yè)上仍然存在問題, 例如: A網絡和 B 網路并不直接連接, 但是 A 網絡幫助 B 網絡傳遞數據包, A 需不需要問 B 索要費用?
總結一下因特網能夠提供一個統(tǒng)一的接口原因有三個: 第一, 從技術上提供了一個兼容層; 第二, 用一個膠水協(xié)議將整個網絡連接在了一起; 第三, 在商業(yè)上達成了一系列共識, 讓多家公司能夠一起協(xié)作。
將這些經驗轉移到云計算的場景來, 我們期望的是應用程序一次開發(fā)后能夠運行到所有的云提供商上, 用戶也不需要為在不同云上的部署操心。簡而言之, 用戶寫多云的應用程序必須和寫單云的應用程序一樣簡單。我們給這種模式一個名稱, 叫做天空計算。
兼容層
為了實現(xiàn)天空計算, 第一步就是提供一個兼容層, 該層將每家云計算提供的實現(xiàn)細節(jié)給屏蔽了, 對上提供一個統(tǒng)一的接口, 應用程序開發(fā)一次即可。從互聯(lián)網的角度看, 這個兼容層就是 IP 層, 所有 IP 之下的協(xié)議都需要能夠正確處理 IP 的數據包。但是云計算的場景和 IP 又有很大的不同:IP 是一個單獨的協(xié)議, 云計算的服務類型則非常繁多, 而且服務種類還在不斷增長。從這個角度而言, 云計算兼容層更像是操作系統(tǒng), 管理著所有的資源并且為上層應用提供接口。
云計算雖然提供了很多底層的私有接口, 但是用戶用的更多的是更加上層的接口。幸運的是越來越多的上層接口有了開源軟件的替代, 例如操作系統(tǒng)有 Linux, 資源管理有 K8S 等。更進一步, 那些開源軟件的創(chuàng)造者開創(chuàng)的公司, 往往會在多個云平臺上部署自己的服務。這樣用戶從一個云平臺遷移到另外一個云平臺會簡單得多。
雖然開源軟件解決了天空計算中的絕大多數問題, 但是還有一個問題沒有解決, 那就是存儲問題, 因為每一家云廠商都會提供自己的存儲接口。幸運的是已經有一個方案提供 S3 兼容的接口, 甚至一些云廠商自己也會提供 S3 兼容的接口。更進一步, 云平臺之間的數據訪問應該是可行的, 不會受到阻礙。
未完待續(xù)
達坦科技(DatenLord)推出的開源分布式KV存儲Xline,就是針對多數據中心場景,實現(xiàn)數據的高性能跨云、跨數據中心共享訪問,并保證數據的一致性,方便業(yè)務系統(tǒng)實現(xiàn)多地多中心多活部署。
GitHub鏈接:Https://github.com/datenlord/Xline
柚子快報邀請碼778899分享:從云計算到天空計算(一)
精彩文章
本文內容根據網絡資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點和立場。
轉載請注明,如有侵權,聯(lián)系刪除。