軟件定義網絡應用部署的制作方法
【專利說明】軟件定義網絡應用部署
[0001]相關申請的交叉引用
[0002]本申請要求2013年9月30日提交的美國臨時申請61/884,905的優先權,該美國臨時申請通過引用并入。
【背景技術】
[0003]軟件定義網絡(SDN)是網絡虛擬化的一種形式,其中控制平面(做出對網絡業務有影響的決策的系統)與數據平面(移動該網絡業務的系統)分離并且被實現為軟件。控制平面指限定在網絡設備中如何處置網絡業務(例如通過協議,如生成樹、開放最短路徑優先、邊界網關協議等)。數據平面指在網絡設備中根據控制平面(例如使用轉發表、路由表、隊列等)實際處置網絡業務。控制平面可以被認為分布在典型的網絡中,其中每個網絡設備包括控制平面和數據平面。結果,如果發生網絡擁塞,則每個網絡設備可以在很大程度上獨立于其它網絡設備而采取校正動作。然而,在SDN中,網絡管理員可以具有對網絡業務的可編程(例如,集中的)控制,而無需對網絡硬件設備進行物理訪問。
【附圖說明】
[0004]圖1是圖不根據本公開的系統的不例的圖。
[0005]圖2是圖示根據本公開的設備的示例的圖。
[0006]圖3是圖示根據本公開的軟件定義網絡(SDN)生態系統的示例的圖。
[0007]圖4是圖示根據本公開的方法的流程圖。
【具體實施方式】
[0008]軟件定義網絡是一種新興的網絡架構,其中網絡控制與轉發分離并且是直接地可編程的。控制(從前緊密地綁定在獨立的網絡設備中)至可訪問的計算設備內的迀移能夠針對應用和網絡服務抽象底層基礎設施,該底層基礎設施可以將網絡視作邏輯實體或虛擬實體。
[0009]一些SDN實現方式可能缺少進程或者包括用于測試新創建的SDN應用的進程。如本文所使用的,SDN應用指如下程序指令:該程序指令可以安裝在SDN控制器(例如,網絡控制器)上,以對新的SDN和/或已有的SDN提供和/或修改功能。例如,測試SDN應用的一些示例可能涉及用于測試SDN應用的多步驟進程。
[0010]相比之下,根據本公開的SDN應用部署可以包括流水線化的工作流,使得應用開發者可以在一個流水線工作流(例如,遠程實驗室至開發工作流)中開發和測試SDN應用。例如,依據本公開,開發者可以開發該SDN應用并且將其部署至遠程測試實驗室。結果,開發者可以上傳他的SDN應用,在其期望環境的版本中測試該應用,并且在一個動作中收集結果的報告(例如,利用經由圖形用戶界面(GUI)的訪問)。
[0011]遠程實驗室至開發工作流的集成(例如,還被稱為工具鏈)可以從開發者工作空間至遠程實驗室直接部署(例如,上傳)昔日編輯并本地測試的應用,在該遠程實驗室中,開發者可以在可能預計該應用在實際部署中會遇到的真實設備網絡中運行該應用。一旦該應用在遠程實驗室中運行,結果和網絡配置就可以被下載至開發者的工作臺以繼續進行工作流(例如,提交至SDN應用商店),如本文將進一步討論的那樣。
[0012]圖1和圖2圖不根據本公開的系統100和設備208的不例。圖1是圖不根據本公開的系統100的示例的圖。系統100可以包括數據庫101、子系統102和/或多個引擎103、104。如本文所使用的,“一”或“多”個事物可以指一個或多個這種事物。例如,“多個微件(widget)”可以指一個或多個微件。子系統可以包括經由通信鏈路與數據庫101通信的多個引擎。系統100可以包括比圖示的引擎更多或更少的引擎,以執行本文描述的多種功能。系統100和/或子系統102可以表示SDN控制器(例如,圖2中示出的設備208等)的軟件和/或硬件。
[0013]多個引擎103、104可以包括被配置為執行本文描述的多種功能(例如,將SDN應用部署在遠程測試實驗室中)的硬件和程序設計的組合。該程序設計可以包括硬接線程序(例如,邏輯)以及存儲在存儲器資源(例如,計算機可讀介質(CRM)、機器可讀介質(MRM)等)中的程序指令(例如,軟件、固件等)。
[0014]開發引擎103可以包括硬件和/或硬件和程序設計的組合,以接收被開發的SDN應用。例如,開發者可以上傳(例如,經由GUI)他或她希望上傳至應用商店的SDN應用。在一些情況下,該SDN應用可以包括新的SDN應用。如本文所使用的,新的或新創建的SDN應用可以包括之前沒有存儲在SDN生態系統內的SDN應用商店中的SDN應用,如本文將參考圖3進一步討論的那樣。SDN應用可以包括使用SDN軟件開發工具包(SDK)開發的SDN應用,如本文將進一步討論的那樣。
[0015]部署引擎104可以包括用于為了測試而將所開發的SDN應用部署在遠程測試實驗室105中的硬件和/或硬件和程序設計的組合。在一些示例中,該部署引擎可以使用文件傳輸協議(FTP)將該SDN應用上傳至該遠程測試實驗室。
[0016]遠程測試實驗室105可以包括用于測試遠離SDN生態系統放置的SDN應用(或其它類型應用)的環境。然而,在一些示例中,遠程測試實驗室105可以位于SDN生態系統內。在一些情況下,遠程測試實驗室105可以是虛擬測試實驗室。虛擬測試實驗室可以包括在云系統上托管的環境,該云系統可以由用戶訪問以測試SDN應用,如本文將參考圖3進一步討論的那樣。該遠程實驗室可以使用真實的設備,但是在一些示例中其可以被認為是虛擬實驗室,因為該實驗室的基礎設施同時在多個開發者之間共享,同時提供他們各自的測試環境之間的隔離。
[0017]在一些示例中,系統100可以包括捕獲引擎(未在圖1示出),該捕獲引擎用于捕獲在遠程測試實驗室中對該應用執行的測試的測試結果。開發者可以接收所捕獲的這些測試結果(例如,該環境中的正面或負面的性能)并且在嘗試將他或她的SDN應用進入應用商店時使用它們。在一些實例中,捕獲引擎可以壓縮或打包測試結果(例如,以與SDN應用的提交一起發送進入應用商店)。打包可以包括例如對進入應用商店可能需要的任何信息(例如,測試結果、包信息等)進行編譯。
[0018]多個引擎103、104中的每個可以包括可以起到參考圖2描述的相應模塊的作用的硬件和/或硬件和程序設計的組合。例如,開發引擎103可以包括可以起到開發模塊213的作用的硬件和/或硬件和程序設計的組合。在另一示例中,部署引擎104可以包括可以起到部署模塊214的作用的硬件和/或硬件和程序設計的組合。
[0019]圖2是圖示根據本公開的設備208(例如,SDN控制器)的示例的圖。設備208可以利用軟件、硬件、固件和/或邏輯來執行多種功能。
[0020]設備208可以是被配置為執行多種功能(例如,動作)的硬件和程序指令的組合。硬件可以例如包括多個處理資源209和多個存儲器資源211 (例如,CRM、MRM、數據庫等)。存儲器資源211可以位于設備208的內部和/或外部(例如,設備208可以包括內部存儲器資源并且可訪問外部存儲器資源)。程序指令(例如,機器可讀指令(MRI))可以包括在MRM上存儲的、用于執行特定功能(例如,動作,如向多個用戶提供對多個SDN應用的訪問)的指令。MRI可以由處理資源209中的一個或多個執行。存儲器資源211可以以有線的方式和/或無線的方式耦接至設備208。例如,存儲器資源211可以是內部存儲器、便攜式存儲器、便攜式盤和/或與另一資源關聯(例如使MRI能夠穿越像因特網這樣的網絡傳輸和/或執行)的存儲器。
[0021]存儲器資源211可以是非暫時性的并且可以包括易失性的和/或非易失性的存儲器。易失性的存儲器可以包括依賴電力來存儲信息的存儲器,如多種動態隨機存取存儲器(DRAM)等。非易失性的存儲器可以包括不依賴電力來存儲信息的存儲器。非易失性的存儲器的示例可以包括固態介質,如閃存,電可擦除可編程只讀存儲器(EEPROM),相變隨機存取存儲器(PCRAM),磁性存儲器,如硬盤,磁帶驅動器,軟盤和/或磁帶存儲器,光盤,數字多功能盤(DVD),藍光盤(BD),光盤(CD)和/或固態驅動器(SSD)等,以及