TW202301118A - 動態微服務分配機制 - Google Patents
動態微服務分配機制 Download PDFInfo
- Publication number
- TW202301118A TW202301118A TW111108828A TW111108828A TW202301118A TW 202301118 A TW202301118 A TW 202301118A TW 111108828 A TW111108828 A TW 111108828A TW 111108828 A TW111108828 A TW 111108828A TW 202301118 A TW202301118 A TW 202301118A
- Authority
- TW
- Taiwan
- Prior art keywords
- ipu
- data center
- circuit
- center resources
- resources
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
Abstract
一種計算平台,其包含:多個經分解資料中心資源;及一基礎設施處理單元(IPU),其通訊地耦接至該等多個資源,以構成用於分配微服務叢集之該等多個經分解資料中心資源之一平台。
Description
本發明係有關於動態微服務分配機制。
發明背景
現代計算裝置可包括通用處理器核心以及各種硬體加速器,用於卸載計算密集型工作負荷或執行特殊任務。硬體加速器可包括例如一或多個場可規劃閘陣列(FPGA),其可包括可由最終使用者或系統整合商組配之可規劃數位邏輯資源。硬體加速器亦可包括一或多個特殊應用積體電路(ASIC)。硬體加速器可體現為經由I/O互連與處理器核心通訊之I/O裝置。另外,硬體加速器可包括經實施以處理圖形資料之一或多個圖形處理單元(GPU)。
為了有效利用資料中心資源且滿足大型計算之需求,經分解計算存在一種趨勢,亦即工作負荷(例如中央處理單元(CPU)、加速器、記憶體等)所需之計算資源可能不在同一實體平台上,而是替代地經由網路連接。歸因於過去若干年內網路輸貫量及潛時的巨大改良而允用此方法。此為雲端服務提供商(CSP)提供了若干益處,例如較佳資源利用率,從而降低總擁有成本、良好可擴展性、供應商靈活性等。
依據本發明之一實施例,係特地提出一種設備,其包含:多個經分解資料中心資源;及一基礎設施處理單元(IPU)電路,其通訊地耦接至該等多個資源,以構成用於分配微服務叢集之該等多個經分解資料中心資源之一平台。
較佳實施例之詳細說明
雖然本揭示內容之概念易受各種修改及替代形式影響,但該等概念之特定實施例已在圖式中藉由實例展示,且將在本文中加以詳細描述。然而,應理解,不欲將本揭示內容之概念限於所揭示之特定形式,而是相反,意欲涵蓋與本揭示內容及所附申請專利範圍一致的所有修改、等效物及替代方案。
本說明書中對「一個實施例」、「一實施例」、「一說明性實施例」等之引用指示所描述實施例可包括一特定特徵、結構或特性,但每一實施例可以或可能未必包括該特定特徵、結構或特性。此外,此等片語未必指代相同實施例。另外,當結合一實施例來描述一特定特徵、結構或特性時,應主張,無論是否予以明確描述,結合其他實施例來實現此特徵、結構或特性在熟習此項技術者之認識範圍內。另外,應瞭解,以「至少一A、B及C」之形式包括於清單中之項目可意謂(A);(B);(C);(A及B);(B及C);(A及C);或(A、B及C)。類似地,以「A、B或C中之至少一者」之形式列出的項目可意謂(A);(B);(C);(A及B);(A及C);(B及C);或(A、B及C)。
在一些狀態下,所揭示實施例可以硬體、韌體、軟體或其任何組合來實施。所揭示實施例亦可實施為藉由暫時性或非暫時性機器可讀(例如,電腦可讀)儲存媒體攜載或儲存於其上的指令,該等指令可由一或多個處理器來讀取及執行。機器可讀儲存媒體可體現為用於儲存或傳輸呈機器可讀之形式之資訊的任何儲存裝置、機構或其他實體結構(例如,依電性或非依電性記憶體、媒體光碟或其他媒體裝置)。
在圖式中,一些結構或方法特徵可以特定配置及/或次序來展示。然而,應瞭解,可能不需要此類特定配置及/或次序。確切而言,在一些實施例中,此等特徵可以不同於說明性諸圖中所展示之方式及/或次序的方式及/或次序配置。另外,特定圖中包括結構或方法特徵不意謂,暗示此特徵為所有實施例中所需的,且在一些實施例中,可不包括此特徵或此特徵可與其他特徵組合。
現參看
圖1,用於藉由加速器裝置進行安全I/O之計算裝置100包括處理器120及加速器裝置136,例如場可規劃閘陣列(FPGA)。在使用中,如下文進一步描述,藉由處理器120建立之受信任執行環境(TEE)與加速器136安全地傳達資料。可使用記憶體映射I/O (MMIO)異動或直接記憶體存取(DMA)異動傳送資料。舉例而言,TEE可執行包括經加密資料之MMIO寫入異動,且加速器136解密資料並執行寫入。作為另一實例,TEE可執行MMIO讀取請求異動,且加速器136可讀取所請求之資料、加密資料,且執行包括經加密資料之MMIO讀取回應異動。作為又一實例,TEE可組配加速器136以執行DMA操作,且加速器136執行記憶體傳送、執行密碼操作(亦即,加密或解密),且轉送結果。如下文進一步描述,TEE及加速器136產生用於經傳送資料之鑑認標籤(AT),且可使用彼等AT來驗證異動。因此,計算裝置100可將計算裝置100之不受信任軟體(例如,作業系統或虛擬機監視器)保持在TEE及加速器136之受信任程式碼基底(TCB)之外。因此,計算裝置100可保護TEE及加速器136自計算裝置100之擁有者(例如,雲端服務提供商)或計算裝置100之其他租戶交換或以其他方式處理之資料。因此,計算裝置100可藉由允許加速器裝置之安全使用來提高多租戶環境之安全性及效能。
計算裝置100可體現為能夠執行本文中所描述之功能的任何類型之裝置。舉例而言,計算裝置100可體現為但不限於電腦、膝上型電腦、平板電腦、筆記本電腦、行動計算裝置、智慧型手機、可穿戴計算裝置、多處理器系統、伺服器、工作站及/或消費型電子裝置。如
圖 1所展示,說明性計算裝置100包括處理器120、I/O子系統124、記憶體130及資料儲存裝置132。另外,在一些實施例中,說明性組件中之一或多者可併入於另一組件中或以其他方式形成另一組件的一部分。舉例而言,在一些實施例中,記憶體130或其部分可併入於處理器120中。
處理器120可體現為能夠執行本文中所描述之功能的任何類型之處理器。舉例而言,處理器120可體現為(多個)單核心或多核心處理器、數位信號處理器、微控制器,或其他處理器或處理/控制電路。如所展示,處理器120說明性地包括安全指定位址空間支援122,其允許處理器120建立被稱為安全指定位址空間之受信任執行環境,在該環境中,執行程式碼可經量測、驗證及/或以其他方式判定為可靠的。另外,包括於安全指定位址空間中之程式碼及資料可經加密或以其他方式經保護以防被在安全指定位址空間之外執行之程式碼存取。舉例而言,包括於安全指定位址空間中之程式碼及資料可在執行時或在儲存於處理器120之某些受保護快取記憶體中時由處理器120之硬體保護機構保護。當儲存於共用快取或主記憶體130中時,包括於安全指定位址空間中之程式碼及資料可被加密。安全指定位址空間支援122可體現為處理器指令擴展之集合,其允許處理器120在記憶體130中建立一或多個安全指定位址空間。舉例而言,安全指定位址空間支援122可體現為Intel®軟體防護擴展(SGX)技術。
記憶體130可體現為能夠執行本文中所描述之功能的任何類型之依電性或非依電性記憶體或資料儲存器。在操作中,記憶體130可儲存在計算裝置100之操作期間所使用的各種資料及軟體,諸如作業系統、應用程式、程式、程式庫及驅動程式。如所展示,記憶體130可經由I/O子系統124通訊地耦接至處理器120,該I/O子系統可體現為電路及/或組件以藉由處理器120、記憶體130及計算裝置100之其他組件促進輸入/輸出操作。舉例而言,I/O子系統124可體現為或以其他方式包括記憶體控制器集線器、輸入/輸出控制集線器、感測器集線器、主機控制器、韌體裝置、通訊連結(亦即,點對點連結、匯流排連結、導線、纜線、光導、印刷電路板印製線等)及/或其他組件及子系統以促進輸入/輸出操作。在一些實施例中,記憶體130可例如經由積體記憶體控制器集線器直接耦接至處理器120。另外,在一些實施例中,I/O子系統124可形成晶片上系統(SoC)之一部分,且與處理器120、記憶體130、加速器裝置136及/或計算裝置100之其他組件一起合併入單個積體電路晶片上。另外或替代地,在一些實施例中,處理器120可包括積體記憶體控制器及系統代理,其可體現為其中來自處理器核心及I/O裝置之資料訊務在被發送至記憶體130之前會聚的邏輯區塊。
如所展示,I/O子系統124包括直接記憶體存取(DMA)引擎126及記憶體映射I/O (MMIO)引擎128。處理器120,包括藉由安全指定位址空間支援122建立之安全指定位址空間,可使用DMA引擎126與加速器裝置136進行一或多個DMA異動通訊及/或使用MMIO引擎128與加速器裝置136進行一或多個MMIO異動通訊。計算裝置100可包括多個DMA引擎126及/或MMIO引擎128,用於基於處理器120與加速器136之間的頻寬處理DMA及MMIO讀取/寫入異動。儘管說明為包括於I/O子系統124中,但應理解,在一些實施例中,DMA引擎126及/或MMIO引擎128可包括於計算裝置100之其他組件(例如,處理器120、記憶體控制器或系統代理)中,或在一些實施例中可體現為獨立的組件。
資料儲存裝置132可體現為經組配用於短期或長期資料儲存之任何類型的一或多個裝置,諸如(例如)記憶體裝置及電路、記憶卡、硬碟機、固態磁碟機、非依電性快閃記憶體或其它資料儲存裝置。計算裝置100亦可包括通訊子系統134,其可體現為,能夠經由電腦網路(未展示)致能計算裝置100與其他遠端裝置之間的通訊的任何通訊電路、裝置或其集合。通訊子系統134可經組配以使用任何一或多種通訊技術(例如,有線或無線通訊)及關聯協定(例如,乙太網路、藍牙®、Wi-Fi®、WiMAX、3G、4G LTE等)來實現此種通訊。
加速器裝置136可體現為場可規劃閘陣列(FPGA)、特殊應用積體電路(ASIC)、共處理器或能夠執行加速功能(例如,加速應用功能、加速網路功能或其他加速功能)之其他數位邏輯裝置、GPU等。說明性地,加速器裝置136為FPGA,其可體現為包括可在製造後組配之可規劃數位邏輯資源之積體電路。舉例而言,FPGA可包括經由可組配資料交換進行通訊之邏輯區塊的可組配陣列。加速器裝置136可經由諸如周邊設備匯流排(例如,快速周邊組件互連匯流排)之高速連接介面或處理器間互連(例如,晶粒內互連(IDI)或快速路徑互連(QPI))或經由任何其他適當之互連耦接至處理器120。加速器裝置136可自處理器120接收用於處理之資料及/或命令,且經由DMA、MMIO或其他資料傳送異動將結果資料返回至處理器120。
如所展示,計算裝置100可進一步包括一或多個周邊裝置138。周邊裝置138可包括任何數目之額外輸入/輸出裝置、介面裝置、硬體加速器及/或其他周邊裝置。舉例而言,在一些實施例中,周邊裝置138可包括觸控式螢幕、圖形電路、圖形處理單元(GPU)及/或處理器圖形、音訊裝置、麥克風、攝影機、鍵盤、滑鼠、網路介面及/或其他輸入/輸出裝置、介面裝置及/或周邊裝置。
現參看
圖2,展示場可規劃閘陣列(FPGA) 200之說明性實施例。如所展示,FPGA 200為加速器裝置136之一個潛在實施例。說明性地,FPGA 200包括安全MMIO引擎202、安全DMA引擎204、一或多個加速器功能單元(AFU) 206及記憶體/暫存器208。如下文進一步描述,安全MMIO引擎202及安全DMA引擎204對在處理器120 (例如,由處理器建立之安全指定位址空間)與FPGA 200 (例如,一或多個AFU 206)之間傳送的資料執行在線鑑認之密碼操作。在一些實施例中,安全MMIO引擎202及/或安全DMA引擎204可攔截、過濾或以其他方式處理FPGA 200之一或多個快取相干互連、內部匯流排或其他互連上之資料訊務。
每一AFU 206可體現為FPGA 200之經組配以執行加速任務之邏輯資源。每一AFU 206可與由計算裝置100在安全指定位址空間或其他受信任執行環境中執行之應用程式相關聯。每一AFU 206可由計算裝置100之租戶或其他使用者組配或以其他方式供應。舉例而言,每一AFU 206可對應於規劃至FPGA 200之位元串流影像。如下文進一步描述,由每一AFU 206處理之資料,包括與受信任執行環境交換之資料,可以密碼方式受保護以防計算裝置100之不受信任組件之影響(例如,受保護以防在租戶指定位址空間之受信任程式碼基底之外的軟體影響)。每一AFU 206可存取或以其他方式處理儲存於記憶體/暫存器208中,該記憶體/暫存器可體現為FPGA 200之內部暫存器、快取、SRAM、儲存器或其他記憶體。在一些實施例中,記憶體208亦可包括耦接至FPGA 200之外部DRAM或其他專用記憶體。
現參看
圖3,在說明性實施例中,計算裝置100在操作期間建立環境300。說明性環境300包括受信任執行環境(TEE) 302及加速器136。TEE 302進一步包括主機密碼引擎304、異動調度器306、主機驗證器308及直接記憶體存取(DMA)管理器310。加速器136包括加速器密碼引擎312、加速器驗證器314、記憶體映射器316、鑑認標籤(AT)控制器318及DMA引擎320。環境300之各種組件可體現為硬體、韌體、軟體或其組合。因而,在一些實施例中,環境300之一或多個組件可體現為電路或電氣裝置之集合(例如,主機密碼引擎電路304、異動調度器電路306、主機驗證器電路308、DMA管理器電路310、加速器密碼引擎電路312、加速器驗證器電路314、記憶體映射器電路316、AT控制器電路318及/或DMA引擎電路320)。應瞭解,在此等實施例中,主機密碼引擎電路304、異動調度器電路306、主機驗證器電路308、DMA管理器電路310、加速器密碼引擎電路312、加速器驗證器電路314、記憶體映射器電路316、AT控制器電路318、及/或DMA引擎電路320中之一或多者可形成處理器120、I/O子系統124、加速器136及/或計算裝置100之其他組件之一部分。另外,在一些實施例中,說明性組件中之一或多者可形成另一組件之一部分及/或說明性組件中之一或多者可彼此獨立。
TEE 302可體現為計算裝置100之受信任執行環境,該環境使用計算裝置100之硬體支援(諸如處理器120之安全指定位址空間支援122)進行鑑認並防止未經授權之存取。說明性地,TEE 302可體現為使用Intel SGX技術建立之一或多個安全指定位址空間。TEE 302亦可包括計算裝置100之一或多個驅動程式、程式庫或其他組件或以其他方式與該一或多個驅動程式、程式庫或其他組件介接以與加速器136介接。
主機密碼引擎304經組配以基於記憶體映射之I/O (MMIO)異動產生鑑認標籤(AT),且將該AT寫入加速器136之AT暫存器。對於MMIO寫入請求,主機密碼引擎304進一步經組配以加密資料項以產生經加密資料項,且AT回應於加密資料項而產生。對於MMIO讀取請求,AT基於與MMIO讀取請求相關聯之位址而產生。
異動調度器306經組配以在將計算出之AT寫入AT暫存器之後,將記憶體映射之I/O異動(例如,MMIO寫入請求或MMIO讀取請求)調度至加速器136。MMIO寫入請求可與經加密資料項一起調度。
主機驗證器308可經組配以回應調度MMIO寫入請求而驗證MMIO寫入請求是否成功。驗證MMIO寫入請求是否成功可包括安全地讀取加速器136之狀態暫存器,安全地自加速器136讀取MMIO寫入位址處的值,或讀取加速器136之AT暫存器,其返回藉由加速器136計算之AT值,如下文所描述。對於MMIO讀取請求,主機驗證器308可進一步經組配以基於包括於自加速器136調度之MMIO讀取回應中之經加密資料項產生AT;自加速器136之暫存器讀取報告之AT;及判定藉由TEE 302產生之AT是否與藉由加速器136報告之AT匹配。主機驗證器308可進一步經組配以在彼等AT不匹配的情況下指示錯誤,此舉能保證不會在自TEE 302至加速器136之路徑上修改資料。
加速器密碼引擎312經組配以執行與MMIO異動相關聯之密碼操作,且回應於MMIO異動被調度而基於MMIO異動產生AT。對於MMIO寫入請求,密碼操作包括解密自TEE 302接收之經加密資料項以產生資料項,且AT係基於經加密資料項而產生。對於MMIO讀取請求,密碼操作包括加密來自加速器136之記憶體之資料項以產生經加密資料項,且AT係基於該經加密資料項而產生。
加速器驗證器314經組配以判定藉由TEE 302寫入之AT是否與藉由加速器136判定之AT匹配。加速器驗證器314進一步經組配以在彼等AT不匹配的情況下丟棄MMIO異動。對於MMIO讀取請求,加速器驗證器314可經組配以回應於丟棄MMIO讀取請求而產生受污染AT,且可進一步經組配以回應於丟棄MMIO讀取請求而將具有受污染資料項之MMIO讀取回應調度至TEE 302。
記憶體映射器316經組配以回應於判定由TEE 302寫入之AT與由加速器136產生之AT匹配而提交MMIO異動。對於MMIO寫入請求,提交異動可包括將資料項儲存在加速器136之記憶體中。記憶體映射器316可進一步經組配以回應於儲存資料項而設定狀態暫存器以指示成功。對於MMIO讀取請求,提交異動可包括在加速器136之記憶體中之位址處讀取資料項,且將具有經加密資料項之MMIO讀取回應調度至TEE 302。
DMA管理器310經組配以將初始化命令安全地寫入至加速器136以初始化安全DMA傳送。DMA管理器310進一步經組配以安全地組配指示主機記憶體緩衝器、加速器136緩衝器及傳送方向的描述符。傳送方向可為主機至加速器136或加速器136至主機。DMA管理器310進一步經組配以將完成命令安全地寫入至加速器136,以完成用於安全DMA傳送之鑑認標籤(AT)。初始化命令、描述符及完成命令可各自與MMIO寫入請求一起被安全地寫入及/或組配。DMA管理器310可進一步經組配以回應於安全地組配描述符而判定是否要傳送額外資料,可回應於判定無額外資料要傳送而安全地寫入完成命令。
AT控制器318經組配以回應於來自TEE 302之初始化命令而初始化AT。AT控制器318進一步經組配以回應於來自TEE 302之完成命令而完成AT。
DMA引擎320經組配以回應於來自TEE 302之描述符而在主機記憶體緩衝器與加速器136緩衝器之間傳送資料。對於自主機至加速器136之傳送,傳送資料包括自主機記憶體緩衝器複製經加密資料,且回應於解密經加密資料而將明文資料轉送至加速器136緩衝器。對於自加速器136至主機之傳送,傳送資料包括自加速器136緩衝器複製明文資料,且回應於加密明文資料而將經加密資料轉送至主機記憶體緩衝器。
加速器密碼引擎312經組配以回應於傳送資料而對資料執行密碼操作,且回應於傳送資料而更新AT。對於自主機至加速器136之傳送,執行密碼操作包括解密經加密資料以產生明文資料。對於自加速器136至主機之傳送,執行密碼操作包括加密明文資料以產生經加密資料。
主機驗證器308經組配以基於安全DMA傳送判定預期AT,回應於安全地寫入完成命令而自加速器136讀取AT,且判定來自加速器136之AT是否與預期AT匹配。主機驗證器308可進一步經組配以在AT匹配的情況下指示成功,且在AT不匹配的情況下指示失敗。
圖4說明系統400之一個實施例,該系統400具有使用容器編配控制器(或控制器) 410之計算裝置420。在一個實施例中,容器編配支援在容器化架構中自動部署、組配、協調及管理多容器工作負荷。如
圖 4所展示,計算裝置420包括充當主機機器之主機伺服器電腦,其用於使用控制器410來促進客戶組織421經由平台即服務(PaaS)或基礎設施即服務(IaaS)可存取之叢集壽命(例如,公共及私有)之佈建。計算裝置420可包括(但不限於)伺服器電腦(例如,雲端伺服器電腦等)、桌上型電腦、基於叢集之電腦、機上盒(例如,基於網際網路之有線電視機上盒等)。計算裝置420包括作業系統(「OS」) 406,其充當計算裝置420之一或多個硬體/實體資源與一或多個用戶端裝置430A至430N等之間之介面。計算裝置420進一步包括處理器402、記憶體404、輸入/輸出(「I/O」)源408,例如觸控式螢幕、觸控面板、觸控板、虛擬或常規鍵盤、虛擬或常規滑鼠等。
在一個實施例中,主機組織101可進一步使用經由主機組織101與用戶端裝置430A至430N可通訊地介接之生產環境。用戶端裝置430A至430N可包括(但不限於)基於客戶組織之伺服器電腦、桌上型電腦、膝上型電腦、行動計算裝置,例如智慧型手機、平板電腦、個人數位助理、電子閱讀器、媒體網際網路裝置、智慧型電視、電視平台、可穿戴裝置(例如眼鏡、手錶、手鐲、智慧卡、珠寶、衣物等)、媒體播放器、基於全球定位系統之導航系統、纜線安裝盒等。
在一個實施例中,所說明之資料庫140儲存(但不限於)具有客戶及使用者資料之資訊及底層資料庫記錄,以代表客戶組織421A至421N處理資料。在一些實施例中,主機組織101經由一或多個網路435自多個客戶組織421A至421N接收輸入及其他請求;例如,可自客戶組織421A至421N接收要使用資料庫系統140處理之傳入資料或其他輸入。
在一個實施例中,每一客戶組織421A至421N係選自由以下各者組成之群組的實體:單獨且相異的遠端組織、主機組織101內之組織群組、主機組織101之業務夥伴、訂閱主機組織101提供之雲端計算服務之客戶組織421A至421N等。
在一個實施例中,在主機組織101內之網站伺服器處接收請求或將請求提交至該網站伺服器。主機組織101可接收由主機組織101處理之各種請求。舉例而言,在網站伺服器處接收之傳入請求可指定將提供來自主機組織101之服務。另外,主機組織101可經由網站伺服器實施請求介面或作為獨立介面以接收來自用戶端裝置430A至430N之請求分組或其他請求。請求介面可進一步支援在自主機組織101至一或多個用戶端裝置430A至430N之傳出方向上返回回應分組或其他回復及回應。
在一個實施例中,計算裝置420可包括伺服器電腦,該伺服器電腦可進一步與一或多個資料庫或儲存庫通訊,諸如資料庫140,該資料庫或儲存庫可位於本端或遠端之一或多個網路上,例如網路435 (例如,雲端網路、網際網路、近接網路、企業內部網路、物聯網(「IoT」)、物聯雲端(「CoT」)等)。計算裝置420經進一步展示為經由一或多個網路(諸如網路435)與任何數目及類型之其他計算裝置(諸如用戶端計算裝置430A至430N)通訊。
在一個實施例中,計算裝置420可用作服務提供商核心,用於將控制器410代管及維護為SaaS或IaaS,且經由一或多個網路435及任何數目及類型之專用節點與一或多個用戶端電腦430A至430N通訊。在此實施例中,主機組織101實施編配控制器410,以在部署期間及執行階段作為控制平面操作,以執行諸如劃分微服務執行所需的基礎設施資源等任務,且基於不同微服務之特定需要或適應不同負荷條件,將任務分配給不同微服務。
圖5說明資料中心之一個實施例。如
圖 5所展示,資料中心組態包括習知伺服器、FPGA機架、GPU及儲存裝置,其全部藉由基礎設施處理單元(IPU)連接。在一個實施例中,IPU包含智慧型網路介面卡(NIC),其不僅執行習知網路功能,而且亦具有控制及管理基礎設施之額外職責。區塊501表示跨越資料中心內經分解計算資源之單個工作負荷。如本文所定義,工作負荷包含為執行應用程式而實施之服務及資源(例如,儲存器、網路、計算等)。
計算中之另一主要趨勢為基於微服務之應用程式取代單片應用程式之增長。微服務架構鬆散地定義了耦接服務,此等服務協作以執行更大功能,且獨立開發、部署及管理。為了易於開發、部署及管理微服務,廣泛使用諸如容器及編配器(諸如Kubernetes)之技術。
圖6說明Kubernetes叢集之一個實施例。Kubernetes提供了叢集管理平台,該平台經實施以跨越主機叢集進行應用程式容器之自動化部署、擴展及操作。Kubernetes系統包括定義基元之集合(例如,容器、艙及叢集)之各種物件類型。容器為依賴虛擬隔離來部署及執行存取共用OS之應用程式的封裝。艙提供了更高級別之抽象,其包括保證共位於同一主機機器上以共用資源之容器的群組。艙內之容器可參考該艙中之所有其他容器。叢集包括兩個或更多個艙,每一艙經指派有唯一艙識別符(ID)。儘管本文針對Kubernetes系統進行了描述,但其他實施例可以不同類型之容器編配架構(例如,Docker、Mesos等)之實施為特徵。
目前,編配器經由初始靜態佈建步驟預先瞭解可用硬體資源,且根據需要自靜態資源池中提取所請求之資源以供給定微服務使用。另外,編配器維護工作者機器(例如,已佈建之工作者機器)之靜態庫存,且在微服務請求資源時自靜態池分配工作者機器。然而,在計算資源為分佈式且可用性為動態的經分解計算中,存在多個問題。
一個問題在於當前編配器無法根據客戶需求動態構成經分解硬體資源之平台,也無法經佈建以瞭解可用資源池(例如CPU、GPU、FPGA、儲存器、記憶體)、資源之位置、如何分配資源、如何在資源之間建立通訊等。另一個問題在於編配器當前無法動態建立微服務所請求之經分解硬體資源構成之工作者機器。
圖 7A說明編配器在其中靜態地構成之習知平台。
根據一個實施例,提供基礎設施管理器,以致能用於分配至微服務叢集之動態平台構成。在此實施例中,基礎設施管理器在佈建階段經期間由附接至經分解資源之IPU動態構建平台。動態可構成性使雲端服務提供商(CSP)能夠基於資料中心之可用資源動態構建平台。
圖 7B說明動態構成之平台之一個實施例。如
圖 7B所展示,與
圖 7A所展示之固定資源不同,該平台包括資源之混合及匹配。
在另一實施例中,由編配控制器110進行之執行階段編配致能工作者節點之動態構成/組配。在此實施例中,編配控制器110在部署期間基於藉由微服務提供之工作者節點需求在適當工作者節點上排程微服務。在另一實施例中,微服務包括描述資源需求之清單檔案(例如,4個GPU、2個CPU核心、1 GB儲存器等)。因此,編配控制器110可藉由以許多不同方式組合網路連接之資源來構建工作者節點,此舉提供最有效地使用資源之增強靈活性。工作者節點被定義為微服務在其上操作之基礎設施資源。
圖8說明包括編配控制器110、IPU 810及多個資料中心資源850 (例如850A至850C)之平台800的另一實施例。根據一個實施例,平台800包含微服務控制平面及資料平面。如本文所使用,控制平面係指編配控制器110及IPU 810在執行資源發現、工作者節點組配、資源構成、建立選路及通訊等方面之組合角色,而資料平面係指在執行階段期間叢集資料中之各種資源之間的移動。
在一個實施例中,IPU 810致能資源之發現,且執行管理、排程及組配功能。另外,IPU 810向編配控制器110處之中央基礎設施管理器報告與資源相關聯之資訊(或資源資訊),諸如類型、能力、安全特徵、可用性等。如
圖 8所展示,IPU 810包括協調邏輯812、資源管理器814、平台健康邏輯816、網路817、儲存器818及安全引擎819。
協調邏輯812提供與編配控制器110之協調。在一個實施例中,協調邏輯812與編配控制器110協調資源發現、分配、排程、負荷平衡、效能管理等。資源管理器814促進資源850處之資源管理。平台健康邏輯816經由監控及遙測維護平台健康統計(例如,關鍵效能指示符(KPI)使用狀態等)。安全引擎819為平台(例如,包括IPU 810及一或多個資源850)提供認證。
圖9說明IPU 810之另一實施例。如
圖 9所展示,IPU 810之安全架構經由租戶安全910提供客戶之控制及資料平面與基礎設施管理920之存取之隔離。另外,基礎設施管理920控制且資料免受與租戶相關聯之網路連接組件影響。在另一實施例中,IPU 810包括信任根930,其保護基礎設施管理920以保證對整個平台800環境之啟動及認證。IPU 810亦包括微服務編配940,其提供資源850資源之編配。因此,編配發生在IPU 810處,而非CPU處。在又一實施例中,微服務編配940可邏輯地將每一資源850劃分為子加速器。
返回參看
圖 8,資源850提供加速資源服務98 (例如,856A至856C),諸如GPU、CPU、FPGA、儲存器等。在一個實施例中,資源850各自包括遙測引擎854 (例如,854A至854C),用於執行遙測服務以收集與加速服務856之使用相關聯之量測資料。資源850亦提供標準介面之集合,以使得能夠以任意粒度且在具有QoS保證的情況下安全地執行微服務。因此,每一資源850包括安全引擎852 (例如,852A至852C),其提供認證以證明資源850之真實性及完整性。另外,安全引擎852產生任意粒度之受信任隔離,以匹配由微服務(諸如,加速服務856)請求之資源。安全引擎852亦促進受信任同級間通訊,以致能跨越資源850之較大微服務。
圖10為說明微服務叢集設定過程之一個實施例之流程圖。在處理區塊1010,叢集管理員在一或多個叢集中引入並佈建新資源。在一個實施例中,此過程包含在機架內設定一或多個資源(例如,GPU、FPGA、CPU、記憶體等),且將此等資源與IPU 810介接。在處理區塊1020,IPU 810發現並枚舉資源。在一個實施例中,IPU 810亦在資源處經由安全引擎819及安全引擎825鑑認及認證資源。在另一實施例中,IPU 810在每一資源850處與管理器建立長期安全通訊會話,且指派唯一網際網路協定(IP)位址端點。
在處理區塊1030,將資源能力、長期安全通訊會話及IP位址端點之報告傳輸至編配控制器410。隨後,編配控制器410更新其狀態以反映叢集內新資源之存在。在一個實施例中,編配控制器410可具有網路(例如,帶外或帶內管理),編配控制器410經由該網路與各種IPU 810一起工作以追蹤有多少資源正在使用以及其健康狀態。在處理區塊1040,藉由與資源850內之安全處理元件互動來執行資源850之識別碼及證書佈建。
圖11為說明用於構成節點之過程的一個實施例之流程圖。在處理1110,開發者(例如,微服務開發者)以清單之形式向編配控制器410提供工作者節點組態。在一個實施例中,清單列出了所需之資源類型、與資源相關之屬性、關於將在資源上執行之工作負荷之細節,及其他元資料。在當前實施中,清單包括關於容器化應用程式影像及影像可能位於何處(例如,在登錄檔或本端儲存器中)之資訊。根據一個實施例,在每一加速器內提供登錄檔以儲存組態資訊(例如,FPGA之位元串流、GPU之計算內核等)。
在處理區塊1120,編配控制器410查找平台內之可用資源。在一個實施例中,編配控制器410基於持續叢集狀態檢查可用資源,且藉由與IPU 810之協調邏輯812內的節點代理813互動來排程對應資源。IPU節點代理813係與編配控制器410通訊之控制平面組件。在一個實施例中,節點代理813作為端點操作,編配控制器410可與之通訊以用於管理相關功能。在此實施例中,節點代理813可偵聽來自編配控制器410之新請求(例如,經由帶外或帶內管理)。在另一實施例中,編配控制器410將識別符(或構成之平台ID)指派給資源,且建立至個別資源ID之映射。另外,編配控制器410自可用資源池中移除資源ID。因此,編配控制器410在清單所請求之資源不可用的情況下返回失敗訊息。
在處理區塊1130,具有要分配之對應平台ID及資源ID之節點代理813在排程過程期間自編配控制器410接收包括組態資訊之組態檔案。在一個實施例中,組配檔案提供關於組態可構成平台所涉及之每一IPU節點代理813之細節(例如,關於如何到達另一個端點,比如IP位址、埠號)。在另一實施例中,管理CPU資源之IPU 810作為主控器操作,且與具有其他資源850資源之IPU建立相互鑑認之安全通道。在又一實施例中,此主控器IPU 810自其他IPU 810請求虛擬化資源850端點物件。
圖 12A說明在IPU 810處自編配控制器410接收到工作者節點組配請求後之平台的一個實施例。
在處理區塊1140,主控器IPU 810將虛擬化資源850端點曝露為在CPU平台上枚舉之熱插拔PCIe裝置。在一個實施例中,藉由IPU透明地處理實際轉換(例如,自CPU平台<-- PCIe -->定製協定(諸如,網狀架構上加速器)<-- PCIe -->加速器)。其經設計為類似於網狀架構上NVMe之協定,亦即網狀架構上XPU,其封裝底層傳送機構。
圖 12B說明虛擬化加速器端點氣體曝露後平台之一個實施例。
在處理區塊1150,IPU 810向編配控制器410傳輸訊息,告知已成功構成工作者節點。在處理區塊1160,IPU 810自編配控制器410接收用於微服務之執行環境之規格。在處理區塊1170,IPU 810與登錄檔通訊以擷取與包括於組態檔案中之組態資訊相關聯之一或多個影像。在一個實施例中,影像包含容器影像、位元串流、組態資訊等。
在處理區塊1180,IPU驗證影像。在一個實施例中,IPU藉由驗證影像簽章且解密及檢查影像是否存在潛在惡意程式碼來驗證影像。
圖 12C說明每一IPU 810已提取影像之後平台之一個實施例。在處理區塊1190,IPU 810將各別影像傳送至資源850管理位元串流,其中資源850基於所提供之影像建立執行環境。
下文提供本文中所揭示之技術之說明性實例。技術之實施例可包括下文所描述之實例中之任何一或多個及其任何組合。
實例1包括一種設備,其包含:多個經分解資料中心資源;及一基礎設施處理單元(IPU),其通訊地耦接至該等多個資源,以構成用於分配微服務叢集之該等多個經分解資料中心資源之一平台。
實例2包括實例1之主題,其進一步包含一編配控制器,該編配控制器通訊地耦接至該IPU,以在一佈建階段期間經由該IPU構成該平台。
實例3包括實例1至2中任一者之主題,其中該編配控制器基於藉由該微服務提供之資源需求經由該IPU在該等經分解資料中心資源中之一或多者處排程一微服務。
實例4包括實例1至3中任一者之主題,其中該IPU發現該等多個經分解資料中心資源且執行對其之管理。
實例5包括實例1至4中任一者之主題,其中該IPU將與該等多個經分解資料中心資源中之每一者相關聯之資訊報告至該編配控制器。
實例6包括實例1至5中任一者之主題,其中該IPU鑑認及認證該等多個經分解資料中心資源。
實例7包括實例1至6中任一者之主題,其中該IPU與該等多個經分解資料中心資源中之每一者建立一通訊會話。
實例8包括實例1至7中任一者之主題,其中該IPU在一排程過程期間自該編配控制器接收包括組態資訊之一組態檔案。
實例9包括實例1至8中任一者之主題,其中該IPU在一經分解資料中心資源處曝露一虛擬化資源端點。
實例10包括實例1至9中任一者之主題,其中該IPU向該編配控制器傳輸指示一經分解資料中心資源已經構成之一訊息,且自該編配控制器接收用於一微服務之一執行環境之一規格。
實例11包括實例1至10中任一者之主題,其中該IPU自一登錄檔擷取與包括於該組態檔案中之該組態資訊相關聯之一或多個影像,且將該一或多個影像傳送至一經分解資料中心資源。
實例12包括一種方法,其包含:在一基礎設施處理單元(IPU)處執行佈建,以構成用於分配微服務叢集之多個經分解資料中心資源之一平台;及基於藉由該微服務提供之資源需求,經由該IPU執行編配以構成該等經分解資料中心資源中之一或多者。
實例13包括實例12之主題,其中執行該佈建包含該IPU發現及管理該等多個經分解資料中心資源。
實例14包括實例12至13中任一者之主題,其中執行該佈建進一步包含該IPU將與該等多個經分解資料中心資源中之每一者相關聯之資訊報告至編配控制器。
實例15包括實例12至14中任一者之主題,其中執行該佈建進一步包含:該IPU鑑認該等多個經分解資料中心資源;該IPU認證該等多個經分解資料中心資源;及該IPU與該等多個經分解資料中心資源中之每一者建立一通訊會話。
實例16包括實例12至15中任一者之主題,其中執行該編配包含基於藉由該微服務提供之資源需求,經由該IPU在該等經分解資料中心資源中之一或多者處排程一微服務。
實例17包括實例12至16中任一者之主題,其中執行該編配進一步包含:該IPU自一編配控制器接收包括組態資訊之一組態檔案;向該編配控制器傳輸指示一經分解資料中心資源已經構成之一訊息;及自該編配控制器接收用於一微服務之一執行環境之一規格。
實例18包括實例12至17中任一者之主題,其中執行該編配進一步包含:該IPU自一登錄檔擷取與包括於該組態檔案中之該組態資訊相關聯之一或多個影像;及將該一或多個影像傳送至一經分解資料中心資源。
實例19包括一種方法,其包含其中執行該編配進一步包含:該IPU自一登錄檔擷取與包括於該組態檔案中之該組態資訊相關聯之一或多個影像;及將該一或多個影像傳送至一經分解資料中心資源。
實例20包括實例19之主題,其中該資源管理電路發現該等多個經分解資料中心資源且執行對其之管理。
實例21包括實例19至20中任一者之主題,其中該資源管理電路將與該等多個經分解資料中心資源中之每一者相關聯之資訊報告至該編配控制器。
實例22包括實例19至21中任一者之主題,其中該資源管理電路與該等多個經分解資料中心資源中之每一者建立一通訊會話。
實例23包括實例19至22中任一者之主題,其中該協調電路在一排程過程期間自該編配控制器接收包括組態資訊之一組態檔案。
實例24包括至少一種電腦可讀媒體,其具有儲存於其上之指令,該等指令在由一或多個處理器執行時使得該等處理器:在一基礎設施處理單元(IPU)處執行佈建,以構成用於分配微服務叢集之多個經分解資料中心資源之一平台;及基於藉由該微服務提供之資源需求,經由該IPU執行編配以構成該等經分解資料中心資源中之一或多者。
以上實施包括對隨附圖式之參考,隨附圖式形成實施之一部分。隨附圖式藉助於說明展示可實踐之特定實施例。此等實施例在本文中亦稱為「實例」。此等實例可包括除所展示或描述之彼等元件之外的元件。然而,亦涵蓋包括所展示或描述之元件的實例。此外,亦涵蓋使用所展示或描述之彼等元件之任何組合或排列的實例(或其一或多個態樣),其係關於特定實例(或其一或多個態樣),抑或關於本文中展示或描述之其他實例(或其一或多個態樣)。
在此文件中參考之公開案、專利及專利文件係以全文引用的方式併入本文中,就如同以引用之方式個別地併入一般。若在此文件與以引用的方式併入之彼等文件之間發生用法不一致,則所併入的參考文件中之用法補充此文件之用法;對於不可調和的不一致,此文件中之用法起主導作用。
在此文件中,如專利文獻中所常見,使用術語「一」以包括一個或一個以上,其獨立於「至少一個」或「一或多個」之任何其他情況或使用。另外,「一組」包括一或多個元件。在此文件中,術語「或」用於指非排他性之或,使得除非另外指示,否則「A或B」包括「A而非B」、「B而非A」及「A及B」。在所附申請專利範圍中,術語「包括」及「其中(in which)」用作各別術語「包含」及「其中(wherein)」之直白英文等效物。又,在以下申請專利範圍中,術語「包括」及「包含」為開放的,亦即,仍認為包括除列舉於請求項中之此術語之後的彼等元素之外的元素的系統、裝置、物品或過程屬於彼請求項之範疇內。此外,在以下申請專利範圍中,術語「第一」、「第二」、「第三」等僅用作標記,且並不意欲對其物件暗示數值次序。
如本文中所提及之「邏輯指令」一詞係關於可由用於執行一或多個邏輯計算之一或多個機器理解之表達式。舉例而言,邏輯指令可包含可藉由用於對一或多個資料物件執行一或多個計算之處理器編譯器解譯之指令。然而,此僅為機器可讀指令之一實例,且實例就此而言不受限制。
如本文中所提及之「電腦可讀媒體」一詞係關於能夠維持可藉由一或多個機器察覺之表達式之媒體。舉例而言,電腦可讀媒體可包含用於儲存電腦可讀指令或資料之一或多個儲存裝置。此等儲存裝置可包含諸如(例如)光學、磁性或半導體儲存媒體之儲存媒體。然而,此僅為電腦可讀媒體之一實例,且實例就此而言不受限制。
如本文中所提及之「邏輯」一詞係關於用於執行一或多個邏輯計算之結構。舉例而言,邏輯可包含基於一或多個輸入信號提供一或多個輸出信號之電路。此電路可包含接收數位輸入且提供數位輸出之有限狀態機,或回應於一或多個類比輸入信號而提供一或多個類比輸出信號之電路。此電路可設置於特殊應用積體電路(ASIC)或場可規劃閘陣列(FPGA)中。又,邏輯可包含儲存於記憶體中之機器可讀指令,與處理電路組合以執行此等機器可讀指令。然而,此等僅為可提供邏輯之結構之實例,且實例就此而言不受限制。
本文中所描述之方法中的一些可體現為電腦可讀媒體上之邏輯指令。該等邏輯指令在於處理器上執行時使處理器經規劃為實施該等所描述方法之專用機器。當藉由邏輯指令組配以執行本文中所描述之該等方法時,處理器構成用於執行該等所描述方法之結構。替代地,本文中所描述之該等方法可減少至(例如)場可規劃閘陣列(FPGA)、特殊應用積體電路(ASIC)或類似者上之邏輯。
在描述及申請專利範圍中,可使用耦接及連接兩詞連同其衍生詞。在特定實施例中,連接可用以指示兩個或兩個以上元件彼此直接實體或電氣接觸。耦接可意謂兩個或兩個以上元件間接地實體或電氣接觸。然而,耦接亦可意謂兩個或兩個以上元件可能彼此非直接地接觸,但仍可彼此協作或互動。
本說明書對「一個實例」或「一些實例」之參考意謂結合實例所描述之特定特徵、結構或特性至少包括於一實施中。片語「在一個實例中」在本說明書中各處之出現可或可不全部指代同一實例。
以上描述意欲為說明性的,而非限制性的。舉例而言,上文所描述之實例(或其一或多個態樣)可與其他實例組合使用。諸如由一般熟習此項技術者在檢閱上文之描述之後可使用其他實施例。摘要應允許讀者快速確定技術揭示內容之性質。應遵守以下理解:摘要將不會用於解釋或限制申請專利範圍之範疇或含義。又,在以上實施方式中,可將各種特徵分組在一起以簡化本揭示內容。然而,申請專利範圍可不闡述本文中所揭示之每一特徵,此係因為實施例可特徵化該等特徵之一子集。另外,實施例可包括少於特定實例中所揭示之彼等特徵之特徵。因此,以下申請專利範圍特此併入實施方式中,其中每一技術方案就其自身而言作為單獨實施例。應參考所附申請專利範圍連同該等申請專利範圍所具有的等效物之全部範疇來判定本文中所揭示的實施例之範疇。
雖然已用特定於結構特徵及/或方法動作之語言來描述實例,但應理解,所主張主題可不限於所描述之特定特徵或動作。實情為,特定特徵及動作經揭露為實施所主張主題之樣本形式。
100:計算裝置
101:主機組織
110:編配控制器
120:處理器
122:安全指定位址空間支援
124:I/O子系統
126:直接記憶體存取(DMA)引擎
128:記憶體映射I/O (MMIO)引擎
130:記憶體
132:資料儲存裝置
134:通訊子系統
136:加速器裝置
138:周邊裝置
140:資料庫/資料庫系統
200:場可規劃閘陣列(FPGA)
202:安全MMIO引擎
204:安全DMA引擎
206:加速器功能單元(AFU)
208:記憶體/暫存器
300:環境
302:受信任執行環境(TEE)
303:受信任代理
304:主機密碼引擎/主機密碼引擎電路
306:異動調度器/異動調度器電路
308:主機驗證器/主機驗證器電路
310:直接記憶體存取(DMA)管理器/DMA管理器電路
311:位址範圍暫存器
312:加速器密碼引擎/加速器密碼引擎電路
313:記憶體範圍選擇引擎
314:加速器驗證器/加速器驗證器電路
316:記憶體映射器/記憶體映射器電路
318:鑑認標籤(AT)控制器/AT控制器電路
320:DMA引擎/DMA引擎電路
400:系統
401:主機組織
402:處理器
404:記憶體
408:輸入/輸出(I/O)源
406:作業系統(OS)
410:編配控制器/控制器
420:計算裝置
421,421A,421N:客戶組織
430A,430N:用戶端裝置
435:網路
501:區塊
800:平台
810:IPU
812:協調邏輯
813:節點代理
814:資源管理器
816:平台健康邏輯
817:網路
818:儲存器
819:安全引擎
825:安全引擎
850,850A,850C:資料中心資源
852,852A,852C:安全引擎
854,854A,854C:遙測引擎
98,856,856A,856C:加速資源服務/加速服務
910:租戶安全
920:基礎設施管理
930:信任根
940:微服務編配
1010,1020,1030,1040,1120,1130,1140,1150,1160,1170,1180,1190:處理區塊
在隨附諸圖中藉由實例而非限制來說明本文中所描述之概念。為簡單及清晰說明起見,諸圖中所說明之元件未必按比例繪製。在認為適當之處,已在諸圖當中重複參考標記以指示對應或類似元件。
圖1為用於藉由加速器裝置進行安全I/O之計算裝置的至少一個實施例之簡化方塊圖;
圖2為
圖 1之計算裝置之加速器裝置的至少一個實施例之簡化方塊圖;
圖3為
圖 1 及圖2之計算裝置之環境的至少一個實施例的簡化方塊圖;
圖 4說明系統之一個實施例;
圖5說明資料中心之一個實施例;
圖 6說明叢集之一個實施例;
圖 7A說明習知平台;
圖7B說明動態構成之平台之一個實施例;
圖8說明資料中心平台之一個實施例;
圖9說明基礎設施處理單元之一個實施例;
圖10為說明叢集設定過程之一個實施例之流程圖;
圖11為說明用於構成節點之過程的一個實施例之流程圖;且
圖12A 至圖12C說明在構成節點期間之平台之實施例。
110:編配控制器
800:平台
810:IPU
812:協調邏輯
813:節點代理
814:資源管理器
816:平台健康邏輯
817:網路
818:儲存器
819:安全引擎
850,850A~850C:資料中心資源
852,852A~852C:安全引擎
854,854A~854C:遙測引擎
856,856A~856C:加速資源服務/加速服務
Claims (25)
- 一種設備,其包含: 多個經分解資料中心資源;及 一基礎設施處理單元(IPU)電路,其通訊地耦接至該等多個資源,以構成用於分配微服務叢集之該等多個經分解資料中心資源之一平台。
- 如請求項1之設備,其進一步包含一編配控制器,該編配控制器通訊地耦接至該IPU電路,以在一佈建階段期間經由該IPU電路構成該平台。
- 如請求項2之設備,其中該編配控制器基於藉由該微服務所提供之資源需求而在該等經分解資料中心資源中之一或多者處排程一微服務。
- 如請求項3之設備,其中該IPU電路發現該等多個經分解資料中心資源且執行對其之管理。
- 如請求項4之設備,其中該IPU電路將與該等多個經分解資料中心資源中之每一者相關聯之資訊報告至該編配控制器。
- 如請求項5之設備,其中該IPU電路鑑認及認證該等多個經分解資料中心資源。
- 如請求項6之設備,其中該IPU電路與該等多個經分解資料中心資源中之每一者建立一通訊會話。
- 如請求項3之設備,其中該IPU電路在一排程過程期間自該編配控制器接收包括組態資訊之一組態檔案。
- 如請求項8之設備,其中該IPU電路在一經分解資料中心資源處曝露一虛擬化資源端點。
- 如請求項9之設備,其中該IPU電路向該編配控制器傳輸指示該經分解資料中心資源已經構成之一訊息,且自該編配控制器接收用於一微服務之一執行環境之一規格。
- 如請求項10之設備,其中該IPU電路自一登錄檔擷取與包括於該組態檔案中之該組態資訊相關聯之一或多個影像,且將該一或多個影像傳送至該經分解資料中心資源。
- 一種方法,其包含: 在一基礎設施處理單元(IPU)電路處執行佈建,以構成用於分配微服務叢集之多個經分解資料中心資源;及 基於藉由該微服務所提供之資源需求,經由該IPU執行用以構成該等經分解資料中心資源中之一或多者的編配。
- 如請求項12之方法,其中執行該佈建包含該IPU電路發現及管理該等多個經分解資料中心資源。
- 如請求項13之方法,其中執行該佈建進一步包含該IPU電路將與該等多個經分解資料中心資源中之每一者相關聯之資訊報告至一編配控制器。
- 如請求項14之方法,其中執行該佈建進一步包含: 該IPU電路鑑認該等多個經分解資料中心資源; 該IPU電路認證該等多個經分解資料中心資源;及 該IPU與該等多個經分解資料中心資源中之每一者建立一通訊會話。
- 如請求項12之方法,其中執行該編配包含基於藉由該微服務所提供之資源需求而經由該IPU電路在該等經分解資料中心資源中之一或多者處排程一微服務。
- 如請求項16之方法,其中執行該編配進一步包含: 該IPU電路自一編配控制器接收包括組態資訊之一組態檔案; 向該編配控制器傳輸指示一經分解資料中心資源已經構成之一訊息;及 自該編配控制器接收用於一微服務之一執行環境之一規格。
- 如請求項17之方法,其中執行該編配進一步包含: 該IPU電路自一登錄檔擷取與包括於該組態檔案中之該組態資訊相關聯之一或多個影像;及 將該一或多個影像傳送至一經分解資料中心資源。
- 一種基礎設施處理單元(IPU)電路,其包含: 資源管理電路,其通訊地耦接至多個經分解資料中心資源;及 協調電路,其通訊地耦接至一編配控制器,以構成用於分配微服務叢集之該等多個經分解資料中心資源之一平台。
- 如請求項19之IPU電路,其中資源管理電路發現該等多個經分解資料中心資源且執行對其之管理。
- 如請求項20之IPU電路,其中該資源管理電路將與該等多個經分解資料中心資源中之每一者相關聯之資訊報告至該編配控制器。
- 如請求項21之IPU電路,其中該資源管理電路與該等多個經分解資料中心資源中之每一者建立一通訊會話。
- 如請求項22之IPU電路,其中該協調電路在一排程過程期間自該編配控制器接收包括組態資訊之一組態檔案。
- 一種具有指令儲存於其上之至少一電腦可讀媒體,該等指令在由一或多個處理器執行時使得該等處理器用以: 在一基礎設施處理單元(IPU)電路處執行佈建,以構成用於分配微服務叢集之多個經分解資料中心資源;及 基於藉由該微服務所提供之資源需求,經由該IPU執行用以構成該等經分解資料中心資源中之一或多者的編配。
- 如請求項24之電腦可讀媒體,其中執行該佈建包含發現及管理該等多個經分解資料中心資源。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/304,657 | 2021-06-24 | ||
US17/304,657 US11861406B2 (en) | 2021-06-24 | 2021-06-24 | Dynamic microservices allocation mechanism |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202301118A true TW202301118A (zh) | 2023-01-01 |
Family
ID=77921615
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW111108828A TW202301118A (zh) | 2021-06-24 | 2022-03-10 | 動態微服務分配機制 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11861406B2 (zh) |
TW (1) | TW202301118A (zh) |
WO (1) | WO2022271223A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11861406B2 (en) | 2021-06-24 | 2024-01-02 | Intel Corporation | Dynamic microservices allocation mechanism |
CN114237628B (zh) * | 2022-02-25 | 2022-05-27 | 卓望数码技术(深圳)有限公司 | 微服务编排及调用方法、装置、计算机设备及存储介质 |
CN114996352A (zh) * | 2022-05-18 | 2022-09-02 | 聚好看科技股份有限公司 | 数据库管理系统及方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8095929B1 (en) * | 2007-04-16 | 2012-01-10 | Vmware, Inc. | Method and system for determining a cost-benefit metric for potential virtual machine migrations |
US9357034B2 (en) | 2012-09-07 | 2016-05-31 | Oracle International Corporation | System and method for orchestration of services for use with a cloud computing environment |
US11669367B2 (en) * | 2020-04-01 | 2023-06-06 | Bank Of America Corporation | System and methods for generation and analysis of real-time resource requests |
EP4165505A1 (en) * | 2020-06-12 | 2023-04-19 | Telefonaktiebolaget LM Ericsson (publ) | Container orchestration system |
US11861406B2 (en) | 2021-06-24 | 2024-01-02 | Intel Corporation | Dynamic microservices allocation mechanism |
-
2021
- 2021-06-24 US US17/304,657 patent/US11861406B2/en active Active
-
2022
- 2022-03-10 TW TW111108828A patent/TW202301118A/zh unknown
- 2022-03-11 WO PCT/US2022/020027 patent/WO2022271223A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
US20210311798A1 (en) | 2021-10-07 |
WO2022271223A1 (en) | 2022-12-29 |
WO2022271223A9 (en) | 2023-02-23 |
US11861406B2 (en) | 2024-01-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
NL2029116B1 (en) | Infrastructure processing unit | |
US10516623B2 (en) | Pluggable allocation in a cloud computing system | |
US11469964B2 (en) | Extension resource groups of provider network services | |
US11861406B2 (en) | Dynamic microservices allocation mechanism | |
US20200241926A1 (en) | Selection and management of disaggregated computing resources | |
CN106663033B (zh) | 在事务中间件机器环境支持绕域和代理模型并更新服务信息以跨域消息传送的系统和方法 | |
US9270703B1 (en) | Enhanced control-plane security for network-accessible services | |
Kim et al. | CF-CloudOrch: container fog node-based cloud orchestration for IoT networks | |
US20220255966A1 (en) | Method and System for Secure Container Application Framework | |
CN116848528A (zh) | 用于自动配置用于容器应用的最小云服务访问权限的技术 | |
US11792280B2 (en) | Provenance audit trails for microservices architectures | |
US20200226271A1 (en) | Dynamically applying application security settings and policies based on workload properties | |
AU2013266420B2 (en) | Pluggable allocation in a cloud computing system | |
US20220114023A1 (en) | Infrastructure as code deployment mechanism | |
Yang et al. | High-performance docker integration scheme based on OpenStack | |
US11537425B2 (en) | Methods for application deployment across multiple computing domains and devices thereof | |
US20240134970A1 (en) | Method for definition, consumption, and controlled access of dpu resources and services | |
US20230188341A1 (en) | Cryptographic operations in edge computing networks | |
CN110990458B (zh) | 分布式数据库系统、接口通信中间件 | |
US20230342496A1 (en) | Trust brokering and secure information container migration | |
JP7212158B2 (ja) | プロバイダネットワークサービス拡張 | |
US20230319133A1 (en) | Network interface device to select a target service and boot an application | |
US20230344716A1 (en) | Methods and apparatus to autonomously implement policies at the edge | |
CN114647868A (zh) | 安全计算方法、装置、设备、介质和程序产品 | |
Hasan et al. | Evolution Towards Cloud: Overview of Next Generation Computing Architecture |