1. 程式人生 > >人人都能看懂的雲端計算知識科普

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

雲端計算的本質就是社會分工,社會分工所產生的價值雲端計算都能產生。
社會分工中產生的問題,雲端計算也都會面對。
雙十一期間,我想很多小夥伴都被阿里雲的促銷活動刷屏了,大家組隊組團,可以得到較為便宜的阿里雲伺服器。另外,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% 的可用服務時,成本往往並不比自建機房低,在需要的主機(物理機或虛機)量比較大時,尤其明顯。

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

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

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

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

在這裡插入圖片描述
理解了雲端計算是一次社會分工的本質,便不會過分誇大其優點,更不會對之迴避認為其只不過是一時風潮。

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

所以,對於雲,逃也沒用,躲也沒用,時代總會來臨。果斷擁抱,理性選擇,踏實落地,即是未來。
https://mp.weixin.qq.com/s/p9GDCd_gADz2VGnaNbaBzA