乾貨|雲中漫步-淺談雲端計算

中興開發者社群發表於2017-11-13

點選上方“中興開發者社群”,關注我們

每天讀一篇一線開發者原創好文640?wx_fmt=png&wxfrom=5&wx_lazy=1

本文包括以下六個部分,對幾個問題將逐一解答:

1、雲化和虛擬化是一回事嗎?

2、虛擬化是OpenStack實現的?

3、NFV/SDN在5G中水火不容?

4、CDN的雲化之路在何方?

5、結束語:雲端計算的本質;

6、題外話:IT的四大方向;

 

 開篇引題

從9月份測試CDN的Cache雲化版本開始,逐步接觸到TECS/MANO等公司雲化的產品,進而瞭解到虛擬化/雲端計算等像浩瀚的海洋似的博大精深,而現在的我只不過是剛剛走到海灘邊上的探索者,對雲的理解似懂非懂;現在讓我這個菜鳥來寫雲化的文章,實屬趕鴨子上架,只好勉為其難,把我學習過程中遇到的理解誤區及一些積累等班門弄斧一下,期望能夠起到拋磚引玉的作用。

 

 首先,聊聊雲化和虛擬化

我想很多人應該和我剛開始學習時有一樣的誤區,把兩者理解成“孿生兄弟”,難以辨別;其實不然,兩個雖有“血緣”,但是卻類似“子集”的關係(關於他們的定義,度娘裡有很多介紹,這裡就不再贅述了)。

      虛擬化是一種技術,它用來把硬體裝置中的計算、儲存、網路等虛擬化,目的是使軟體和硬體解耦;常用的技術比如KVM、XEN和VMware等等。

      而云計算是種服務模式,可以從虛擬化的資源池中給使用者提供各種網路訪問的服務,服務有三種模式,分別是IaaS(基礎設施即服務)、PaaS(平臺即服務)、SaaS(軟體即服務)。

      這樣解釋仍然比較拗口,有個比喻能夠方便理解虛擬化和雲端計算的三類服務模式:古代人造房子,可能很大的建築物裡面只有一個房間,當把很大的空間隔成一個個小房間的時候,這時,虛擬化便出現了,虛擬化的技術就是把大房間隔成很多小房間的技術;此時,如果把這些房間用來提供服務的話,那麼雲端計算就隨之露面了,具體是以什麼面目示人,就看接下來是拿什麼來給“租戶”服務了;如果拿這個虛擬好的房間直接出租給別人使用,那麼提供的是基礎硬體設施的服務,我們稱之為IaaS;如果把這些房間裝修一番,然後再出租給別人,則提供的是裝修後的類似於“帶平臺”的服務了,就晉升為PaaS;進一步的,如果把這些房間改造成酒店,提供的是現成的“帶應用”的服務,客戶不需要任何操作就可以直接享受服務,這就是服務模式的最高境界SaaS了!

      這個比方雖不是特別貼切,但是大致上反應了虛擬化和雲端計算的三種服務模式以及它們之間的關係;從這裡也可以看出,虛擬化是實現雲端計算的一種技術手段,是雲端計算的基礎。非嚴謹的說法也可以把雲端計算理解成對海量虛擬化裝置的自動化管理,包括自愈和自動的彈性擴縮容等。這正所謂是“藉助虛擬為基礎,除卻服務不是雲”!

      理論需要聯絡實際,回到現在公司雲化主要推廣的TECS平臺,封裝了OpenStack和KVM(含QEMU,後面不再提及)的TECS平臺實現了虛擬化,再加之上層MANO的管理和編排,可以實現對VNF/NS例項化的編排,對虛擬機器的自愈、遷移及彈性擴縮容等等操作,合在一起就構成了雲化的主體框架。


 其次,談談OpenStack和虛擬化

      剛剛提到了OpenStack,談到雲化或虛擬化,總是離不開OpenStack;很多人會誤以為是OpenStack實現了虛擬化,其實你誤會它了,它只是一個由很多元件組成的框架,來對虛擬化進行管理,真正實現虛擬化的是KVM(當然也有其他虛擬化技術,這裡TECS平臺使用的是這種技術),OpenStack和KVM的關係就像是前者搭了一個戲臺,後者才是唱戲的角,或者兩者的關係也類似於我們用於自動化測試的RF和Python的關係。

      OpenStack是一套開源元件,KVM是linux自帶的核心模組,兩者有機的結合在一起,組成了TECS虛擬化平臺的基礎,TECS是對OpenStack的二次開發,是組成雲端計算的虛擬化平臺,是NFV架構中的底層部分。

 

 再則,侃侃NFV和SDN

      說到雲化不講NFV或SDN,就像到北京不去長城一樣說不過去;其實NFV和SDN都是未來5G中的重要技術,針對兩者的理解也是容易混淆的,這裡重點說一下他們的區別。

      OpenStack的眾多元件中有一個最複雜的元件,叫做Neutron,它是實現網路的相關功能,重點是軟體交換中的二層交換,但是在未來運營商級別的5G網路中,Neutron的功能相對沒有那麼強大,就需要藉助於SDN了。

      SDN提出的相對比較早,重點是網路裝置的轉發和控制分離,使控制可以自動化,並且提供了開放的介面;我們目前的資料裝置都是既在上面進行命令配置,又負責資料轉發和路由;說白了就是資料裝置之間的信令互動和媒體流的轉發都在資料裝置本身上面完成。SDN的目的是把分散在各個地域的資料裝置只負責資料流的處理,有一個集中的資料裝置負責各種控制命令的下發;比如有邊緣的資料裝置E意識到它附近網路的拓撲有改動,它會通過OpenFlow協議向控制節點的資料裝置C上報這一改動,控制節點C會把這個拓撲改動以流表的形式下發給相關的邊緣資料裝置,而不再需要各個邊緣資料裝置之間通過各種協議來交換傳遞這個改動的拓撲關係,通過這樣實現了集中控制和分散轉發的目的。

      NFV是運營商為了抗衡SDN提出來的,重點是軟體和硬體解耦,使用通用化的硬體裝置實現網路等相關功能,並能夠根據實際的需要做出動態的調整。

      NFV和SDN的目的都是實現網路功能的虛擬化,但是偏重點不同,他們不是嚴格對立的關係,在5G中是可以有機結合在一起的;NFV偏重於對網元的虛擬化,在物理裝置內部通過Open vSwitch等實現軟體交換的功能;在中心機房(接入網RAN)和中心節點(核心網CN)中分別通過把專用裝置通用化來改造成邊緣雲和核心雲,NFV通過把網元裝置虛擬化,形成了整個雲化中的“點”;SDN則是偏重於對網路裝置(資料裝置)的改造,通過Overlay技術把核心雲和邊緣雲之間進行連結起來,形成了雲化中的“線”,進而組成了雲端計算的整個面;在NFV/SDN的基礎上,還會根據對實時性、頻寬和可靠性等要求的不同分割成不同的網路平面,美其名曰“網路切片”。

 

 隨後,講講CDN的雲化之路

      說了一大通,到現在還沒有涉及到開頭提及的CDN,那麼在整個5G的大環境下,作為增值業務的CDN是要隨著每個基站去部署的,這個也叫CDN下沉;在5G的高清視訊等業務的觸發下,需要部署很多的CDN裝置來作為快取伺服器,那麼就要求CDN在虛擬化的基礎上輕便靈巧方便部署,自然很多人就會想到了容器化,可以藉助這種微服務架構的Docker容器,後續CDN計劃使用K8S來Docker化代替TECS平臺,當然這是以後的事情了。


結束語,雲端計算的本質

      概括起來說,雲端計算的本質是通過網路訪問以自助的方式來獲取使用者所需要的IT相關資源的模式,它的三個顯著特徵就是通過網路、自助獲取和IT資源;雲端計算是未來5G發展中的非常重要的一環,和大資料、物聯網等相輔相成;NFV/SDN是實現雲端計算的兩大支撐技術,而云計算的基礎是虛擬化,OpenStack則是實現虛擬化的開源框架。

      雲端計算已經參透到各種IT領域,阿里即將到來的雙11、運營商很快要上馬的5G以及我們常用的叫車軟體滴滴出行等無不有云計算來支撐,它是推動IT持續發展的幕後英雄,雖然不像蘋果手機等那樣為人們所直接可見,但卻是潤“物”細無聲。所以針對我們的產品,也是需要我們主動地去擁抱雲化,積極地來探索適合我們自己的雲化之路。

 

 題外話,IT的四大方向

根據以上的介紹,從一個側面可以看出未來IT發展的方向主要體現在虛擬化、開源化、自動化和微服務這四個方面:虛擬化就不用再解釋了;像OpenStack、Docker和KVM等都是開源的套件或工具,現在是開源化大行其道的時代;雲化中的編排、自愈和自動擴縮容等都無不體現著自動化的思想,甚至是包括現在流行的人工智慧等都可以看成是自動化的廣義表現形式;Docker的主要思想是把大的應用程式拆分成小的應用,5G的網路切片把整個的網路虛擬出不同的網路平面傳遞不同的流量,這些都是微服務架構的體現,把一個系統拆分成多個服務就好比敏捷開發中把一個需求開發切分成多個特性及使用者故事,通過多個Sprint迭代來逐步實現一樣,方便靈活易於測試,從這一點來看,IT中各個領域內的概念或技術的總體方向都是相通的。

      以上的點點滴滴都是匯聚了以前的理論知識和實際的測試操作,並結合自己的理解,用自己的想法和語言來表達出來的,並不是“人云亦云”;絮絮叨叨了不少,最後都“不知所云”了。由於對雲端計算的瞭解還非常淺薄,其中肯定會有偏差之處,還請各位大咖不吝指正!

640?wx_fmt=jpeg

相關文章