TW202224395A - 用於跨越多個計算域進行應用程式部署之方法及其裝置 - Google Patents

用於跨越多個計算域進行應用程式部署之方法及其裝置 Download PDF

Info

Publication number
TW202224395A
TW202224395A TW110145286A TW110145286A TW202224395A TW 202224395 A TW202224395 A TW 202224395A TW 110145286 A TW110145286 A TW 110145286A TW 110145286 A TW110145286 A TW 110145286A TW 202224395 A TW202224395 A TW 202224395A
Authority
TW
Taiwan
Prior art keywords
application
computing
subdomain
hardware resources
disassembled
Prior art date
Application number
TW110145286A
Other languages
English (en)
Inventor
提摩太 沃斯利
提摩太 S 米歇爾
喬爾 本傑明 摩西
Original Assignee
美商F5公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商F5公司 filed Critical 美商F5公司
Publication of TW202224395A publication Critical patent/TW202224395A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2475Traffic characterised by specific attributes, e.g. priority or QoS for supporting traffic characterised by the type of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

本發明揭露與跨越網路裝置之應用程式部署相關之技術,該等網路裝置包括智慧型網路介面卡。在一個實例中,一種方法包括跨越多個區域連接計算子域分派應用程式。該等子域可包括一般用途計算子域及特殊用途計算子域之混合,例如像主電腦及相關聯智慧型網路介面裝置或系統,例如像智慧型網路介面卡(NIC)。該等子域各自可運行管理程式,該等管理程式經橋接以允許單個虛擬機跨越該等子域操作。該應用程式可包括多個部分。例如,可依據不同功能對應用程式進行劃分。可對該等應用程式部分進行標記以指示將在哪一子域內執行該等應用程式部分。若所選子域具有可用的必要資源,則可將該應用程式拆解並分派給該所選子域。

Description

用於跨越多個計算域進行應用程式部署之方法及其裝置
本發明與用於跨越多個計算域進行應用程式部署之方法及其裝置有關。 相關申請案之交互引用
本申請案主張2020年12月7日提出申請之序列號為63/122,280之美國臨時申請案之權益。該美國臨時申請案之全部內容如下文充分陳述般以引用之方式並入本文。
可跨越不同計算裝置分派或分割軟體應用程式。舉例而言,用戶端-伺服器架構可在用戶端裝置(例如,膝上型電腦或行動裝置)與一或多個應用程式伺服器電腦之間分割任務,該用戶端裝置與該一或多個應用程式伺服器電腦藉由互連網路(例如,網際網路)連接且由計算服務及/或計算資源之提供商管理。應用程式伺服器電腦可執行軟體應用程式以向用戶端裝置提供虛擬資源、軟體服務及/或內容。舉例而言,用戶端裝置可經由互連網路向應用程式伺服器電腦發送請求來發起與應用程式伺服器電腦之通信工作階段,且伺服器可對該請求做出回應。另外或另一選擇為,應用程式伺服器電腦可經由互連網路向用戶端裝置推送資訊(無需發起請求)。隨著尋求存取應用程式伺服器電腦之用戶端裝置之數目增大,可在用戶端裝置與應用程式伺服器電腦之間添加中間計算裝置(例如,網路訊務管理計算裝置)。網路訊務管理計算裝置可執行用戶端-伺服器架構之安全性、處理及/或路由功能,例如在用戶端與應用程式伺服器之間對訊務進行加密及/或解密。舉例而言,網路訊務管理計算裝置可潛在地增大用戶端-伺服器架構之可擴縮性、可用性、安全性及/或效能。然而,隨著應用程式之複雜性增大及互連裝置之數目增大,實施包括中間計算裝置之高效能、高度可用且安全之用戶端-伺服器架構可能面臨諸多挑戰。
本文提供與跨越多個計算域之應用程式部署相關之技術。在一個實例中,一種方法提供跨越區域鏈接計算環境部署應用程式,區域鏈接計算環境中之一或多者係包括智慧型網路介面卡(NIC)之網路裝置。藉由本文之本揭露將瞭解,所提出之技術允許在不對應用程式做出修改之情況下在同一計算域之不同計算子域中之多個虛擬機上同時執行應用程式。
圖1係架構之方塊圖,該架構包括複數個區域連接計算環境102、104、106。如所繪示,計算環境可包括一或多個一般計算單元(包括處理器108)、記憶體110及通信介面112,但該架構在其他組態中可包括其他類型或數目之元件。如進一步繪示,計算環境可包括一或多個一般用途計算資源及專門化計算資源114、116(例如智慧型網路介面系統、可程式化加速器等)。智慧型網路介面系統或可程式化加速器可包括用於執行計算任務之一般用途硬體、專門化電路系統及/或可組態硬體。可將可組態硬體(亦被稱為可程式化硬體)程式化及/或重新程式化以實施不同硬體加速器。可組態硬體之實例包括現場可程式化閘陣列(FPGA)及複雜可程式化邏輯裝置(CPLD)。可使用韌體將硬體加速器進一步程式化。
將關於本文進一步闡述,該架構提供跨越包括智慧型網路介面卡之複數個區域連接計算子域提供應用程式及服務部署之若干個優點,包括方法、非暫時性電腦可讀取媒體、雲端計算系統、軟體分派系統、服務管理系統、網路訊務管理系統及網路訊務管理設備。
此外,應用程式可在基於雲端之計算環境中操作。可在虛擬機或虛擬伺服器內或以虛擬機或虛擬伺服器形式執行應用程式,可在基於雲端之計算環境中管理該等虛擬機或虛擬伺服器。此外,應用程式及甚至網路訊務管理設備本身可位於在基於雲端之計算環境中運行之虛擬伺服器中,而非連結至一或多個特定實體網路計算裝置。此外,應用程式可在一或多個虛擬機(VM)中運行,該一或多個虛擬機在網路訊務管理設備上執行。此外且關於本揭露將瞭解,可同時在同一計算域之不同計算子域中之多個虛擬機上執行應用程式。另外,在此技術之一或多個實例中,可由管理程式118管理或監督在網路訊務管理設備上運行之虛擬機。
可在伺服器電腦上以各種方式執行程式,例如直接在OS 120上、在管理程式118內或在容器運行時間122內。舉例而言,可自OS啟動程式且使用該OS執行程式。當自OS啟動程式時,程式可直接存取OS之服務。另外或另一選擇為,可於在OS上運行之囊封軟體環境內執行程式。
程式可在由管理程式(例如,管理程式)管理之虛擬機內運行。虛擬機係模擬電腦系統。虛擬機可提供虛擬之儲存、計算、網路連接及記憶體資源。管理程式係執行對虛擬機之模擬且提供客體作業系統以在客體作業系統內執行程式之軟體。類型1管理程式(亦被稱為裸金屬管理程式(bare metal hypervisor))直接在硬體(例如,處理器)上執行,且類型2管理程式在提供虛擬化服務之主機作業系統(例如,OS)上執行。管理程式在程式與OS及實體硬體之間提供抽象層。換言之,程式在由管理程式模擬之虛擬機之客體作業系統上執行,且管理程式與OS通信,OS與伺服器電腦之硬體通信。使用虛擬機可使程式更具遷移性(例如,由於虛擬機即使當在不同實體硬體上執行時仍可具有相同架構)且可當在伺服器電腦上同時運行多個程式時潛在地使伺服器電腦資源之分配更公平。管理程式可藉由為個別虛擬機分配私有資源來提供在管理程式上執行之不同虛擬機之間的隔離。另一方面,虛擬機可添加抽象層(與直接在OS上執行相比),該抽象層可能潛在地使程式之執行不太高效。實例類型2管理程式係基於內核之虛擬機(KVM),該基於內核之虛擬機與某些Linux發行版封裝在一起;實例類型1管理程式係VMWARE管理程式。
程式可在容器運行時間(例如,容器運行時間)內運行。容器運行時間係提供囊封環境以程式在該囊封環境內執行之軟體。囊封環境可不像在管理程式內執行之全虛擬機及客體作業系統那麼複雜。舉例而言,容器之間可共用OS常式,此舉可在容器之間提供比在虛擬機之間少之隔離。在容器內運行之一或多個程式可被統稱為服務或微服務。容器運行時間可為在容器運行時間上執行之服務提供儲存、計算、網路連接及記憶體資源。多個服務可在容器運行時間內運行。與直接在OS上運行相比,容器運行時間可潛在地使得程式更具遷移性(例如,由於容器即使在不同實體硬體上執行時仍可具有相同架構)。在容器運行時間內執行之程式可能不如直接在OS上運行高效,但比在虛擬機中運行高效。另一方面,與在不同虛擬機中運行之程式相比,在容器運行時間內執行之程式可更受在容器運行時間內執行之其他程式影響。實例容器運行時間係Docker及Kubernetes。
雖然在此實例中將架構圖解說明為包括單個裝置,但其他實例中之網路訊務管理設備可包括複數個裝置或片,該複數個裝置或片各自具有實施此技術之一或多個步驟之一或多個處理器(每一處理器具有一或多個處理核心)。在此等實例中,裝置中之一或多者可具有專用通信介面或記憶體。另一選擇為,裝置中之一或多者可利用網路訊務管理設備中所包括之一或多個其他裝置之記憶體、通信介面或其他硬體或軟體組件。
可使用不同系統級架構及網路級架構來實施圖1中所述的包括複數個區域連接計算環境之架構。舉一個實例,可程式化加速器協調程式可在每一節點(例如,伺服器電腦)上執行且可用於協調該節點上之所有可程式化加速器之組態。更高級別(例如,在資料中心或機架級)之控制、解釋及監測可使用節點級協調程式之管理介面或應用程式化介面(API)來達成。舉另一實例,可程式化加速器協調程式可封裝在服務內且可在計算節點上之容器運行時間模組內執行,並且可用於協調節點上之可程式化加速器之組態。容器級協調程式可使得一般容器管理系統(例如Kubernetes)能夠部署且擴縮利用可程式化加速器之應用程式服務。容器級協調程式與節點級協調程式共用各方面,且參考圖2及圖8加以進一步闡述。舉另一實例,可在管理伺服器電腦及額外計算節點當中分派可程式化加速器協調程式以實施軟體即服務應用程式。所分派之協調程式可大規模地執行且協調複數個智慧型網路介面系統或可程式化加速器。所分派之協調程式與節點級協調程式共用各方面且參考圖3加以進一步闡述。
圖2係包括分散式計算系統之實例架構之方塊圖,該分散式計算系統實施排程服務且協調智慧型網路介面系統或可程式化加速器之組態之方法。該架構能夠執行由一或多個服務(例如負載平衡、速率監測、快取、加密/解密、工作階段管理(包括密鑰產生)、位址轉換、存取控制等)及/或微服務組成之工作負載。分散式計算系統可包括管理電腦202、一或多個計算節點204、檔案儲存庫及遙測資料庫,其中該等組件中之每一者可經由通信通道(例如,私有通信網路或公共通信網路)彼此通信。通常,該等組件創建服務框架(亦被稱為容器框架)以用於管理在計算節點叢集上執行之工作負載。
服務框架係軟體管理系統,其可用於管理在計算節點叢集上執行之軟體工作負載。實例服務框架係Kubernetes。該框架可提供將工作負載與執行該工作負載之實體硬體分離之基礎設施。藉由將工作負載與硬體分離,工作負載可潛在地跨越不同硬體及作業系統而更具遷移性。框架可包括工作負載控制功能(亦被稱為控制平面或管理功能)及工作負載執行功能(亦被稱為資料平面)。控制功能可使得工作負載能夠開始操作,分派其計算任務,發現其他服務及/或工作負載、發現框架之資源(例如儲存、網路連接及傳訊)以及監測資源利用及可用性。執行功能可使得工作負載能夠在節點叢集上執行,與其他工作負載通信且利用計算節點之資源。服務框架可與節點叢集之一或多個作業系統及/或與節點之硬體通信。
通常,實施服務框架以提供在一般用途電腦叢集上執行工作負載之平臺,該一般用途電腦包括一般用途計算資源,例如一般用途處理器及記憶體。服務框架可基於所估計之工作負載要求及可用計算資源來將工作負載排程給計算節點。舉例而言,工作負載可包括多種服務,其中每一服務執行工作負載之子任務且與其他服務相互操作以執行工作負載之操作。可基於服務類型、所估計之資源要求及對計算節點之實時負荷監測來部署及縮放工作負載之服務。排程係將給定任務(例如,服務)指派給特定資源(例如,計算節點)以使得可完成任務。排程器係執行排程之硬體及/或軟體。舉例而言,排程器可用於排程給定工作負載及/或多個工作負載之子任務(例如,服務)以在計算叢集上執行。
由架構執行之服務(亦被稱為微服務或工作負載)可使用捆綁在該服務內之一或多個應用程式來執行。服務係有限範圍之可執行軟體碼,該可執行軟體碼可被獨立地部署且支援與其他服務互操作性。服務通常使用輕量協定來經由網路及/或在服務框架內進行通信。給定服務可由一或多個微服務組成,該一或多個微服務相互操作以執行服務之功能。舉例而言,可使用一組微服務來執行服務,例如處理網路訊務之獨特可識別片段。不同服務可處理網路訊務之不同片段。舉例而言,可以不同方式處置網路訊務之不同片段,例如藉由使用不同之解聚(DAG)演算法、通信協定、服務品質(QoS)及速率限制以及阻斷服務(DOS)保護。可使用不同屬性及/或網路封包之一或多個層內之欄位來識別訊務之不同片段。
圖3係在分散式計算系統上實施軟體即服務之實例架構之方塊圖,該分散式計算系統包括用於組態智慧型網路介面系統或可程式化加速器之協調程式邏輯。軟體即服務之提供商可在資料中心代管軟體應用程式且允許租戶(例如,顧客)使用網路連接存取軟體。軟體即服務架構可係可擴縮的以服務於具有不同數目之工作負載的不同數目之租戶。舉例而言,實施軟體即服務之架構可在多個分散式伺服器302、304處代管軟體應用程式。伺服器電腦之數目可根據負荷(可與租戶數目成比例)及軟體應用程式之租戶使用量而變化。可使用管理電腦306控制執行軟體應用程式之分散式伺服器。舉例而言,管理電腦306可包括應用程式負載平衡邏輯308,應用負載平衡邏輯308可監測軟體應用程式之使用且判定何時部署及/或削減執行軟體應用程式之額外分散式伺服器。可使用中心化協調程式邏輯及協調程式代理來協調對執行軟體應用程式之分散式伺服器之數目之調整。
參考圖4,圖解說明支援可網路存取之用戶端-伺服器軟體應用程式之示例性計算基礎設施,該示例性計算基礎設施可包括各種互連計算裝置(例如,網路訊務裝置)以潛在地增大用戶端-伺服器架構之可擴縮性、可用性、安全性及/或效能。舉一個實例,中間伺服器電腦(例如,網路訊務管理裝置或設備402)可在邏輯上位於尋求存取用戶端-伺服器軟體應用程式之用戶端裝置404、406與執行用戶端-伺服器軟體應用程式之伺服器側之伺服器電腦408、410之間。中間伺服器電腦可執行各種代理及其他服務,例如負載平衡、速率監測、快取、加密/解密、工作階段管理(包括密鑰產生)、位址轉換及/或存取控制(舉例而言)。
圖2至圖4中揭露網路訊務管理設備、節點裝置、管理裝置、伺服器裝置及用戶端裝置作為專用硬體裝置。然而,亦可以軟體形式在網路訊務管理系統中之一或多個其他裝置內實施網路訊務管理設備、節點裝置、管理裝置、伺服器裝置及用戶端裝置中的一或多者。如本文所使用,術語“模組”指代專用硬體裝置或設備形式之實施方案或軟體形式之實施方案,該軟體由另一硬體裝置或設備代管,該另一硬體裝置或設備可能正在代管一或多個其他軟體組件或實施方案。
舉一個實例,網路裝置及其組件、模型或應用中之任一者可係以在伺服器裝置中之一者上執行之軟體形式來實施之模組,且亦可在其他實例中使用實施方案之諸多其他排列及類型。此外,網路訊務管理設備、伺服器裝置及用戶端裝置中之任一者或所有可被實施且在本文可被稱為模組。
此實例中之網路訊務管理系統之伺服器裝置中之每一者包括藉由區域互連件或其他通信鏈路耦合在一起的處理器、記憶體及通信介面,但可使用其他數目或類型之組件。此實例中之伺服器裝置可包括例如應用程式伺服器、資料庫伺服器、存取控制伺服器或加密伺服器,上述伺服器沿著預期之通信路徑基於應用程式邏輯交換通信以促進用戶端裝置之使用者與應用程式的交互。
儘管將伺服器裝置圖解說明為單一裝置,但可跨越一或多個不同網路計算裝置分派伺服器裝置中之每一者之一或多個動作,該一或多個不同網路計算裝置一起構成伺服器裝置中之一或多者。此外,伺服器裝置並不僅限於特殊組態。因此,伺服器裝置可含有使用主/從方式操作之網路計算裝置,藉此伺服器裝置之網路計算裝置中之一者操作以管理或者協調其他網路計算裝置之操作。舉例而言,伺服器裝置可用作叢集架構、對等架構、虛擬機內或雲端架構內之複數個網路計算裝置。
網路訊務管理系統中所繪示之組件中之一或多者(例如,網路訊務管理設備、伺服器裝置或用戶端裝置)可經組態以用作同一實體機之虛擬實例。換言之,網路訊務管理設備、伺服器裝置或用戶端裝置中之一或多者可在同一實體裝置上操作,而非用作透過通信網路進行通信之分離裝置。另外,可能存在比圖1中所圖解說明的更多或更少之網路訊務管理設備、用戶端裝置或伺服器裝置。
另外,在任一實例中,兩個或更多個計算系統或裝置可代替系統或裝置中之任一者。因此,亦可視需要實施分散式處理之原理及優點(例如,冗餘及複製),以提高實例之裝置及系統之穩健性及效能。亦可在使用任何適合之介面機構及訊務技術來跨越任何適合之網路而擴展之電腦系統上實施該等實例,該等適合之網路包括(僅舉例而言)無線訊務網路、蜂巢式訊務網路、封包資料網路(PDN)、網際網路、內部網路及其組合。
圖5係圖解說明根據所揭露技術之一個實例的包括一或多個計算環境之電腦之實例的方塊圖,該一或多個計算環境藉由區域互連件(例如,快速周邊組件互連(PCI)、區域匯流排等)耦合在一起且可跨越該一或多個計算環境部署應用程式。具體而言,計算域510可係在虛擬化環境內使用之計算節點叢集內之節點。虛擬化環境包括管理程式控制器520。可使用虛擬化環境(亦被稱為容器化環境)提供平臺以在模擬電腦系統(例如,執行客體OS之虛擬機)上執行軟體應用程式,該模擬電腦系統在不同實體機之間係一致的。虛擬機包括模擬電腦硬體且可提供虛擬儲存、計算、網路連接及記憶體資源。雖然模擬電腦系統向在該模擬電腦系統上執行之軟體應用程式提供相同介面,但可移植虛擬化環境以在不同實體硬體組態及/或不同主機OS上執行。虛擬化環境可潛在地對軟體開發者有幫助,原因在於開發者可能夠撰寫可在模擬電腦系統內執行之一個軟體應用程式,該模擬電腦系統可在多個實體電腦硬體組態上執行。在沒有虛擬化環境之情況下,開發者可能要耗費資源來移植(例如,重寫)軟體應用程式以在不同實體電腦硬體組態上執行。虛擬化環境例如包括Kubernetes、Docker及Xen。
子域512與514經由區域互連件連接在一起。可使用區域互連件來在子域之不同電組件之間(例如,在機箱內或在電路板上)進行通信。為易於圖解說明,以簡化形式(例如,匯流排)示出區域互連件。然而,區域互連件可包括用於在組件之間傳達資料之各種組件,例如IO控制器(亦被稱為南橋)及/或儲存控制器(亦被稱為北橋)。相比之下,計算域510可經由封包交換網路與管理程式控制器520進行通信,該封包交換網路具有使得其更適合於遠程通信之特性。舉一個實例,封包交換網路可經由乙太網實施網際網路協定(IP)。
如先前所提及且如圖5中所繪示,該架構可允許跨越各種計算環境分派應用程式以確保出色的應用程式效能及安全性。如所示,計算域(例如,網路訊務管理裝置、伺服器裝置等)可包括藉由區域互連件(例如像區域匯流排)連接之複數個子域。每一子域可包括藉由管理程式橋鏈接且與管理程式控制器通信之管理程式。如進一步繪示,應用程式可以多個部分在跨越複數個計算子域分佈之單個虛擬機內運行。舉例而言,應用程式可將應用程式劃分成各種功能(例如,快取、計算等),該各種功能可在專門化計算子域上運行以在提高網路穩定性及/或效能之同時提高應用程式效率及安全性。
所繪示架構之計算環境可儲存一或多個應用程式,該一或多個應用程式可包括電腦可執行指令,電腦可執行指令在由網路訊務管理設備執行時使該網路訊務管理設備執行例如傳輸、接收或者處理訊息等動作,以例如執行其他動作(例如,跨越各種計算環境分派應用程式)以確保出色的應用程式效能及安全性,下文參考圖5至圖8加以闡述且圖解說明。可將該應用程式實施為其他應用程式之組件。此外,可將該應用程式實施為作業系統擴展、插件等。
在本技術之一或多個方面,實例亦可體現為上面儲存有指令之一或多個非暫時性電腦可讀取媒體,例如記憶體,如本文中藉由實例闡述及圖解說明。某些實例中之指令包括可執行碼,該可執行碼在由一或多個處理器(例如處理器)執行時使該等處理器實行實施本文闡述及圖解說明之此技術之實例之方法所需之步驟。
更具體地參考圖6,圖解說明示例性方法之流程圖。在此實例中之第一步驟605中,網路訊務管理系統之網路訊務管理設備可判定與複數個區域連接計算子域中之每一者相關聯之計算資源,其中每一區域連接計算子域可具有各別管理程式。此外,在610處,設備可在區域連接計算子域之複數個管理程式之間產生橋。在615處,該設備可接收包括複數個應用程式部分之應用程式。該等應用程式部分可各自含有後設資料(例如,標記),該後設資料具有指示接下來映射至區域連接計算子域之所需應用程式特性之資料。指示所需之區域連接計算子域之資料可包括與應用程式部分所需之硬體資源相關聯之資訊。在620處,裝置可進一步至少部分地基於各別後設資料來拆解一或多個應用程式部分以產生一或多個拆解的應用程式部分。一旦識別到拆解的應用程式部分,則裝置可為拆解的應用程式部分分配第一專用硬體資源且接著提供對第一專用硬體資源之存取權限。在625處,裝置可進一步將複數個應用程式部分中之第一應用程式部分分派給第一區域連接計算子域。最後在630處,裝置可將一或多個拆解的應用程式部分中之第一拆解的應用程式部分分派給第二區域連接計算子域。
圖7繪示用於跨越區域連接計算域部署應用程式之一般實施架構。將瞭解,在管理程式控制器702可將應用程式指派給計算子域704、706之前,必須意識到該計算子域的硬體限制。因此,管理程式控制器702包括資源規劃器708,資源規劃器708能夠與計算域管理程式710、712通信以獲得所有子域704、706之各別硬體能力之資訊。為了跨越子域運行應用程式,必須對該應用程式進行劃分。因此,計算子域包括基於可用資源及/或後設資料劃分應用程式之功能714。一旦應用程式被劃分,則將需要為應用程式之相應部分分配硬體資源,可經由硬體資源分配器716來使用硬體資源。此外,每一應用程式部分724、726將需要在被拒絕存取分配給不同應用程式部分之硬體資源時存取其自己的硬體資源。因此,實施可與硬體驅動器720通信之虛擬機硬體存取邏輯塊718以授權且監測該存取。最後,為了允許虛擬機在不同計算子域中操作,需要允許跨越計算子域704、706進行雙向控制之管理程式橋722。
圖8繪示上文所述之一般架構之具體實施方案。更具體而言,在此實例中,圖8繪示用於在智慧型NIC中部署Kubernetes獨立進程且將其鏈接至部署在主機上之集群之系統。將瞭解,Kubernetes係有優勢的,原因在於可擴展其固有網路連接以允許主機上之集群與在智慧型NIC上運行之獨立進程安全地通信。因此,藉由經由本文所述之系統及方法擴展該功能,可將獨立進程存取擴大至網路,因此使得可利用智慧型NIC之任何加速及其他特徵。將瞭解,該系統能夠與當前技術整合且允許跨越複數個區域關聯電腦域分派應用程式,而無需對主機或集群做出任何改變。
如所示,主機包括節點802或主電腦,節點802或主電腦經由區域互連件(例如像快速周邊組件互連(PCIe) 806)附接有一或多個智慧型NIC 804。如進一步繪示,Kubernetes排程器808具有整合式裝置插件810,整合式裝置插件810經設計以與Kubernetes整合且中繼轉發裝置資訊,該資訊包括但不限於與一或多個智慧型NIC相關聯之可用硬體資源。將瞭解,硬體開發者(例如像Intel)使得插件可用,以允許在計算基礎設施中整合該硬體來支援可網路存取之用戶端-伺服器軟體應用程式。
如進一步繪示,Kubernetes排程器808經組態以與儲存在每一相應子域上之kubelet 812、814通信。在此,kubelet 812儲存在智慧型NIC上且kubelet 814儲存在節點上。如所示,為了允許跨越計算子域進行必要的雙向控制,可擴展現有kubelet事件橋816以跨越PCIe匯流排806共用事件,因此形成容器位於相同節點上之錯覺。在開發期間,可標記容器以指示容器應在智慧型NIC中運行。如所示,當Kubernetes排程器808將集群創建請求發送至節點802時,該集群創建請求首先被智慧型NIC kubelet 804接收到。智慧型NIC kubelet 804接著將經標記容器818與集群拆解(例如,經由容器篩選器加載項824),再將所述集群創建請求轉發至主電腦802。
一旦已拆解出容器,容器網路介面(CNI) 820可讀取容器上之標記且判定所需資源是否可用。在資源可用之情況下,CNI可將容器關聯至閒置硬體資源。在將容器關聯至可用資源之情況下,可對容器進行標記以指示已將哪些資源關聯至該容器/已使哪些資源可用於該容器。將瞭解,該功能可允許應用程式在容器內運行以查詢可用資源。在所需資源不可用之情況下,CNI可記錄失敗並中止集群安裝。最後,docker加載項822可授權容器存取所關聯之硬體資源(例如,經由與硬體驅動器826介接)。docker加載項822可例如使新網路介面可用於與專用網路資源相關聯之容器。對專用可程式化加速器之控制或程式化可藉由使docker加載項822模擬設置在容器內之vendor中之驅動器介面來實現;該加載項亦將需要檢查如此給出之命令符合先前劃給容器之資源分配。
因此已闡述本發明之基本概念,熟習此項技術者將非常明瞭旨在僅藉由實例來呈現前述詳細揭露,而不具限制性。儘管本文未明確敘述,但將進行各種改動、改進及修改且各種改動、改進及修改旨在針對熟習此項技術者。此等改動、改進及修改旨在特此提出且處於本發明之精神及範疇內。另外,所列述之處理元件次序或順序或數目、字母或其他名稱之使用因此不旨在將所述過程限制於任何次序,除非申請專利範圍中可有規定。因此,本發明僅受以下申請專利範圍及其等效形式限制。
102:區域連接計算環境 104:區域連接計算環境 106:區域連接計算環境 108:處理器 110:記憶體 112:通信介面 114:專門化計算資源 116:專門化計算資源 118:管理程式 120:作業系統 122:容器運行時間 202:管理電腦 204:計算節點 302:分散式伺服器 304:分散式伺服器 306:管理電腦 308:應用程式負載平衡邏輯 402:網路訊務管理裝置或設備 404:用戶端裝置 406:用戶端裝置 408:伺服器電腦 410:伺服器電腦 510:計算域 512:子域 514:子域 520:管理程式控制器 605:第一步驟 610:步驟 615:步驟 620:步驟 625:步驟 630:步驟 702:管理程式控制器 704:計算子域 706:計算子域 708:資源規劃器 710:計算域管理程式 712:計算域管理程式 714:功能 716:硬體資源分配器 718:虛擬機硬體存取邏輯塊 720:硬體驅動器 722:管理程式橋 724:應用程式部分 726:應用程式部分 802:節點 804:智慧型網路介面卡 808:Kubernetes排程器 810:整合式裝置插件 812:kubelet 814:kubelet 818:經標記容器 820:主電腦 822:docker加載項 824:容器篩選器加載項 826:硬體驅動器
結合附圖進行閱讀,將更好地理解本揭露之具體實例之以下詳細闡述。為了圖解說明本揭露,圖式中示出具體實例。然而應理解,本揭露並不僅限於圖式中所示之實例之精確佈置及機構。 [圖1]係根據所揭露技術之一個實例的包括複數個區域連接計算環境之架構之方塊圖。 [圖2]係根據所揭露技術之一個實例的實例架構之方塊圖,該實例架構包括分散式計算系統,該分散式計算系統實施排程服務且協調智慧型網路介面系統或可程式化加速器之組態之方法。 [圖3]係根據所揭露技術之一個實例的實例架構之方塊圖,該實例架構在分散式計算系統上實施軟體即服務,該分散式計算系統包括用於組態智慧型網路介面系統或可程式化加速器之協調程式邏輯。 [圖4]繪示根據所揭露技術之一個實例的支援可網路存取之用戶端-伺服器軟體應用程式之示例性計算基礎設施,該示例性計算基礎設施可包括各種互連之計算裝置(例如,網路訊務裝置)以潛在地增大用戶端-伺服器架構之可擴縮性、可用性、安全性及/或效能。 [圖5]係圖解說明根據所揭露技術之一個實例的包括一或多個計算環境之電腦之實例的方塊圖,該一或多個計算環境藉由區域互連件(例如,快速周邊組件互連(PCI)、區域匯流排等)耦合在一起且可跨越一或多個計算環境部署應用程式。 [圖6]係根據所揭露技術之一個實例的跨越多個計算域部署應用程式之示例性方法之流程圖。 [圖7]繪示根據所揭露技術之一個實例的跨越區域連接計算域部署應用程式之一般實施架構。 [圖8]繪示根據所揭露技術之一個實例的用於在智慧型NIC中部署Kubernetes獨立進程(sidecar)且將其鏈接至部署在主機上之集群(pod)的系統。
510:計算域
512:子域
514:子域
520:管理程式控制器

Claims (22)

  1. 一種用於與一網路訊務管理系統協作實施之方法,該網路訊務管理系統包括一或多個網路訊務管理設備、伺服器裝置或用戶端裝置,該方法包括: 在複數個管理程式之間產生一橋,其中每一管理程式在一不同計算子域上執行,該等不同計算子域係區域連接的; 基於與該等不同計算子域中之每一者相關聯之計算資源來將一應用程式劃分成複數個應用程式部分; 將一標記與每一應用程式部分相關聯,其中該標記包括指示一所需之區域連接計算子域之資料;以及 至少部分地基於各別標記來將每一應用程式部分分派給一各別區域連接計算子域。
  2. 如請求項1之方法,其進一步包括: 為每一各別應用程式部分分配專用硬體資源;以及 向每一應用程式部分提供對各別專用硬體資源之存取權限。
  3. 如請求項1之方法,其進一步包括判定與複數個區域連接計算子域中之每一者相關聯之計算資源。
  4. 如請求項1之方法,其中指示一所需之區域連接計算子域之該資料包括與該應用程式部分所需之硬體資源相關聯之資訊。
  5. 如請求項1之方法,其中複數個區域連接計算子域中之至少一個區域連接計算子域包括一智慧型網路介面卡(NIC)。
  6. 如請求項5之方法,其中該複數個區域連接計算子域中之至少一個區域連接計算子域包括一Kubernetes節點。
  7. 一種網路訊務管理設備,其包括記憶體及一或多個處理器,該記憶體包括儲存在其上的程式指令,該一或多個處理器經組態以能夠執行該等儲存之程式指令以: 在複數個管理程式之間產生一橋,其中每一管理程式在一不同計算子域上執行,該等不同計算子域係區域連接的; 接收包括複數個應用程式部分之一應用程式,每一應用程式部分含有後設資料,該後設資料具有指示一所需之區域連接計算子域之資料; 至少部分地基於該後設資料來拆解一或多個應用程式部分以產生一或多個拆解的應用程式部分; 將該複數個應用程式部分中之一第一應用程式部分分派給一第一區域連接計算子域;以及 將該一或多個拆解的應用程式部分中之一第一拆解的應用程式部分分派給一第二區域連接計算子域。
  8. 如請求項7之網路訊務管理設備,其中該等處理器進一步經組態以能夠執行該等儲存之程式指令以: 為該第一應用程式部分分配第一專用硬體資源; 向該第一應用程式部分提供對該等第一專用硬體資源之存取權限; 為該第一拆解的應用程式部分分配第二專用硬體資源;以及 向該第一拆解的應用程式部分提供對該等第二專用硬體資源之存取權限。
  9. 如請求項7之網路訊務管理設備,其中指示一所需之區域連接計算子域之該資料包括與該應用程式部分所需之硬體資源相關聯之資訊。
  10. 如請求項7之網路訊務管理設備,其中該第二區域連接計算子域包括一智慧型網路介面卡(NIC)。
  11. 如請求項10之網路訊務管理設備,其中該第一區域連接計算子域包括一Kubernetes節點。
  12. 一種非暫時性電腦可讀取媒體,該非暫時性電腦可讀取媒體上儲存有指令,該等指令包括可執行碼,該可執行碼在由一或多個處理器執行時使該等處理器進行以下操作: 在複數個管理程式之間產生一橋,其中每一管理程式在一不同計算子域上執行,該等不同計算子域係區域連接的; 接收包括複數個應用程式部分之一應用程式,每一應用程式部分含有後設資料,該後設資料具有指示一所需之區域連接計算子域之資料; 至少部分地基於各別後設資料來拆解一或多個應用程式部分以產生一或多個拆解的應用程式部分; 將該複數個應用程式部分中之一第一應用程式部分分派給一第一區域連接計算子域;以及 將該一或多個拆解的應用程式部分中之一第一拆解的應用程式部分分派給一第二區域連接計算子域。
  13. 如請求項12之非暫時性電腦可讀媒體,其中該可執行碼在由該等處理器執行時進一步使該等處理器: 為該第一應用程式部分分配第一專用硬體資源; 向該第一應用程式部分提供對該等第一專用硬體資源之存取權限; 為該第一拆解的應用程式部分分配第二專用硬體資源;以及 向該第一拆解的應用程式部分提供對該等第二專用硬體資源之存取權限。
  14. 如請求項13之非暫時性電腦可讀取媒體,其中該可執行碼在由該等處理器執行時進一步使該等處理器: 限制該第一應用程式部分存取該等第二專用硬體資源;以及 限制該第一拆解的應用程式部分存取該等第一專用硬體資源。
  15. 如請求項12之非暫時性電腦可讀取媒體,其中指示一所需之區域連接計算子域之該資料包括與該應用程式部分所需之硬體資源相關聯之資訊。
  16. 如請求項15之非暫時性電腦可讀取媒體,其中該可執行碼在由該等處理器執行時進一步使該等處理器: 至少部分地基於該一或多個拆解的應用程式部分之各別標記來判定複數個適合之區域連接計算子域, 其中該第二區域連接計算子域係該複數個適合之區域連接計算子域中之一者。
  17. 一種網路訊務管理系統,其包括一或多個網路訊務管理設備、伺服器裝置或用戶端裝置、記憶體及一或多個處理器,該記憶體包括儲存在其上之程式指令,該一或多個處理器經組態以能夠執行該等儲存之程式指令以: 在複數個管理程式之間產生一橋,其中每一管理程式在一不同計算子域上執行,該等不同計算子域係區域連接的; 接收包括複數個應用程式部分之一應用程式,每一應用程式部分含有後設資料,該後設資料具有指示一所需之區域連接計算子域之資料; 至少部分地基於該後設資料來拆解一或多個應用程式部分以產生一或多個拆解的應用程式部分; 將該複數個應用程式部分中之一第一應用程式部分分派給一第一區域連接計算子域;以及 將該一或多個拆解的應用程式部分中之一第一拆解的應用程式部分分派給一第二區域連接計算子域。
  18. 如請求項17之網路訊務管理系統,其中該等處理器進一步經組態以能夠執行該等儲存之程式指令以: 為該第一應用程式部分分配第一專用硬體資源; 向該第一應用程式部分提供對該等第一專用硬體資源之存取權限; 為該第一拆解的應用程式部分分配第二專用硬體資源;以及 向該第一拆解的應用程式部分提供對該等第二專用硬體資源之存取權限。
  19. 如請求項17之網路訊務管理系統,其中指示一所需之區域連接計算子域之該資料包括與該應用程式部分所需之硬體資源相關聯之資訊。
  20. 如請求項17之網路訊務管理系統,其中該第二區域連接計算子域包括一智慧型網路介面卡(NIC)。
  21. 如請求項17之網路訊務管理系統,其中該第一區域連接計算子域包括一Kubernetes節點。
  22. 如請求項16之網路訊務管理系統,其中該產生之管理程式橋允許計算子域之間共用記憶體。
TW110145286A 2020-12-07 2021-12-03 用於跨越多個計算域進行應用程式部署之方法及其裝置 TW202224395A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063122280P 2020-12-07 2020-12-07
US63/122,280 2020-12-07

Publications (1)

Publication Number Publication Date
TW202224395A true TW202224395A (zh) 2022-06-16

Family

ID=79021582

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110145286A TW202224395A (zh) 2020-12-07 2021-12-03 用於跨越多個計算域進行應用程式部署之方法及其裝置

Country Status (4)

Country Link
US (2) US11537425B2 (zh)
EP (1) EP4009160A1 (zh)
CN (1) CN114595027A (zh)
TW (1) TW202224395A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11968243B2 (en) * 2021-06-21 2024-04-23 Northrop Grumman Systems Corporation Containerized cross-domain solution

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2491665B (en) * 2011-06-08 2014-02-26 Inst Information Industry Processor bridging in heterogeneous computer system
US8590005B2 (en) * 2011-06-08 2013-11-19 Adventium Enterprises, Llc Multi-domain information sharing
WO2014062405A1 (en) * 2012-10-16 2014-04-24 Citrix Systems, Inc. Systems and methods for bridging between public and private clouds through multi-level api integration
US11438278B2 (en) * 2015-06-29 2022-09-06 Vmware, Inc. Container-aware application dependency identification
US10728106B1 (en) * 2016-04-29 2020-07-28 Architecture Technology Corporation Multi-domain cloud computing
US10382319B2 (en) * 2017-10-30 2019-08-13 Dell Products Lp Multiple VXLAN tunnel reachability
US10534629B1 (en) * 2017-10-31 2020-01-14 EMC IP Holding Company LLC Virtual data management services
US11016798B2 (en) * 2018-06-01 2021-05-25 The Research Foundation for the State University Multi-hypervisor virtual machines that run on multiple co-located hypervisors
GB201901298D0 (en) * 2019-01-30 2019-03-20 Korala Associates Ltd Device drivers
JP7226123B2 (ja) * 2019-06-19 2023-02-21 富士通株式会社 情報処理システム、情報処理装置、及び情報処理プログラム
CN112737805B (zh) * 2019-10-28 2024-04-12 华为技术有限公司 一种配置方法、相关装置和系统
US11755355B2 (en) * 2020-11-25 2023-09-12 Nxp Usa, Inc. Systems and methods for assigning domain identifiers to remote peripheral devices using a hypervisor

Also Published As

Publication number Publication date
CN114595027A (zh) 2022-06-07
US20230138867A1 (en) 2023-05-04
US11537425B2 (en) 2022-12-27
US20220179678A1 (en) 2022-06-09
EP4009160A1 (en) 2022-06-08

Similar Documents

Publication Publication Date Title
US11768695B2 (en) Methods and apparatus to deploy a hybrid workload domain
US11870642B2 (en) Network policy generation for continuous deployment
US10320674B2 (en) Independent network interfaces for virtual network environments
EP3430512B1 (en) Network virtualization of containers in computing systems
US10855537B2 (en) Methods and apparatus for template driven infrastructure in virtualized server systems
US9934073B2 (en) Extension of resource constraints for service-defined containers
US9424067B2 (en) Managing virtual machine instances utilizing an offload device
US20200019429A1 (en) Hot-plugging of virtual functions in a virtualized environment
US9400674B2 (en) Managing virtual machine instances utilizing a virtual offload device
US9934060B2 (en) Hybrid service fleet management for cloud providers
Kim et al. CF-CloudOrch: container fog node-based cloud orchestration for IoT networks
CN109479059B (zh) 用于容器流量的传输层等级标识和隔离的系统和方法
Nakao et al. CoreLab: An emerging network testbed employing hosted virtual machine monitor
US11461120B2 (en) Methods and apparatus for rack nesting in virtualized server systems
CN113934550A (zh) 用于边缘计算网络的联合运维器
US10795727B2 (en) Flexible automated provisioning of single-root input/output virtualization (SR-IOV) devices
CN115941241A (zh) 云本地软件定义网络架构中基于角色的访问控制自动生成
US20230138867A1 (en) Methods for application deployment across multiple computing domains and devices thereof
US20230336414A1 (en) Network policy generation for continuous deployment
US20220159080A1 (en) System and method for providing services for guest container-based clusters without direct access to resource provider
US11924336B1 (en) Cryptographic artifact generation using virtualized security modules
US20230106531A1 (en) Virtual network routers for cloud native software-defined network architectures
US20240095158A1 (en) Deployment checks for a containerized sdn architecture system
US11340932B2 (en) Packet handling based on multiprocessor architecture configuration
US20230205594A1 (en) Dynamic resource allocation