入行半年,我這樣看云計算
本文筆者將根據自己入行一年來的經驗以及一些對于云計算的思考,來給大家科普一下云計算的一些知識。文章主要分為五個部分:云計算的前身,數據中心的演變,AWS的潮流,對IAAS、PAAS、SAAS的介紹,以及公有云、私有云、混合云等的介紹。
在今天,如果說對于云計算還一無所知,那可就真的out了。企業喊了這么多年的“上云運動”,那么,云的本質到底是什么呢?
從2006年云計算的概念被提出到今天,已經經過了十幾年,云計算取得了飛速的發展與翻天覆地的變化,行業的蓬勃發展已經得到了諸多巨頭的青睞和垂涎,紛紛揮斥著巨資入場。2010年,全球云計算市場規模僅683億美元,而到2020年,預計將突破4000億美元。
而在云計算行業稍顯弱勢的國內,以阿里云、騰訊云和七牛云等云計算企業的也紛紛抓住時代脈搏,扛起了國內云計算的大旗。阿里云的首吃螃蟹后成為阿里巴巴集團核心業務,同時行業內孵化出的一些獨角獸“獨角獸”如七牛云、ucloud等,也詔顯的國內云計算市場的大有可為。
數據表明:2016年我國公有云市場規模為215億,而這個數字,到2020年,預計達到1300+億元以上,年增長25%以上。
本文旨在談談自己入行以來對云計算行業的一點思考,以及一些不成熟的看法,難免有所疏漏,請各位見諒。
前文都是廢話,下面進入正文。
一、云計算的前身
云計算已經席卷而來,和人們現在的生活息息相關。
12306和雙11,這兩者我相信我國人民總要經歷過一者或全部。而針對云計算的定義,為了讓更多的人理解云計算到底是個什么東東,各路科普人員也可謂是”費盡苦心“,然后就有了各種看似準確的解釋——如“水龍頭觀點論”、“葷段子觀點論”、“披薩觀點論”、“廚房觀點論”以及與時俱進的“共享出行觀點論”。
在接觸云計算時,我們或多或少為了讓自己容易理解而使用這些觀點類(裝)比(逼)。一定程度上,這些觀點確實通俗易懂且形象,大家也可以自行網上了解這些觀點。
而在我的理解中,私以為:云計算是一種模型,即將計算、網絡和存儲虛擬化資源池以按需的方式提供給有需要的人。
云計算并不是一蹴而就的,在云計算誕生之前,其實很多云計算相關技術都已經誕生,如:分布式計算、并行計算還有網格計算。
網格計算(英語:Grid computing):通過利用大量異構計算機(通常為臺式機)的未用資源(CPU周期和磁盤存儲),將其作為嵌入在分布式電信基礎設施中的一個虛擬的計算機集群,為解決大規模的計算問題提供一個模型。
并行計算(英語:parallel computing):一般是指許多指令得以同時進行的計算模式。在同時進行的前提下,可以將計算的過程分解成小部分,之后以并發方式來加以解決。
分布式系統是一組計算機,透過網絡相互連接傳遞消息與通信后并協調它們的行為而形成的系統。組件之間彼此進行交互以實現一個共同的目標,把需要進行大量計算的工程數據分割成小塊,由多臺計算機分別計算,再上傳運算結果后,將結果統一合并得出數據結論的科學。
是不是都覺的這些技術都很熟悉?
甚至在IT行業,常常被提及。當然,有一些這些還不夠,還缺了一個最關鍵的技術:虛擬化。
二、數據中心的演變
1. 數據中心介紹
前文說過:云計算的本質就是對計算資源、網絡資源以及存儲資源的管理,最終的目標也就是按需分配。
那么,計算資源、網絡資源和存儲資源又是什么呢?
計算資源:CPU的核數和內存,主頻
網絡資源:帶寬
存儲資源:硬盤
數據中心和買臺式機是類似的,如果需要更好的處理性能(計算資源),則需購買內存更大的和更好的CPU。同理,網絡資源也一樣,當您購買電腦后,需要上網則必須購買運營商提供的寬帶,數據中心也是類似的。
而如果電腦上如果想要存放東西,首先,電腦的操作系統總要一個盤去存放,所以需要硬盤,硬盤又分為機械硬盤和SSD盤,這是存儲資源。
我們常用的電腦是如此,而數據中心無非是把電腦換成了服務器,而一個數據中心可能有成千上百臺的服務器,服務器的CPU、內存和硬盤性能也更優,然后通過企業級的路由器接入帶寬的上網。
那么,問題來了:如何去管控一個數據中心的設備呢?
2. 傳統數據中心網絡結構
在傳統的大型數據中心,網絡通常是三層結構,Cisco稱之為:分級的互連網絡模型(hierarchical inter-networking model)。
這個模型包含了以下三層:
Access Layer(接入層):有時也稱為Edge Layer。接入交換機通常位于機架頂部,所以它們也被稱為ToR(Top of Rack)交換機,它們物理連接服務器。
Aggregation Layer(匯聚層):有時候也稱為Distribution Layer。匯聚交換機連接Access交換機,同時提供其他的服務,例如防火墻,SSL offload,入侵檢測,網絡分析等。
Core Layer(核心層):核心交換機為進出數據中心的包提供高速的轉發,為多個匯聚層提供連接性,核心交換機為通常為整個網絡提供一個彈性的L3路由網絡。 通常情況下,匯聚交換機是L2和L3網絡的分界點,匯聚交換機以下的是L2網絡,以上是L3網絡。每組匯聚交換機管理一個POD(Point Of Delivery),每個POD內都是獨立的VLAN網絡。服務器在POD內遷移不必修改IP地址和默認網關,因為一個POD對應一個L2廣播域。
3. 于云計算公司——云計算時代的數據中心
云計算時代的到來,使用的用戶可以任意分配自己的資源。而對于數據中心也是如此,計算資源、網絡資源和存儲資源被池化后,對數據中心的架構也提出了挑戰——需要一個大二層的網絡架構,即整個數據中心網絡都是一個L2廣播域。
大二層網絡架構,L2/L3分界在核心交換機。核心交換機以下,也就是整個數據中心,是L2網絡(當然,可以包含多個VLAN,VLAN之間通過核心交換機做路由進行連通)。這樣,服務器可以在任意地點創建、遷移,而不需要對IP地址或者默認網關做修改。
4. 于企業——云計算時代的機房
當然,前文所說的數據中心,其實對于很多公司都是用不到的。而對于大多數企業來說,如何去管理自己的機房呢?
管理無非是達到兩個方面的靈活,如果是企業,當需要創建或者擴建自己機房時,從采購到運行需要一段漫長的周期,同時,還需要擔心其中出現什么變故呢?
如果是在云計算平臺上,就實現了兩個方面的靈活:
- 時間靈活性:隨時用,隨時有。
- 空間靈活性:想要多少資源就有多少。這兩種靈活也可以稱為云計算的彈性,然而就是這種”彈性“卻經歷了多年的波折。
5. 云計算時代數據中心的虛擬化
傳統IT時代,對于中小企業來說,并不能很好的自己去管理機房,于是會將自己的服務器托管于IDC中,或者直接在IDC中直接租用設備。然而,物理設備不能做到并不能很好的靈活性。
還是以電腦為例:假設我們需要買一臺電腦,可能要去電腦城或者電商網站做各種對比,同時從采購到運輸都需要時間。而對于服務器來說,就要找到專門的供應商,然后采購運輸和安裝環境,到企業能夠部署應用,時間靈活性可謂非常之差。
這還不算,購買的服務器性能并不是說能夠全部利用的。可能你只需要其中的1%,然而并沒有這么小的服務器賣給你,如果想要擴容,又需要經歷一段重復的采購過程。
于是,虛擬化技術出現了,其中最牛逼的廠商叫做VMware。VMware的推出的Hypervisor可以實現計算、網絡、存儲的虛擬化,是第一個商業化的成功的虛擬化的x86架構。當然,后來被EMC收購了。
但是,VMware作為付費閉源軟件,并且非常的昂貴。而互聯網大牛實在太多,君不見有收費的Windows,也有開源的linux,有閉源的IOS,也有開源的Andriod。虛擬化劃時代的發展的開源軟件的XEN和KVM誕生了。依托于虛擬化技術,數據中心終于可以將自己的設備虛擬化按需給有需要的用戶,也解決了物理設備的一個大問題:靈活性,或者叫彈性。
三、量變導致質變——AWS引領潮流
1. 虛擬化的半自動和云計算的全自動
剛開始的虛擬化屬于軟件虛擬化,虛擬機I/O性能上十分的糟糕,2005年后出現的XEN以及KVM等硬件虛擬化技術,不僅大幅度的提升了虛擬機的性能,也滿足了虛擬化技術在生產環境中的使用的要求。
雖然說虛擬化技術的發展是云計算的基石,但是還不夠,虛擬化技術可以擴大硬件的容量,簡化軟件的重新配置過程。
CPU的虛擬化技術可以單CPU模擬多CPU并行,允許一個平臺同時運行多個操作系統,并且應用程序都可以在相互獨立的空間內運行而互不影響。
盡管如此,云計算出來以前,虛擬化有一個最致命的缺點:無法調度。要達到半自動化——即創建虛擬機時,需要人為的去指定創建虛擬機在某臺物理機上。
于是,人們發明了各種各樣的算法來做這個事情,算法的名字叫做調度(Scheduler)。通俗一點說,就是有一個調度中心,幾千臺機器都在一個池子里面,無論用戶需要多少CPU、內存、硬盤的虛擬電腦,調度中心會自動在大池子里面找一個能夠滿足用戶需求的地方,把虛擬電腦啟動起來做好配置,用戶就直接能用了。
這個階段我們稱為池化或者云化。到了這個階段,才可以稱為云計算,在這之前都只能叫虛擬化。
說白了,虛擬化主要是把大塊拆成小塊兒,分布式系統主要是把小塊組合成大塊兒,IT資源經過這樣的揉碎再組合,變成了一個十分靈活的系統,在這幾個基本技術的基礎上,在通過調度中心,就可以實現云計算的服務模式了。這就是虛擬化的半自動和云計算的全自動。
2. 云計算的從閉源到開源
公有云公司上第一個商業化成功是AWS,可能你對這個單詞并不是熟悉。但是如果說起它的中文名亞馬遜,那也是如雷貫耳了。
但是,為什么亞馬孫作不應該是一家電商公司嗎?為何跨行轉為云計算廠商呢,還成功了全世界最牛逼的云計算公司?
前文說了:云計算可以實現用戶的按需使用資源。而對于電商應用型的企業來說,阿里云的云計算起源可以說的上和AWS類似,當本身的業務擴張時,桎梏于物理上限限制的計算性能以及遠遠不能滿足業務所帶來的需求。
當然,從成本來說,IBM小型機實在太高也是一點。無論是美國的”黑色星期五“和還國內的“雙11秒殺”,對于企業來說,需要的只是短時間的“計算資源”。
于是,它們也急需云計算平臺。
但是環顧四周,那是還是一片荒野,怎么辦?
只能自己露胳膊上陣了,由于自身帶應用基因,所以亞馬遜的云平臺對應用更加友好,迅速發展成為云計算的第一品牌,賺了很多錢。
2017年,亞馬遜AWS年營收達122億美元,運營利潤31億美元。盡管AWS剛開始幾年使用虛擬化技術的是開源的XEN(阿里剛開始使用的KVM),但是如前文所言,虛擬化離云計算還差了個最關鍵的“云化”。
而AWS作為行業老大,日子過的很爽,自己的核心技術當然不愿意公開,所以AWS的“云化”是閉源的。這個時候由于自身的需求,或者說眼紅AWS的盈利能力,作為全球三大云計算中心之一的Rackspace(Rackspace在全球擁有10個以上數據中心,管理超過10萬臺服務器),與NASA聯合研發出Openstack,Openstack是什么呢?
可以簡單來說就是:“云化”的技術,讓你隨時隨地的創建自己的應用,無論是XEN還是KVM都兼容。
通俗來講:Openstack可以實現Compute計算、Networking網絡、Storage存儲云化平臺的自動化管理。
下面是我梳理的一張管理Openstack的功能圖,當然,非云計算從業人員不用去弄懂。
Rackspace本身入場晚,這個時候AWS已經很厲害了,占據了市場的絕大部分份額,怎么辦呢?
Rackspace一狠心,抱著將整個行業做大,才能吃到更多的蛋糕想法將Openstack開源了。
于是,整個行業沸騰了,以前苦于入門難,現在輪子都造好了,直接自己拉輪子跑就行。有了OpenStack之后,果真就像Rackspace想的一樣,所有想做云的大企業都瘋了。你能想象到的所有如雷貫耳的大型IT企業:IBM、惠普、戴爾、華為、聯想等都瘋了,云計算行業也迎來了百花齊放。
使用Openstack的公司很多,但是能在開源社區做出貢獻的卻鳳麟毛角。當然,國內還有個阿里自研的。
四、IAAS、PAAS、SAAS
前面虛擬使用各種云化技術,終于實現了對計算資源、網絡資源和存儲資源的自動化管理,這個時候的云計算叫IAAS。
什么是IAAS呢?
說白了,相當于建房子時的地基。
IaaS在云計算分類中,被叫做:基礎設施即服務,同理還有PaaS(平臺即服務)和SaaS(軟件即服務)。
如上圖,SaaS都是一些可以被用戶直接使用的應用,而PaaS則是提供平臺服務,無論是七牛的直播服務還是人工智能服務,其都是屬于PaaS層產品。
對于用戶來說,如上圖,從左往右:傳統IT到SaaS,需要用戶做的事情越來越少。同時,在IAAS層的服務器上,也會提供平臺應用型的服務。如開源的Mysql,對于用戶來說,只需關注自身的業務即可。要么是自動部署(彈性伸縮),要么是不用部署(通用應用)??偟膩碚f,就是應用層你也要少操心,這就是PaaS層的重要作用。
五、公有云、私有云、混合云、社區云和托管云是什么東東?
到這里,我也要舉例子了:
「經典廚房論」
- 私有云:自己廚房做飯,需要自己有地建個廚房且還要買鍋碗瓢盆柴米油鹽等。此外,吃完總要洗碗刷鍋等運維吧,就是私有云。
- 公有云:到飯店吃飯,你只是飯店其中一個客戶,按需胡吃海塞吃完結賬抹嘴走人,餐館后廚如何安排做菜順序,并加快出菜速度就是負載均衡和虛擬化概念,就是公有云。
- 混合云和公有云:請廚師到家里上門做飯則屬于典型的混合云,在資產安全的情況下有限使用公有云。
- 社區云:飯店只針對某個特定群體如學生開放,同時可能還會有學生在飯店做兼職,這就相當于社區云。
- 托管云:飯店比較大,自己也比較有錢,于是到飯店租了個包間,無論我用不用,我租用的期限都不能給其他人使用,這就是托管云。
- 私有云轉公有云:自己朋友來,廚房能力不足,于是全部去飯店吃,這是私有云轉公有云。
上圖簡單介紹幾種了公有云、私有云和混合云的行業分類。當然,到目前還是這三種云占據主流。
六、總結
1. 云計算實現了資源的靈活運用
云計算的資源就如同銀行一般,銀行向外借貸的錢遠比本身存儲的錢要多的多,云計算底層資源出售也是同理的,也是屬于“超賣”模式。只要不同時擠兌,就不會有問題。
隨著Openstack技術的越發成熟,管理的規模越來越大,動不動就是上萬臺服務器,同時可以實現異地部署然后進行統一管理。在這種規模的前提下,對于普通用戶甚至企業來說,基本上可以實現想要多少的資源就有多少資源。
以某盤為例:假設給每個人都分配了2T的存儲空間,1億用戶,那么難道云計算廠商需要2億T的存儲空間?
這是不可能的,實質上分配的2T存儲空間僅僅是用戶層面所看的,而用戶使用的可能僅僅其中的100G甚至更少,那么真實給你的也就100G。當你資源不斷上傳時,給你分配的真實的存儲也會增加。如計算資源和網絡資源同理,當云平臺感覺資源不夠時,就是去采購設備擴容,但是這對于用戶來說是無感知,這就是資源利用的靈活性。
2. 云計算其實不便宜
成本更低、運維成本更低、服務更好、彈性擴展、部署更快、不用采購硬件,云計算的好處總能說出一大堆。
但,這些點往往只反映云計算的一個側面,有的還不完全正確——比如:成本低,客戶會發現,如果租用高性能云主機且保證99.99%的可用服務時,成本往往并不比自建機房低,在需要的主機(物理機或虛機)量比較大時,尤其明顯。就如當年阿里的“去IOE運動”,難道是阿里賺的錢買不起設備了嗎?對于大公司來說,首先考慮的不是成本,而是業務的連續和穩定性。而事實證明,“去IOE”后所花的成本并不比原先低多少。當然,后來阿里云又掙錢了這個另說。
3. 云計算是一場社會屬性的變革
其實,云計算的本質就是社會分工。社會分工所產生的價值云計算都能產生,比如:規?;⒕毣a生的成本降低與效率提高等。而社會分工中產生的問題,云計算也都會面對,比如節省下來的成本到底是買家受益還是賣家受益,再比如壟斷。
拿蒸饅頭舉例子:在城市中,大多數家庭不自己蒸饅頭而去饅頭房買,這是社會分工,節省了社會總體成本。但是,買饅頭并不比自己蒸更便宜,說明節省了的成本進入了賣家而非買家的腰包。
再比如:當一個城市只剩一家饅頭房而大多數家庭又喪失了蒸饅頭的能力時,饅頭房便有可能提價,這就是壟斷。
最后,本人才疏學淺,難免有些遺漏,望斧正。
作者:賀志兵(本人)
本文由 @Pasca 原創發布于人人都是產品經理。未經許可,禁止轉載
題圖來自Unsplash,基于CC0協議
請問對于剛入門云計算,應該從哪開始學習呢? 感覺無從下手。目前公司轉型從事算力租賃這塊內容,但是對于相關知識聽欠缺的
作者你好,我想請教一下,云計算是不是阿里、亞馬遜一開始為了滿足自身業務某段時間內擴張的需要而開發的,但是平時業務淡季用不了那么多資源,租出去會比較劃算呢
看了這么多文章,都懵懵懂懂,你的文章讀完感覺一切都融會貫通起來了!感謝分享!
您好 最近在了解云計算 openstack的功能圖 方便發下嗎 非常感謝 1021149601@qq.com
有學習到,感謝您的分享
自己做私有云已經三個月了,今天再看到您寫的文章感覺整個思維框架清晰了很多,真是通俗易懂,感謝!
知識增加了
很清晰,學習
寫得很全面很清楚,謝謝分享~
第一次看人寫云計算
就憑您這個昵稱也得寫一篇吧 ??
你認為公有云、私有云、混合云,都包括哪些產品呢?對于IAAS、SAAS、PAAS有界定。那么公有云、私有云、混合云對應的產品如何區分呢?