精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

從SDN以及Docker看網絡模型發生的變革

責任編輯:editor005

2015-02-10 14:06:03

摘自:dockerone

SocketPlane是一個正在發展中的混合的網路模型,它基于SDN的原則構建,并且可以被應用到了Docker的環境中。用戶可以通過命令行工具與Docker容器進行交互,也可以使用socketplane的相關命令來創建、刪除虛擬網絡或進行其他的操作。

  New Stack 曾經在軟件自定義網絡方面發表了一系列的文章。今天的這篇文章可以算是這個系列的一部分。在part 1中,我們對SDN進行了定義,并且詳盡地說明了各種SDN控制器及相關框架之間的區別。在我們這個系列的part 2 ,我們介紹了Trema,這是一個用開發OpenFlow控制器的框架,是用Ruby和C語言所寫的。在Part 3中,我們探索了NOX,這個是最開始的OpenFlow控制器。在part4中,我們介紹了Ryu,這是一個由NTT實驗室所維護的開源SDN控制器。在part5,我們了解了FloodLight,這也是一個OpenFlow控制器,有著超過15000的下載次數。在part6中,我們主要像介紹的是OpenDayLight,這也是一個SDN控制器,被很多廠家所支持。

  在不久之前,一個同行告訴我,他發現許多人都希望把傳統的網絡轉化成軟件自定義網絡。

  我同意他的觀點,那么對于Docker呢?在SDN之前,Docker已經帶來了許多新的變化,讓資源密度和新的計算理念變成了焦點話題。由于Docker所帶來的影響,傳統應用和各層服務平臺正發生著不同程度的改變,這些不同層次的服務如何被SDN所影響,反過來它們又如何影響SDN?

  當越來越多的服務和軟件開始運行在復雜的、快速的、分布式的基礎設施上,問題就出現了。越來越多的應用在架構設計上可能需要跨數據中心進行同步。這些應用可能由一些可交互的服務構成,并且對于實時流數據的處理上(processing real-time streaming data)具有事件驅動能力。監控服務也會變得越來越重要,用戶需要來檢測運行在OpenStack、AWS云服務或者其他基礎設施平臺上的容器所發生的異常。

  這些新的應用在架構上的復雜性對于大多數開發者而言將是不可見的。我們也也希望網絡可以在沒有服務人員幫助的狀態下正常工作。目前為止,大家的注意力主要集中在Docker上,Docker被視為是一個新的堆棧轉化(stack’s transformation)的標志。隨著Docker及相關技術的到來,在技術棧(technology stack)的各個層面上將會產生許多新的需求。

  在過去的幾周,Sridhar Rao對軟件自定義網絡的相關內容進行了一系列的介紹。內容從市場上的第一代SDN工具開始,一直到SDN是如何走向成熟。現在我們將興趣轉移到容器相關技術上。Docker以及其相關的應用平臺的出現,讓我們對于網絡模式的思考有了一種既熟悉又陌生的感覺。Docker中所使用的新的網絡技術一方面可以作為SDN應用的一個先例,另一方面,它還對其他因素進行了考慮,比如資源利用密度以及數據引力(data gravity),這些議題也隨著輕量級容器技術和微服務理念的發展逐漸產生。

  SocketPlane是一個正在發展中的混合的網路模型,它基于SDN的原則構建,并且可以被應用到了Docker的環境中。

  SocketPlane正在逐漸發展成為一個可編程的平臺,它把DevOps放在一個網絡環境中。這里有一篇關于SocketPlane的不錯的文章。文中介紹了 SocketPlane如何在不同的主機之間建立一個 VXLAN隧道,以此來將不同主機上的Docker容器連接起來,使其處在同一個虛擬邏輯網絡中,整個過程并不需要遠程或者額外的 SDN控制器進行控制。

  用戶可以通過命令行工具與Docker容器進行交互,也可以使用socketplane的相關命令來創建、刪除虛擬網絡或進行其他的操作。

  SocketPlane使用Hashicorp的Consul工具,使其作為一個輕量級的控制平臺。在網絡的連通性上,SocketPlane通過Open vSwitch來連接到Consul集群上。一旦Docker主機被加入進來,代理程序就會啟動一個Docker實例,并且連接到集群中。之后容器看起來就像一個虛擬機。

  由于Docker相關技術帶來的變化,新一代的網絡技術將會被重新定義,容器在跨多服務器、多主機的環境中的協同工作能力也會得到加強。產業界預期容器的數目的使用上可能至少有兩個數量級的增長,隨著容器使用數目的增加,后續的容器的相關管理技術也會不斷發展,這將有可能在相關領域產生更多的創新。

  “你可能會看到,對于短時間周期內執行的大量的計算任務,容器數目可能會達到一個新的數量級 ” SocketPlane的John Willis這樣說,“現在所關注的問題可以算是‘納秒級計算任務’,在每一周,開啟或者停止運行的實例的數目級別可能會從1000個實例到1億個不等。

  在去年12月份的Dockercon Europe上,Wills讓我們了解了他的觀點,Willis從供應商的角度上進行了反思,告訴我們接下來的網絡世界可能會發生什么。許多其他的供應商也做了演講,我們可能會在接下來的文章中進行具體的介紹。特別地,Weave作為一個使用以容器為中心的網絡技術的例子,也引起了一些關注。CoreOS也開發了Flannel,包括Docker也有其自己相關的網絡配置功能。

  Wills認為 SDN這個術語需要包含的內容太多,因此可以從各種不同的角度對其進行解釋。為什么會這樣?因為網絡的確很難管理,并且適應性很差,發展更新也很困難,理解起來也不太容易。如果把這些因素都考慮進來,網絡問題的確會變得非常復雜。在另一方面,SDN期望數據層可以有更好的適應性,并且可以將控制層從物理設備上移除。但是這樣做會使控制層的集中化的程度過高,以這樣的方式管理一個以容器為中心的生態系統是不切實際的。

  “中央大腦”模式所存在的問題

  MarkBurgess的這篇文章很有啟發,集中化的網絡可能就像是以下這樣:我們需要一個大腦,但是大腦實際上能處理的內容是有限的。因此我們需要許多大腦來一起工作。這好比我們通過創建一個社群來繼承我們的知識,而不僅僅是依賴一個單獨個體來掌握全部的知識。

  長久以來,集中化的模型一直發揮著作用。比如你可以通過硬件來構建一個網絡,這個網絡可能由一個中心結點來控制。SDN通常就是基于這個原則來創建的。它所依賴的理念是:將集中化的控制層和數據層相分離。但更有意義的一種情況應該是使用一個非集中化(de-centralized)的網絡,這個思路借用了我們社會構成中的“集中式的大腦”和“分散式的知識存儲”的原理。在現實社會中,從來沒有一個大腦可以控制我們生活和工作的方式。正是由于社會的“集群性質”(collective nature of society),于是我們就產生出了一系列的概念和想法,這也反應出了人類社會的本質。更進一步來說,一個大腦所能處理的信息是有限的,而一個有集體智慧的社會群體是由進行成千上萬個協同工作的大腦所組成的。Burgess通過下面的方式來說明:


  Burgess幫助構建了CF引擎,并且和SocketPlane一同工作了幾個月。Burgess把這個問題比作,我們如何把工作負載推動到邊緣(push the loads to the edges)。暴力模型可能看起來更有效率但是它們實際上很慢并且容易產生很多問題:

  對于我們的問題,用社會模型打比方可能比用大腦模型要更恰當,因為在一個社會中,可以形成許多局部的“團體” ,這些“團體”之間可以在邊界處進行微弱的交互,或者信息的交換。如果其中某一個連接失敗,并沒有必要把它與剩余的部分切斷,它有一定的自治能力來重新配置并且適應。也沒有必要把系統的每個部分之間都連通起來,這樣的話,對于負載的處理和決策的制定就可能變成一個純粹的暴力破解問題。

  Docker很好地融入了SocketPlane提供的這種混合的網絡模式。如果Docker的網絡模式僅僅依賴于一個中央化的,“單一大腦”的方式,情況可能會變得很難處理。比如:一個服務器上有50臺虛擬機,則一個集中式的SDN平臺大約可以支持500個主機,每臺主機上有50個虛擬機。如果每一個虛擬機上有5000個容器,你將怎樣操作?在這種環境下,集中化的操作可能會變得難以實施。因此我們需要新的方法來應對網絡行為的固有的變化,這種網絡行為所發生的變化可能是由容器的數量增減或者掛載的數據卷增減所引起的。

  Wills還指出了Docker的兩個發展趨勢:

  資源密度:正如他的同事Brent Salisbury在上周所寫的那樣,操作系統正變得越來越碎片化。由于Docker相關技術的到來,資源的利用狀況會發生變化,這將會改變應用在網絡環境中的行為方式。現今,OS之間相互合并的趨勢變得越來越強,或許最終會從客戶端上消失。在一個有成百上千個主機的環境中,可能會有幾千個容器運行在同一個物理服務器上,

  數據重力:這個概念由Basho CTO Dave McCrory所提出,這個概念是指數據應該被看成是一種能夠吸引更多其他事物的東西。更多的數據會吸引更多的服務和應用。隨著搜集到的數據越來越多,不可避免的,我們需要更多的計算資源,需要更多的方式來調用服務。計算能力可能是流式的或者是集群式的,就像是在AWS Lambda中已經實現的那樣。

  Adrian Cockcroft在Dockercon Europe的演講中也談到了這一點:

  SocketPlane把它們的解決方案稱為 retro-SDN,控制層有一個邏輯可以填充到數據層。它符合flow tables 的要求。舉例來說,當一個packet經過的時候,按照程序對其進行路由,允許為其進行動態的決策。VMware把這稱為微分段(micro-segmentation),Willis說。它將每一個分段隔離,創建隧道。VLAN是一個在交換機上多租戶的抽象。但是這個是基于硬件的解決方案。在云端,用戶的計算資源并沒有在某一個具體的服務器上,而是動態地分布在虛擬的網絡中。這從更廣泛的層面而言,就涉及到Willis如何定義他所說的疊加網絡(overlay network),創建這樣一個邏輯上的網絡并不需要與任何物理交換機耦合,并且能很容易地進行修改,這些操作可以由控制層到數據層全部完成。這就是SDN所希望實現的。服務可以移動到數據層并且被操縱。在Github上,SocketPlane的疊加網絡被這樣描述:

  疊加網絡在主機端點之間建立起隧道,在我們的例子中,這些端點都是Open vSwitch。對于這樣的場景,優勢是用戶不需要擔心 子網/vlan 或者其他任何的第二層網絡的使用限制。這只是我們提出的在網絡中部署容器的其中一種方法。Open vSwitch的重要性在于網絡的性能和一些用于高級網絡配置的API。

  Willis認為容器的使用可能會達到一個新的數量級,上千個容器可能在一個服務器上,這會引起很多的問題。隨著微服務理念的發展,任何數量的服務都可能運行在容器上。這意味著以數據重力、資源密度等概念為理念的新的設計模式將會創建一個完全不同的方法來對計算資源進行分配。

  新的準則可能是:計算資源只生存幾分鐘或者幾秒。(“The norm may be compute living for minutes or maybe seconds.”)

  以后不再需要集中控制的網絡。就像一個社會的組織形態。也沒有必要去進行集中化的組織以專制的形式運行。我們需要考慮的是如何構建中心樞紐。我們看到在一些極客社區中,并沒有一個人試圖去掌握所有的知識,社區的知識深度更多的通過集體智慧的形式來體現。

  這提供了一種不同的方法來看待我們的網絡本身。它不是一個“單一大腦”的形式,更像是一個集中數據平臺的網絡,可以動態地進行決策。

  或許這對我們而言,可以用一種不同的方式來思考底層基礎設施,網絡作為一個社區的形式并非是一個單一的個體,我們可以參考這種新的思路來構建新的系統。

  本文來源:dockerone  翻譯:王哲   原文鏈接:http://dockerone.com/article/188

鏈接已復制,快去分享吧

企業網版權所有?2010-2024 京ICP備09108050號-6京公網安備 11010502049343號

  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 阿鲁科尔沁旗| 晋宁县| 江阴市| 金秀| 黄陵县| 武鸣县| 乾安县| 英吉沙县| 利津县| 崇州市| 日土县| 昭平县| 肃南| 介休市| 尚义县| 治多县| 甘谷县| 贵溪市| 东阳市| 酒泉市| 夏津县| 中超| 三门峡市| 大埔区| 元氏县| 西乌珠穆沁旗| 扎囊县| 肃南| 沙湾县| 柯坪县| 葵青区| 开远市| 安陆市| 平邑县| 晋城| 德州市| 电白县| 芜湖县| 佛山市| 武威市| 洛川县|