首先來說下網絡自動化部署。如今數據中心網絡規模越來越大,而網絡設備卻依然采用命令行界面的配置管理方式,一些網絡設備供應商也提供了基于Web的圖形界面配置和管理設備,試圖可以從單一的客戶端來處理整個網絡設置,但這樣并沒有簡化很多配置工作,只是把命令行換成GUI界面而已,這樣擁有數百臺甚至上千臺的網絡設備數據中心,在采用人工做網絡配置時既耗時,又容易出錯。尤其是在虛擬化的環境中,一個刀片服務器看似只有少數幾個網絡接口,卻承載著數以百計的虛擬機,手工配置幾乎成為不可能完成的人物,這時很多人想到了自動化部署。通過使用軟件,對數據中心網絡設備進行業務部署,極大縮短了業務部署時間,將技術人員從繁瑣的配置工作中解脫出來。用軟件來代替人工,完成網絡業務部署,這個說起來簡單,做出來卻是很難的,軟件終究還是執行人們提前設置好的各種指令,所以需要提前對可能出現的各種情景進行考慮,并編輯到軟件中去,以便出現這些狀況時,軟件可以自動應對。除了軟件要考慮周全,所有的網絡設備還要“明白”軟件發出的各種指令,并執行。由于軟件實現千差萬別,而網絡設備品牌也很多,這樣真正要實現自動化部署是一件特別復雜的事兒。當前的發展現狀是,自家的自動化軟件與自家的網絡設備可以實現互聯互通,與其它廠商的產品對接依然存在問題,不過隨著網絡技術融合的呼聲不斷升高,跨廠商之間的對接會不斷成功。
自動化部署的軟件很多,在此只做簡單介紹。比如POAP,是思科網絡設備支持的開機自動調配功能。在確保網絡設備連接電纜并通電后,設備可以在網絡中自動進行自身配置,這種零接觸調配可簡化網絡擴展和管理。同時,通過自定義策略可快速檢測并解決布線錯誤;XMPP,是基于可擴展標記語言(XML)的協議,可實現對一組網絡設備同時配置;OpenStack,鼎鼎大名,就不用過多介紹了,還有Openflow,支持在網絡設備上下發轉發流表,是OpenStack的子集;這里再提一點OpenDayLight,是思科主導的一個基于Linux的SDN控制器,也是OpenStack的子集,OpenStack只是一個概念,真正自動化部署實現要靠OpenDayLight。
其次是網絡的可編程能力,又稱軟件定義網絡,SDN成為了網絡可編程能力的代名詞,將網絡設備的軟硬件分離是SDN存在的主要目的。網絡具有可編程能力,能夠降低網絡復雜度,滿足虛擬化和云計算的網絡需求,它的發展對傳統網絡廠家封閉專有控制平面技術產生了破壞性創新,將對網絡廠家變革產生巨大推力和影響,其與自動化部署最大的不同在于對網絡、對流量轉發的控制,是一種可以提供開放可編程接口的新型網絡系統。這種設計理念將網絡的控制層面和轉發層面分離開來,相互之間通過標準接口就可以完成互訪,這樣一臺服務器裝上一個網絡控制軟件,再加上數百臺甚至上千臺便宜的白盒機設備就可以完成網絡部署。一個數據中心網絡的可編程能力體現了這個網絡的先進水平,是未來網絡發展的主流方向。
幾乎所有的網絡廠商都有自己的網絡可編程方案,這也足以說明這正是網絡未來的發展方向。當然,在這一新的領域還沒有誰能取得完全的競爭優勢,畢竟這部分市場還有待開拓。這里列舉幾個有代表性的網絡可編程方案。比如:思科的NX-API,這是思科的可編程的平臺API,它提供了一個基于表層狀態轉化、且保持良好文檔記錄的開放式北向API,同時允許與一個外部協調系統或云管理系統形成廣泛的南向集成。這個平臺API可兼容思科Nexus全系列的產品,未來思科也會將其它系列的產品都集成到一起,形成通用的可編程平臺;Python是一種解釋型、面向對象、動態數據類型的高級程序設計語言,Python內置了很多常見的網絡協議的庫,比如asyncore異步socket處理程序、email消息支持、http客戶端模塊、SMTP服務器模塊、Telnet客戶端模塊等等,因而Python成為了一個強大的網絡編程工具,Python是一種開放的、免費的、提供公共接口的腳本語言,在這個網絡可編程的時代,python受到了很多人的歡迎;容器技術,這是一種Linux操作系統虛擬化的技術,具體包含了多種技術實現細節,這也是一種非常開放的技術,技術來源主要是Docker開源技術、CoreOS開源技術、其它開源技術和商業版本,雖然容器技術主要應用于服務器,但是網絡設備的操作系統都是基于Linux做的二次開發,這樣容器技術同樣適用于網絡操作系統,通過在網絡設備上部署一些容器技術,可以大大提升網絡設備的虛擬化能力。
數據中心技術變革的下一站,必然是來自于網絡部分,這是目前數據中心最急需改變的部分,讓網絡走向開放已經成為所有行業內人士的共識,正是在這樣的需求背景下,涌現出了很多優秀的網絡新技術,這些技術將不斷推動數據中心網絡走向開放。