1. 程式人生 > >企業級私有云環境下的OpenStack核心技術需求和分析

企業級私有云環境下的OpenStack核心技術需求和分析

企業級私有云環境下的核心技術需求有哪些?

  1. 高I/O效能:支援大型企業級應用,以及降低CapEx(為滿足特定需求,可以投入更少的計算資源)。
  2. 功能簡單、介面直觀:讓企業IT團隊能夠在短時間內掌握基本維護技巧,降低OpEx。
  3. 自動化運維:部署、擴容、監控、告警、自動伸縮,都能通過基本的UI操作全部完成,降低OpEx。

那麼要滿足這樣的核心需求,OpenStack-Powered產品該如何設計?

1. 介面互動

從使用者角度看,使用者第一眼看到的是什麼?介面!所以介面直觀,讓使用者一眼看到就知道怎麼用。

使用者怎麼樣才能知道如何使用?VMware和Microsoft已經培養好了使用者習慣,我們在介面互動設計時只要模仿即可,

模仿主流產品的介面互動,讓使用者能夠不用培訓就能入手,建立VM,登入VM,安裝應用,參看和配置監控和告警。

2. 功能簡單

如果功能特別複雜,就會導致介面複雜,一層層菜單向下走,而不是一個平面操作,介面互動就不可能簡潔。

所以,介面直觀的一個引申,就是使用者介面的功能要簡單,特別是針對OpenStack,

如果實在無法化簡,有一個實踐可以參考,就是按照使用者常用功能、高階功能,

在使用者登入後,選單欄分開成兩個Panel,Simple Operations和Advanced Functions。

Simple Operations:指代正常使用的虛擬化、必須要用到的功能。

Advanced Functions:指代所有可選的雲的高階功能,包括SDN、Backup、Alarming、Auto-Scaling。

3. 自動化運維

既然是自動化,則使用者只要簡單配置,甚至不需要配置,就可以達到一個預設大多數使用者都能接受的效果。

4. 虛擬化管理模組如何滿足呢?

大多數功能都是VM管理,所以不需要化簡。

但如果優化的話,儘量在介面上提供能夠一步走到底的Batch Operation,而不是要讓使用者一個個點開操作。

5. SDN模組如何滿足需求?

只要能實現一個穩定的二層控制面,SDN的任務其實就完成了。由於每個客戶的物理網路環境和對網路需求

確實千差萬別,需要定製,但實際上選擇面也不是多到難以抉擇。

(1)Provider Network

如果客戶只是最為簡單的虛擬化管理需求,那麼將Neutron虛擬網路直接掛接到物理網路上,實現一個Flat網路即可。

如果客戶需要網路隔離,但是也有Admin統一納管,那麼還是使用該技術,指定多個ProviderNet,實現一個帶物理隔離的Flat網路。

(2)Multi-tenancy Network Isolation

如果客戶方需要對多個部門實現網路隔離,並且需要能夠自定義網路,那麼就需要用到VLAN。

如果客戶方規模大到VLAN無法承載,才要使用VxLAN。

如果客戶方有多個DC,並且二層打通,那麼為了資源最大化利用,也要使用VxLAN。

(3)DHCP-Agent

如果允許VM直接配置靜態IP,則無需使用DHCP-Agent。

如果使用Provider Network,那麼可以直接在該物理網路上,啟動外部DHCP Server。

如果需要自定義網路,則需要DHCP-Agent,目前都能支援Failover和A/A。

(4)L3-Agent

沒事,別找抽,企業私有云一般都不會有NAT的需求,這個是公有云的需求。

沒見過哪個用VMware虛機的企業在內部運維還去配置兩層IP。

實在客戶需要NAT,那麼優先在物理網路的三層裝置上做。

實在要通過SDN執行NAT,則在技術支援條件好的環境下,優先選擇第三方企業級SDN解決方案,比如Midonet、Centec等。

然後再是DVR(前提是啟動L3-Agent HA),最後是DragonFlow(如果其L3 Controller Agent支援HA,則DragonFlow優先於DVR)。

(5)LBaaS-Agent

這個是SPOF,看客戶需求部署。

(6)VPNaaS-Agent

這個是SPOF,看客戶需求部署。

(7)FWaaS

這個是L3-Agent的Extension。

(8)效能

網路高IO也是核心需求,所以在資料包的轉發面上,、

儘量減少虛擬化,儘量減少Kernel協議棧的干預。

(9)運維複雜度

基於Flow的轉發面的使用,需要引入額外運維的開銷和除錯複雜度,比如DVR,Dragonflow等。

6. 儲存模組如何滿足需求?

資料冗餘,然後就是高I/O,高I/O,高I/O。否則很多企業級應用(IO密集型)根本沒辦法跑。

所謂IO密集型應用,主要指代應用過程中產生大量使用者端的實時交易,交易越密集,IO要求越高。

7. 計算(虛擬化技術)模組如何滿足需求?

計算模組實際上貫穿是一個最為核心的模組,無論網路I/O、儲存I/O,在虛擬化層面上,都要做足優化。

包括CPU多核架構、記憶體、裝置驅動層面。但是這些優化都應該由自動化部署系統去完成,不需要體現在使用者介面上。

至於是否在產品中直接使用容器虛擬化,則是另一個話題。因為容器虛擬化技術本身簡單,但背後需要重構一個App-Centric的

體系,並且企業IT部門也要有一個完全不同的DevOps面貌來支撐這個體系,這個不是短時間內可以落地的。