天天看點

人人都能看懂的雲計算知識科普 !

雙十一期間,我想很多小夥伴都被阿裡雲的促銷活動刷屏了,大家組隊組團,可以得到較為便宜的阿裡雲伺服器。另外,Docker 也紅得發紫,與之對應的 DevOps 和 NoOps 持續高溫。

但是對于不少企業尤其是傳統企業,雲仍在天邊,對于雲仍感覺雲裡霧裡。上雲還是不上雲,上什麼雲,這是個問題。我們試着用最通俗的比喻,理清雲服務中最基本的那些事兒。

 ●  什麼是雲?

 ●  什麼是虛拟化和分布式?

 ●  公有雲、私有雲、混合雲和社群雲是什麼東東?

 ●  Iaas、PaaS 和 SaaS 又是什麼東東?

 ●  雲計算有什麼價值?

什麼是雲?

先從一段對話開始。

張三:我們公司的資料不讓存放到個人電腦上,一般都存到雲上。

李四:别逗了,你們機關就二十幾個人,兩台伺服器,沒有虛拟化也沒有分布式,能叫雲?

張三:那怎麼了?幾百塊錢的西數 NAS 都叫雲呢。

張三大概是個普通人,李四是個技術宅,對話也反映出不同人眼中不同的雲。那究竟什麼是雲呢?

曆史上已經有不下于一百種的定義,影響力較大的是 NIST(美國國家标準與技術研究院)的定義:

雲計算是一種模型,它可以實作随時随地、便捷地、随需應變地從可配置計算資源共享池中擷取所需的資源(例如網絡、伺服器、存儲、應用及服務),資源能夠快速供應并釋放,使管理資源的工作量和與服務提供商的互動減小到最低限度。

顯然,對一般的使用者來說,這并不好了解,翻譯成人話大概是:讓計算、存儲、網絡、資料、算法、應用等軟硬體資源像電一樣,随時随地、即插即用。這種定義,比較像張三眼中的雲,我們稱其為廣義雲計算。

技術宅李四眼中的雲是指一整套虛拟化和分布式的技術體系,近幾年,我想大家都聽過去 IOE(即 IBM、Oracle 和 EMC),為嘛去人家?因為太貴!不過 IBM、Oracle 和 EMC 的母公司 Dell 都在積極擁抱雲計算了,這種低成本化的典型特點,我們稱其為狹義雲計算。

首先,狹義雲計算過度關注底層,而忽略掉了 SaaS (軟體即服務)和PaaS(平台即服務);

其次,狹義雲計算過度關注具體技術,而忽略掉服務模式、商業模式等,長期看容易低估雲計算的社會推動作用。

當然,李四這麼說也有一定道理,就目前來說,大部分雲的底層架構确實是通過虛拟化和分布式來實作的,畢竟節省成本、容易管理,還支撐了分布式大資料處理。

什麼是虛拟化和分布式?

從前有一個村,村裡有很多人家。

張三家隻有一個女兒,糧食總是吃不完,相當于資源閑置。李四家有五個兒子,糧食總是不夠用,相當于資源緊缺。這還不算,王五家時不時來一大堆客人,糧食夠不夠用誰也說不準,相當于計算波動大。

于是,張三家添了幾雙筷子幾個碗,可以讓别人來吃,相當于一台實體機虛拟出更多台虛機。誰家有多少糧食、幾張桌子、幾雙筷子、幾個碗,村長記在自己的小本本上,相當于統一排程,形成了資源池。

李四和王五家不夠吃的時候,拿小闆凳去張三家,相當于分布式。

有同學就問了,張三豈不是虧了?别入戲太深,張三隻是一台伺服器!還有同學說,我為嘛嗅到了共産主義的味道?沒錯,虛拟化和分布式就是要在計算、存儲和網絡上實作共産主義!

虛拟化和分布式在共同解決一個問題,就是實體資源重新配置形成為邏輯資源(在 IT 領域稱為解耦,也就是你用的東西跟實際實體的東西是兩碼事,一如李四和王五的午飯其實是在張三家解決的)。其中虛拟化做的是造一個資源池,而分布式做的是用一個資源池。

虛拟化包括計算虛拟化、網絡虛拟化和存儲虛拟化。

計算虛拟化通常做的是一虛多,即一台實體機虛拟出多台虛拟機,以榨幹實際的實體資源,其包括全虛拟化、超虛拟化、硬體輔助虛拟化、半虛拟化和作業系統虛拟化。

類似于計算虛拟化,網絡虛拟化同樣解決的是網絡資源占用率不高、手動配置安全政策過于麻煩的問題。

采用的思路同樣是把實體的網絡資源抽象成一個資源池,然後動态擷取,網絡虛拟化目前有控制轉發分離、控制面開放、虛拟邏輯網絡和網絡功能虛拟化等不同的思想路線。

存儲虛拟化通常做的是多虛一,除了解決彈性、擴充問題外,還解決備份的問題。

人人都能看懂的雲計算知識科普 !
公有雲、私有雲、混合雲和社群雲是什麼東東?

張三、李四、王五住一棟樓,樓下一個大規模的飯店。

張三一直在家做飯,這是私有雲,廚房是自建機房。

李四一直在飯店吃,這是公有雲,飯店是雲資料中心。

王五牛叉,在飯店有個固定包廂,包廂不對外人開放,這是托管型私有雲(有的廠商将其定義為專有雲),包廂是雲資料中心中的托管伺服器。

張三家有天來了十多個客人,這是業務突增。家裡裝不開,要去飯店,這是私有雲轉公有雲。

張三媽媽省吃儉用,對張三說,你們去吧,我和你爸在家吃,對張三家來說這是混合雲。如果飯店僅對某個特定人群比如學生開放,這就相當于社群雲。

當然,舉例不十分恰當,畢竟飯還是買的,而雲是租的,此點切記。

私有雲是為某個特定使用者/機建構立的,隻能實作小範圍内的資源優化,是以并不完全符合雲的本質——社會分工。

是以 Openstack 等開源軟體帶來的私有雲繁榮可能隻是暫時的,會有越來越多的客戶發現廉價的硬體和免費的軟體并不是打造私有雲的充分條件,精細的管理、7×24 運維所耗去的總成本(TOC)不比公有雲低,而且随着公有雲廠商營運能力的進步,這種趨勢會越來越明顯。

托管型私有雲在一定程度上實作了社會分工,但是仍無法解決大規模範圍内實體資源利用效率的問題。

公有雲是為大衆建的,所有入駐使用者都稱租戶,不僅同時有很多租戶,而且一個租戶離開,其資源可以馬上釋放給下一個租戶,一如飯店裡一桌顧客走了馬上迎來下一桌顧客。

公有雲是最徹底的社會分工,能夠在大範圍内實作資源優化,是以,不管道路如何曲折,前途總是光明的。

當然公有雲尤其是底層公有雲建構,不是一般人能玩的了的,就像開個三五桌的飯店誰都能行,開個三五萬桌的飯店就要看資金和本事了。

很多客戶擔心公有雲的安全問題,敏感行業、大型客戶可以考慮,但一般的中小型客戶,不管是資料洩露的風險,還是停止服務的風險,公有雲都遠遠小于自己架設機房。

社群雲是介于公有、私有之間的一個形式,每個客戶自身都不大,但自身又處于敏感行業,上公有雲在政策和管理上都有限制和風險,是以就多家聯合做一個雲平台。

混合雲是以上幾種的任意混合,這種混合可以是計算的、存儲的,也可以兩者兼而有之。在公有雲尚不完全成熟、而私有雲存在運維難、部署實踐長、動态擴充難的現階段,混合雲是一種較為理想的平滑過渡方式,短時間内的市場占比将會大幅上升。

并且,不混合是相對的,混合是絕對的。在未來,即使不是自家的私有雲和公有雲做混合,也需要内部的資料與服務與外部的資料與服務進行不斷的調用(PaaS 級混合)。

并且還有可能,一個大型客戶把業務放在不同的公有雲上,相當于把雞蛋放在不同籃子裡,不同籃子裡的雞蛋自然需要統一管理,這也算廣義的混合。

人人都能看懂的雲計算知識科普 !
Iaas、PaaS 和 SaaS 又是什麼東東?

 ●  IaaS,Infrastructure as a Service,基礎設施即服務;

 ●  PaaS,Platform as a Service,平台即服務;

 ●  SaaS,Software as a Service,軟體即服務。

還是不太好了解?沒關系,張三李四王五登場。

張三賣小麥,相當于 IaaS;

李四賣面粉,相當于 PaaS;

王五賣饅頭,相當于 SaaS。

張三覺得賣小麥不掙錢且不能打品牌,向下遊延伸,也賣起了面粉,相當于 IaaS 企業也逐漸做 PaaS 業務;

王五饅頭賣得好,一天幾萬個,面粉需求量非常大,不希望被李四控制,也做起了面粉,相當于 SaaS 企業做 PaaS。

是以 IaaS、PaaS 和 SaaS 隻是分析師和投資人津津樂道的,從業者并不關注,天下熙熙,皆為利來,啥賺錢搞啥。

張三賣面粉後,與李四就形成了競争關系,但是李四還經常從自己這裡買小麥,相當于又有合作,這種既競争又合作的關系就叫竟合。

趙六嘴叼,饅頭滿足不了,非自己包餃子吃,直接從張三那裡買小麥或李四那裡買面粉,相當于直接利用 PaaS 平台做軟體或訂制 SaaS,這種嘴叼的一般都是土豪,對應的就是大客戶。

有沒有發現,越是在城市裡,越是發達,種小麥的、買小麥的、買面粉的就越少,買饅頭的越多?那就對了,這是社會分工的結果。而雲計算同樣會向着高度分工的方向進化。

還有同學問,存儲到底算是哪一層呢?這就相當于你覺得能灌溉能和面還能直接喝的水是哪一層呢?

自然是出現在不同場景時對應不同層:常說的塊存儲、對象存儲一般是指 IaaS 層,而網盤一般是指 SaaS 層。

IaaS 提供的一般是通用計算、存儲和網絡三大基礎資源,前面提到的虛拟化、分布式等大多集中在本層,少量「流亡」于 PaaS 層。

一般認為,IaaS 始于亞馬遜的 EC2 和 S3 兩款産品。近兩年,我們說的雲計算快速落地,其實主要指 IaaS 的迅速落地,因為原來的公有雲确實不穩定,而客戶也都在觀望。

當然,有 IaaS 公司提出自己是「企業級 IaaS」,這就有點噱頭了,試問,哪個 IaaS 不是沖着企業級這一目标去的?給開發者玩兒的嗎?

PaaS 定義比較複雜,早年提供的是部署了資料庫和開發環境的平台,被稱為 XAE(X:企業名首字母;AE:Application engine),XAE 常用于個人建站,商用程度并不高,在中國尤其如此,後來要麼轉型要麼解體了;

後來 PaaS 轉為提供某種細分能力,如圖像識别、語音識别、推送、通信等,常以 API 或 SDK 進行傳遞;近兩年 Docker 風生水起,成為 PaaS 新秀。

此時回頭看原來 PaaS 的各種定義,都不太恰當了,是以比較準确的描述應是:PaaS 提供除計算、存儲和網絡三大基礎資源之外的其他能力(如通用開發能力,細分能力,業務傳遞能力),但并不對終端使用者提供成熟産品。

SaaS 涵蓋的就廣了,郵箱是、網盤是、幾乎常見的網站都是!但一般所謂的 SaaS 是指:具有一定複雜度的,通常應該在 C/S 架構下主要通過 C 端完成的軟體服務,在 B/S 架構下完成了。

當然這個複雜度,在不同的時期有不同的定義,十幾年前,郵箱可能都算複雜了,而現在随着 HTML5 技術的成熟,大部分的 Office 操作都可以在浏覽器完成。

當然,放企業級市場裡,SaaS 比較好界定,指以雲的方式取代了的原來企業軟體系統的服務。

SaaS 始于上世紀九十年代末 Salesforce 等公司,随着移動網際網路和 HTML5 的發展而蓬勃發展,強調的是瘦終端。

但是,到底多瘦才算瘦,各種應用不再用 APP 而以微信小程式的形式出現算瘦嗎?

或許,SaaS 的終極進化是純「裸機」,也就是「桌面雲」,當然這隻是一種理想,因為不僅關乎軟硬體技術,還關乎使用者習慣。須知,到現在還有不少使用者喜歡把電影放到移動硬碟裡,抽屜裡一塞,那感覺,踏實!

SaaS 最接近于終端使用者,是一個巨大的市場。但是,SaaS 是對軟體開發水準和服務水準的綜合考驗,拼得往往不僅是技術本身,還包括對使用者的了解、以及設計水準和創意。

如果原來就是賣不出去的軟體,沒有任何改進包裝一下放到雲上改為服務也不會有人買單,原來最起碼還不用對當機這種事情負責呢,放雲上隻是增加了 SaaS 服務商自身的風險。

是以,SaaS 絕不是單機軟體到雲上的簡單遷移,而是自始至終都應貫穿服務的思想和雲的思想,比如多屏同步、多人協同等。

也是以,我們雖然看好整體市場,但是并不看好很多 SaaS 領域一堆堆的無價值企業,資本寒冬,最先倒下的往往是他們。

人人都能看懂的雲計算知識科普 !
雲計算有什麼價值?

成本更低、運維成本更低、服務更好、彈性擴充、部署更快、不用采購硬體,雲計算的好處總能說出一大堆。

但,這些點往往隻反映雲計算的一個側面,有的還不完全正确:比如成本低,客戶會發現,如果租用高性能雲主機且保證 99.99% 的可用服務時,成本往往并不比自建機房低,在需要的主機(實體機或虛機)量比較大時,尤其明顯。

其實,雲計算的本質就是社會分工,社會分工所産生的價值雲計算都能産生,比如規模化、精細化所産生的成本降低與效率提高等;

而社會分工中産生的問題,雲計算也都會面對,比如節省下來的成本到底是買家受益還是賣家受益,再比如壟斷。

還是拿蒸饅頭舉例子,在城市中,大多數家庭不自己蒸饅頭而去饅頭房買,這是社會分工,節省了社會總體成本,但是買饅頭并不比自己蒸更便宜,說明節省了的成本進入了賣家而非買家的腰包。

再比如,當一個城市隻剩一家饅頭房而大多數家庭又喪失了蒸饅頭的能力時,饅頭房便有可能提價,這就是壟斷。

人人都能看懂的雲計算知識科普 !

了解了雲計算是一次社會分工的本質,便不會過分誇大其優點,更不會對之回避認為其隻不過是一時風潮。

從狩獵到農耕、再到工業社會,從一隻羊換兩把斧子到貝殼、金屬貨币、紙币、虛拟貨币,從生産方式到價值交換方式,你會發現,人們所做的一切都是在朝着社會分工或促進社會分工的方向發展。

是以,對于雲,逃也沒用,躲也沒用,時代總會來臨。果斷擁抱,理性選擇,踏實落地,即是未來。

原文釋出時間為:2018-11-15

本文來自雲栖社群合作夥伴“

小詹學Python

”,了解相關資訊可以關注“

”。

繼續閱讀