TWI493465B - 分配式應用程式堆疊與部署方法及系統 - Google Patents

分配式應用程式堆疊與部署方法及系統

Info

Publication number
TWI493465B
TWI493465B TW101124588A TW101124588A TWI493465B TW I493465 B TWI493465 B TW I493465B TW 101124588 A TW101124588 A TW 101124588A TW 101124588 A TW101124588 A TW 101124588A TW I493465 B TWI493465 B TW I493465B
Authority
TW
Taiwan
Prior art keywords
node
software
version
cluster
deployment
Prior art date
Application number
TW101124588A
Other languages
English (en)
Other versions
TW201312467A (zh
Inventor
Andre Arcilla
Konstantin Boudnik
Roman V Shaposhnik
Original Assignee
Yahoo Inc
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 Yahoo Inc filed Critical Yahoo Inc
Publication of TW201312467A publication Critical patent/TW201312467A/zh
Application granted granted Critical
Publication of TWI493465B publication Critical patent/TWI493465B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Description

分配式應用程式堆疊與部署方法及系統
本發明內容與進行分配式計算的方法、系統與程式有關。實際上,本發明內容係引導至進行分配式應用程式堆疊與部署的方法、系統與程式。
分配式計算係一種電腦科學領域,該領域研究分配式系統,分配式系統則包括透過電腦網路通訊的多個獨立電腦或平行化虛擬機器,像是具有多複數個節點的電腦叢集。該分配式系統之該等機器彼此互動以完成共同目標。在該分配式系統中執行的電腦程式則稱為分配式應用程式。在分配式計算中,將問題劃分為許多工作,每一工作都由一或多個電腦所解決,例如由電腦叢集之該等節點所解決。分配式系統與應用程式也可被應用於各種範例,包括格網計算、公用計算、邊際計算與雲端計算,藉由這些方式使用者便可利用電腦、隨身型易網機、平板電腦、智慧手機或其他裝置透過網際網路存取伺服器資源。
例如,APACHE HADOOP是一種免費授權、支援高強度資料分配式應用程式的軟體架構。其使得應用程式可以數千個節點及拍位元組的資料進行工作。不像依靠硬體供應高度可利用性的方式,HADOOP係經設計以偵測並處理應用程式層的錯誤,藉此供應高度可利用的服務。HADOOP係以HADOOP堆疊的形式部署於電腦叢集上,該HADOOP堆疊包括一組軟體人工製品(HADOOP元件),像是HADOOP軟體、配置檔案、函 式庫、鏈結、原始碼、文件、雜項等等。在機器叢集上進行HADOOP部署通常涉及到硬體設置、操作系統設置、更新與配置、JAVA設置與配置以及HADOOP堆疊設置、配置與診斷偵錯。
HADOOP或任何其他分配式應用程式部署的最主要挑戰工作之一係根據該叢集中該等機器的特定角色及/或形式,確保該應用程式堆疊中的所有人工製品係以正確版本部署至每一機器。然而,HADOOP部署的已知方法通常涉及人為干涉,如此係為無效率且無作用。例如,使用者必須從開發者電子郵件或部署決策會議紀錄中擷取人工製品版本、將版本輸入至XML或文字檔案、執行命令下載特定人工製品版本至每一機器,並下載額外需要的人工製品,特別是那些並非適當版本且未被封包的人工製品。此外,已知的方法並無法保持追蹤所有的部署紀錄,像是該叢集中每一機器的角色及/或形式,以及在一特定機器上已經設置之該HADOOP堆疊中每一人工製品的特定版本。因此,需要提供一種對分配式應用程式堆疊特定封包版本進行自動組合、部署與啟動至配置儲存器中所識別之一組機器上的方法,像是進行HADOOP堆疊的部署,因此所形成的部署係被完整配置與紀錄,而經部署的分配式應用程式也可立即使用。
本發明內容與進行分配式計算的方法、系統與程式有關。實際上,本發明內容係引導至進行分配式應用程式堆疊與部署的方法、系統與程式。
在一範例中,一種方法係於至少一機器上實作,該機器具有至少一處理器、儲存器與一通訊平台,該通訊 平台連接至一網路以自動於一叢集上部署一分配式應用程式堆疊。透過一使用者介面,首先接收一請求以在該叢集上部署該分配式應用程式堆疊,該分配式應用程式堆疊包括複數個軟體人工製品,該叢集包含複數個節點。一配置取得單元根據該已接收請求從一配置儲存庫取得配置資訊。該配置資訊包括該分配式應用程式堆疊之每一軟體人工製品的版本以及該叢集之每一節點的型式。一指令產生器根據該已取得配置資訊為每一節點建立指令。該指令係用於引導每一節點去部署來自一軟體封包儲存庫之該複數個軟體人工製品之至少其中之一軟體人工製品至該節點本身上。接著,該指令產生器將所建立之指令傳輸至每一節點。
在另一範例中,一種方法係於至少一機器上實作,該機器具有至少一處理器、儲存器與一通訊平台,該通訊平台連接至一網路以自動於一叢集上部署一分配式應用程式堆疊,該分配式應用程式堆疊包括複數個軟體人工製品,該叢集包括複數個節點。一節點部署單元透過一通訊平台接收一被使用之指令,以引導該複數個節點之一節點根據每一軟體人工製品版本與該節點之型式,部署來自一軟體封包儲存庫之該複數個軟體人工製品之至少其中之一軟體人工製品於該節點上。接著,該節點部署單元根據該已接收指令為該節點識別來自該複數個軟體人工製品之至少一目標軟體人工製品。接著,該節點部署單元根據該已接收指令為該節點決定該至少一目標軟體人工製品的版本。一擷取單元從該軟體封包儲存庫擷取該已決定版本中提供至該節點之該至少一目標軟體人工製品。一設置單元在該節點上設置該已決定版本中之該至少一目標軟體人工製品。一紀錄產 生器透過該通訊平台為該節點傳輸一紀錄,該紀錄指示該節點於該部署期間之狀態及/或部署之後的結果。
在一不同範例中,呈現一種自動於一叢集上部署一分配式應用程式堆疊的系統,該系統包括一使用者介面、一配置取得單元與一指令產生器。該使用者介面經配置以接收一請求,以在該叢集上部署該分配式應用程式堆疊,該分配式應用程式堆疊包括複數個軟體人工製品,該叢集包括複數個節點。該配置取得單元係於操作上連接至該使用者介面,並經配置以根據該已接收請求從一配置儲存庫取得配置資訊。該配置資訊包括該分配式應用程式堆疊之每一軟體人工製品的版本以及該叢集之每一節點的型式。該指令產生器係於操作上連接至該配置取得單元,並經配置以根據該已取得配置資訊為每一節點建立指令。該指令係用於引導每一節點部署來自一軟體封包儲存庫之該複數個軟體人工製品之至少其中之一軟體人工製品至該節點本身上。該指令產生器也將所建立之指令傳輸至每一節點。
在另一不同範例中,呈現一種自動於一叢集上部署一分配式應用程式堆疊的系統,該分配式應用程式堆疊包括複數個軟體人工製品,該叢集包括複數個節點,該系統包括一節點部署單元、一擷取單元、一設置單元與一紀錄產生器。該節點部署單元經配置以透過一通訊平台接收一被使用之指令,以引導該複數個節點之一節點根據每一軟體人工製品版本與該節點之型式,部署來自一軟體封包儲存庫之該複數個軟體人工製品之至少其中之一軟體人工製品於該節點上。該節點部署單元也經配置根據該已接收指令為該節點識別來自該複數個軟體人工製品之至少一目標軟體人工製品,並根據該已接 收指令為該節點決定該至少一目標軟體人工製品的版本。該擷取單元係於操作上連接至該節點部署單元,並經配置以從該軟體封包儲存庫擷取該已決定版本中提供至該節點之該至少一目標軟體人工製品。該設置單元係於操作上連接至該擷取單元,並經配置以在該節點上設置該已決定版本中之該至少一目標軟體人工製品。該紀錄產生器係於操作上連接至該設置單元,並經配置以透過該通訊平台為該節點傳輸一紀錄,該紀錄指示該節點於該部署期間之狀態及/或部署之後的結果。
其他概念則與自動於一叢集上部署一分配式應用程式堆疊的軟體有關。根據此概念之一軟體產品係包括至少一機器可讀、非暫時性媒介以及由該媒介所承載之資訊。由該媒介所承載之資訊可以是一種可執行程式碼資料,該可執行程式碼資料與一請求關聯之參數或操作參數有關,像是與一使用者、一請求或一社交群集等等有關的資訊。
在一範例中,一種機器可讀及非暫時性媒介上係具有紀錄資訊,該紀錄資訊係用以自動於一叢集上部署其上所紀錄之一分配式應用程式堆疊,其中由該機器讀取該資訊時,該機器便執行一連串步驟。首先接收一請求,以在該叢集上部署該分配式應用程式堆疊,該分配式應用程式堆疊包括複數個軟體人工製品,該叢集包括複數個節點。接著,根據該已接收請求從一配置儲存庫取得配置資訊。該配置資訊包括該分配式應用程式堆疊之每一軟體人工製品的版本以及該叢集之每一節點的型式。根據該已取得配置資訊為每一節點建立指令。該指令係用於引導每一節點部署來自一軟體封包儲存庫之該複數個軟體人工製品之至少其中之一軟體人工製 品至該節點本身上。將所建立之指令傳輸至每一節點。
在另一範例中,一種機器可讀及非暫時性媒介上係具有紀錄資訊,該紀錄資訊係用以自動於一叢集上部署其上所紀錄之一分配式應用程式堆疊,該叢集包括複數個節點,其中由該機器讀取該資訊時,該機器便執行一連串步驟。首先接收一被使用之指令,以引導該複數個節點之一節點根據每一軟體人工製品版本與該節點之型式,部署來自一軟體封包儲存庫之該複數個軟體人工製品之至少其中之一軟體人工製品於該節點上。接著,根據該已接收指令為該節點識別來自於該複數個軟體人工製品之至少一目標軟體人工製品。根據該已接收指令為該節點決定該至少一目標軟體人工製品的版本。從該軟體封包儲存庫擷取該已決定版本中提供至該節點之該至少一目標軟體人工製品。接著,在該節點上設置該已決定版本中之該至少一目標軟體人工製品。為該節點傳輸一紀錄,該紀錄指示於該部署期間之狀態及/或部署之後的結果。
額外的優點與新穎特徵將於之後的部份描述中所提出,且在檢視後續及所附圖式或是可以由該等範例之產製或操作的學習下,其部分對於相關領域技術人員將變明顯。本發明內容的優點可以藉由以下討論詳細範例中所提出之方法論、手段及組合的各種觀點實作與使用所實現及達成。
在後續詳細描述中,利用範例提出許多特定細節以提供本發明內容有關的一完整了解。然而對相關領域技術人員而言,明顯的是本發明可在不具備這些細節下實 作。在其他情況中,已習知之方法、程序、系統、組件及/或電路係以相對高階方式所描述,就不細述,以避免對本發明內容之構想造成不必要的干擾。
本發明揭露內容描述以一完全自動化的方式進行分配式應用程式堆疊與部署的方法、系統與程式構想。在此所揭露之部署方法與系統係以排除分配式應用程式堆疊部署時的人為介入為目標,以使該部署更有效率及更有效果。這種方法與系統給予使用者許多優勢:例如,該分配式應用程式堆疊的部署係為完全自動;該分配式應用程式堆疊中所有人工製品的部署版本可被完全識別並記錄;該分配式應用程式堆疊部署具有重製性;以及該分配式應用程式堆疊與部署係以一簡單方式完成,像是透過一單一點擊工作提交(對於預設叢集或分配式應用程式堆疊版本而言)或透過一單一部署形式。
第一(a)圖至第一(c)圖描繪根據本發明內容之一具體實施例的高階示例系統配置,於該配置可於一叢集104上進行分配式應用程式堆疊自動部署。在第一(a)圖中,示例系統100包括一主機102、一叢集104、一使用者106、一網路108與(多個)資料來源110,該等資料來源包括一軟體封包儲存庫110-a、一配置儲存庫110-b,與一紀錄儲存庫110-c。網路108可以是一單一網路或一多種網路的組合。例如,網路108可以是區域網路(LAN,Local Area Network)、廣域網路(WAN,Wide Area Network)、公眾網路、私人網路、私營網路、公眾話機切換網路(PSTN,Public Telephone Switched Network)、網際網路、無線網路、虛擬網路或是上述形式之組合。網路108也可以包括各種網路存取點,例如 像是基點或網際網路交換點108-a,...,108-b的有線或無線存取點,資料來源可透過該存取點連接至該網路,以透過該網路傳輸資訊。
叢集104可以包括複數個節點104-a、104-b、...、104-h、104-i,於叢集104中可進行分配式應用程式堆疊與部署,該複數個節點則透過網路108或透過內部網路(未顯示)通訊。在此範例中,叢集104之每一節點都可以是一種獨立的實體機器,像是伺服器、工作站、桌上或膝上電腦、平板電腦、智慧手機或任何其他適合機器。在另一範例中,該等節點的某些或全部可以是利用軟體仿效或硬體虛擬所實作的平行虛擬機器。叢集104可以是由一實體所擁有的一組機器,例如由企業所擁有,並以伺服器農場或伺服器叢集方式所維護,其中該等伺服器係被安裝至機架中,放置於伺服器空間或資料中心中。叢集104也可以是由不同實體所擁有之機器的集合,並彼此實體相離一段距離。
資料來源110包括在一或多個伺服器上的一或多個資料庫,用以提供並儲存與該分配式應用程式堆疊與部署有關的資訊。例如,軟體封包儲存庫110-a係為儲存位置,從軟體封包儲存庫110-a可取得軟體封包,並設置於叢集104之該等機器上。配置儲存庫110-b可以保存該分配式應用程式堆疊與部署所需要的配置資訊,例如包括該分配式應用程式堆疊之每一軟體人工製品的版本以及叢集104之每一節點的型式。紀錄儲存庫110-c也包括資料庫,該資料庫儲存所有與該分配式應用程式堆疊與部署有關的紀錄,例如包括在部署期間每一節點的狀態(例如,將被設置在一特定節點上之每一軟體人工製品的版本)以及每一節點的部署結果(例如,是否 每一軟體人工製品都已經適當地設置於特定節點上,且是否已經執行並通過診斷程序)。要了解資料來源110可以由擁有叢集104之相同實體所維護,或由第三方所維護,且等資料來源110可以實作於具有一或多個資料庫的單一伺服器上,或實作於多個連接或未連接的伺服器上。
在此示例系統100中,使用者106可以透過內部或私營網路連接發送請求至主機102,以在叢集104上進行分配式應用程式堆疊自動部署,該使用者可以是叢集104之網路管理者、操作者、開發者或顧客。主機102回應該請求,從資料來源110之配置儲存庫110-b取得配置資訊,並根據該已取得配置資訊為叢集104之每一節點建立指令。叢集104之每一節點根據從主機102所接收之指令,可從資料來源110之軟體封包儲存庫110-a擷取適當的軟體人工製品,並將其設置於該節點上。另外,在由主機102聯合叢集104進行部署的期間及/或部署之後,可以將該部署狀態及結果完整並自動的紀錄並儲存於資料來源110之紀錄儲存庫110-c中。
第一(b)圖呈現與第一(a)圖所示之一類似系統配置,除了主機102係經配置成為兩個分離機器以外:一部署主機102-a與一管理主機102-b。在此示例系統112中,只有該管理主機102-b具有對叢集104所有機器的超級使用者或管理者存取權限。在此範例中部署主機102-a可以是任何計算裝置,其提供一介面服務,以讓使用者106輸入部署請求。例如,使用者106可以是訂購叢集104使用的顧客,並從家裡嘗試透過本身的電腦,也就是部署主機102-b於叢集104上進行分配式應用程式堆疊部署。
第一(c)圖呈現與第一(b)圖所示之另一類似系統配置,除了管理主機102-c也是叢集104之該等節點之一以外。也就是說,在叢集104中之一機器將做為該管理主機與叢集104之節點兩方。要注意也可以任何適宜用於一特定應用策略的方式混和第一(a)圖至第一(c)圖所描述的各種配置。例如在一應用策略中,可以在一單一機器上實作部署主機、管理主機與叢集節點的功能。
第二(a)圖顯示根據本發明內容之第一應用具體實施例,於第一(a)圖中所示之系統100的更詳細高階示例系統圖式。在此示例具體實施例,系統100包括一主機102、複數個叢集節點104-a、104-b、一軟體封包儲存庫110-a、一配置儲存庫110-b與一紀錄儲存庫110-c。主機102可以接收來自使用者的請求202,請求202具有例如一部署形式或一單一點擊提交形式。請求202可以包括該分配式應用程式堆疊的版本與叢集104的描述。主機102回應接收請求202,根據請求202中該分配式應用程式堆疊的版本與叢集104的描述,負責從配置儲存庫110-b取得配置資訊204。例如,配置資訊204可以包括一軟體配置與一叢集配置,該軟體配置具有該分配式應用程式堆疊的每一軟體人工製品版本,該叢集配置具有叢集104之每一節點的型式。配置資訊204也可以各種格式所儲存及取得,像是XML檔案或文字檔案,但並不限制於此。根據已取得配置資訊204,主機102可以為叢集節點104-a、104-b建立指令206。指令206可以用於引導每一叢集節點104-a、104-b部署來自軟體封包儲存庫110-a該分配式應用程式堆疊中之至少一軟體人工製品於每一節點104-a、104-b本身上。在此 範例中,所建立之指令係可於所有節點形式上工作。指令206可以包括可執行碼,像是可由叢集節點104-a、104-b所執行的腳本,也包括部署所需的其他資訊。例如,這種資訊可以包括一或多個目標軟體人工製品與叢集節點104-a、104-b之每一形式之間的關聯資訊,以及用於叢集節點104-a、104-b之每一形式之該一或多個目標軟體人工製品的版本資訊。指令206可被傳輸至每一叢集節點104-a、104-b。
在此範例中,每一叢集節點104-a、104-b從主機102接收該相同的通用指令206。也就是說,主機102不需要為每一個別叢集節點104-a、104-b建立一客製化指令。根據已接收指令206,每一叢集節點104-a、104-b便能負責為各別叢集節點104-a、104-b識別來自該分配式應用程式堆疊的所有軟體人工製品的至少其中之一目標軟體人工製品208-a、208-b。例如,對於HADOOP部署而言,指令206可以包括叢集配置及包括關聯資訊,該叢集配置指示叢集節點1 104-a係為叢集104中的名稱節點(Name node),該關聯資訊指示與一名稱節點關聯之一組目標軟體人工製品。據此,藉由執行指令206中的腳本,叢集節點1 104-a可以識別其本身之目標軟體人工製品208-a。同樣的,叢集節點2 104-b可以識別另一組目標軟體人工製品208-b,如果兩叢集節點104-a、104-b的形式不相同,則叢集節點1 104-a之該組目標軟體人工製品208-a便與叢集節點2104-b之該組目標軟體人工製品208-b不同。在軟體封包儲存庫110-a中可以儲存每一目標軟體人工製品的一個以上版本,因此,也可藉由每一叢集節點104-a、104-b根據所已接收指令206決定用於部署之每一目標軟體人工製品 208-a、208-b的版本,指令206則例如包括以上提到的版本資訊。如第二(a)圖所示,可以從軟體封包儲存庫110-a分別擷取該已決定版本中之目標軟體人工製品208-a、208-b,並分別設置於每一叢集節點104-a、104-b上。如以上所指出,在此範例中於每一叢集節點104-a、104-b上的所有操作都可以藉由參考已接收指令206中之資訊執行已接收指令206中之腳本的方式自動執行。
在此範例中,每一叢集節點104-a、104-b也都可以負責傳輸紀錄210-a、210-b至主機102,紀錄210-a、210-b指示該目標軟體人工製品擷取與設置的狀態與結果。接著,主機102可以從叢集104之該等所有節點蒐集紀錄210-a、210-b,並將該紀錄儲存於紀錄儲存庫110-c中。該紀錄可以例如紀錄檔形式或TWiki頁面形式儲存。
第二(b)圖顯示根據本發明內容之第二應用具體實施例,於第一(b)圖中所示之系統112的更詳細高階示例系統圖式。第二(b)圖呈現與第二(a)圖所示之一類似系統配置,除了主機102係經配置成為兩個分離機器以外:一部署主機102-a與一管理主機102-b。在此範例中,部署主機102-a係負責接收來自使用者之部署請求202。因為部署主機102-a可能不具有存取叢集104及/或資料來源110的權限,因此在此範例中,部署主機102-a可以產生指令212,指令212包括像是一或多個腳本的可執行碼以及已接收請求202的資訊。該第一腳本可以登錄至管理主機102-b之中,並使管理主機102-b參考已接收請求202中之資訊執行第二腳本。接著,管理主機102-b可以執行主機102的所有其他功能,如第二(a)圖中所描述。
第二(c)圖顯示根據本發明內容之第三應用具體實 施例,於第一(c)圖中所示之系統114的更詳細高階示例系統圖式。第二(c)圖呈現與第二(b)圖所示之一類似系統配置,除了管理主機102-c也是叢集104之該等節點之一以外。在此範例中,因為管理主機102-c係為叢集節點,因此也需要根據如配置資訊204中所定義叢集104中該節點之型式,將一組目標軟體人工製品部署在管理主機102-c上。與叢集節點2 104-b不同,叢集節點1(換言之,在此範例中為管理主機102-c)的指令206與紀錄210-a並不需要透過連接該等叢集節點之網路進行傳輸。在其他方面,管理主機102-c也執行叢集節點1 104-a的所有功能,如第二(a)圖與第二(b)圖所描述。
第三圖描繪根據本發明內容一具體實施例之主機102的示例系統圖式。在此示例具體實施例中,主機102做為部署主機與管理主機兩方。在此範例中,主機102包括一使用者介面302、一配置取得單元304、一指令產生器306、一通訊平台308與一紀錄單元310。使用者介面302經配置以接收來自使用者的請求,以部署該分配式應用程式堆疊。現在參考第九圖,該圖式描繪一示例請求與使用者介面302,在此範例中,使用者介面302係為部署表單的形式,包括叢集欄位902、部署標籤欄位904與郵件寄送欄位906。叢集欄位902可以接收例如以別名為形式的叢集描述,例如在第九圖中所示之「hit2」。部署標籤欄位904可以接收該分配式應用程式堆疊的版本,例如在第九圖中所示之「hit_0_20_203_0_1104271329_t2」。郵件寄送欄位906可以接收紀錄儲存庫110-c的位置,例如在此範例中為「[email protected]」。要了解在其他範例中可 能不需要郵件寄送欄位906,而紀錄儲存庫110-c的位置可以於其他表單中識別,像是別名、識別碼(ID)、統一資源***(URL)等等,但並不限制於此。參考回第三圖,使用者介面302可以是任何其他適宜形式,像是一互動式使用者介面、單一點擊工作提交(對於預設叢集或分配式應用程式堆疊版本而言)、命令列等等。
在此範例中,配置取得單元304係於操作上連接至使用者介面302與配置儲存庫110-b。配置取得單元304經配置以藉由執行像是由使用者介面302根據該已接收請求所產生之腳本的可執行碼方式,從配置儲存庫110-b取得配置資訊。如以上所指出,該配置資訊可以包括該分配式應用程式堆疊之每一軟體人工製品的版本以及該叢集之每一節點的型式。
在此範例中,根據來自使用者介面302之叢集104已接收描述獲得該每一節點的型式。現在參考第十圖,其中描述一種具有HADOOP叢集中每一節點型式之示例叢集配置,可根據在叢集欄位902(「hit2」)中叢集104已接收描述取得叢集104中每一節點之型式。該叢集配置可以包含參與該叢集104之完整節點清單,以及包含具有特殊角色描述之每一參與節點的「特殊」節點清單(不同於規律工作的節點清單),例如Oozie節點、閘道(Gateway)節點等等。例如,該節點「gsb190949.blue.ygrid.yahoo.com」被定義成為名稱節點,而該節點「gsb190947.blue.ygrid.yahoo.com」被定義成為次要節點(Secondary node)。要了解雖然第十圖中的每一節點都以網域名稱的方式識別,但在其他範例中也可以應用其他適合的形式,例如IP位置與別名。如以上所指出,該示例叢集配置係與一叢集特定描述 (「hit2」)關聯,並儲存在配置儲存庫110-b中。所有的叢集配置可以由一使用者或第三方所預先定義,以進行部署。根據該叢集之特定描述,配置取得單元304可以取得各種叢集配置。
在此範例中,也可以根據來自該使用者介面302之該分配式應用程式堆疊已接收版本獲得每一軟體人工製品的版本。現在參考第十一圖,其中描述一種具有HADOOP堆疊中每一軟體人工製品版本之示例軟體配置,該HADOOP堆疊中每一軟體人工製品之版本則可以根據在部署標籤欄位904(「hit_0_20_203_0_1104271329_t2」)中該已接收HADOOP堆疊版本而決定。例如,該HADOOP堆疊特定版本中的HADOOP分配式檔案系統(HDFS,Hadoop Distributed File System)代理伺服器(Proxy)係為3.0.0.0.1104072227,而該資料擷取(DAQ)版本則為0.1.1104262128。因為該HADOOP堆疊的某些元件可以包括一個以上的軟體人工製品,這些元件中的每一軟體人中製品版本便可被分別定義。例如,分配式資料倉儲(Hive)元件可以包括一客戶端人工製品與一伺服器端人工製品,其具有相同的0.0.7_6版本。在此範例中,所有的軟體人工製品都具有版本控制封包格式,例如TAR、GZ、CAB、ZIP、RAR等等,但並不限制於此。如同以上提及,該示例軟體配置係與該HADOOP堆疊特定版本(「hit_0_20_203_0_1104271329_t2」)有關,並儲存於配置儲存庫110-b中。所有的軟體配置都被自動更新,或由一使用者或第三方手動輸入,以進行預先部署。根據該分配式應用程式堆疊的特定版本,配置取得單元304可以取得各種軟體配置。在另一範例中,取代 利用部署標籤欄位904接收該分配式應用程式堆疊的版本,可以直接透過使用者介面302具體指明在該分配式應用程式堆疊中將被部署的某些或所有的軟體人工製品版本。在此情況中,可以不需要從配置儲存庫110-b取得該完整的軟體配置,或可以完全不需要從配置儲存庫110-b取得該軟體配置。
該分配式應用程式堆疊的版本係與叢集104的描述正交。也就是說,叢集104的描述決定每一節點所扮演的概念角色(形式)(例如,規律工作節點、名稱節點伺服器、閘道等等)以及具體指明該分配式應用程式堆疊的版本(也就是一組軟體人工製品版本),該分配式應用程式堆疊的版本則指明在每一特定節點上所將部署而使該節點可以執行其角色的軟體人工製品特定版本。
參考回第三圖,在此範例中,指令產生器306係於操作上連接至配置取得單元304,並經配置以根據該已取得配置資訊為叢集104之該等節點建立部署指令。例如,指令產生器306藉由執行像是腳本的可執行碼方式,可以讀取該已取得配置資訊中的該叢集配置與軟體配置,以產生至少一目標軟體人工製品與該等節點每一型式之間的關聯資訊。也就是說,該等叢集節點的每一型式都被映射至一組目標軟體人工製品,其對於該等叢集節點之該特定型式而言需要此關聯資訊以適當進行動作。例如,如同以上於第二(a)圖所指出,一組目標軟體人工製品208-a係可以與一名稱節點相關,而另一組目標軟體人工製品208-b則可以與一次要節點相關。雖然通常並不需要在該主機側將每一個別叢集節點進一步映射至一組目標軟體人工製品,但在某些範例中, 可由主機102之指令產生器306執行這種映射動作。
指令產生器306也可以為該等節點的每一型式產生該至少一目標軟體人工製品的版本資訊。也就是說,可根據該軟體配置識別該等節點每一型式的每一目標軟體人工製品版本資訊。選擇上在產生這種版本資訊時,指令產生器306可以進一步檢查來自於軟體封包儲存庫110-a或來自於其他適合來源之每一目標軟體人工製品的最新版本,以決定該已取得軟體配置中所指明之目前版本是否應該被更新。例如,在第十一圖中,指令產生器306可以決定從配置儲存庫110-b所取得之Nova(1.1.1.2)的版本可能不是最新版本,且從該軟體封包儲存庫110-a可以獲得Nova的最新版本1.1.2.1。在此情況中,指令產生器306可以進一步考量許多因素決定是否應該以Nova的最新版本置換該版本資訊中的已取得版本,該等因子像是相容性、可靠性、完整性、稽核、認證與順從性,但並不限制於這些因子。指令產生器306選擇上可以請求來自該使用者或該叢集管理者的確認,以將一或多個軟體人工製品更新成該指令版本資訊中及/或該配置資訊中該軟體配置的最新版本。
指令產生器306係進一步經配置以藉由將該關聯資訊與該版本資訊包括至該指令之中的方式提供該指令。該叢集配置,做為由配置取得單元304所取得之該配置資訊的部分,可以被整合至該關聯資訊之中,或由指令產生器306另外包括於該指令之中。選擇上如以上所提及,指令產生器306也提供像是腳本的可執行碼做為該指令之部分。在此範例中該指令係由指令產生器306所產生,並具有壓縮或未壓縮軟體封包的形式。在此範例中,指令產生器306也經配置以使通訊平台308 傳輸該指令至叢集104的每一節點。
在此範例中,紀錄單元310係於操作上連接該通訊平台308與紀錄儲存庫110-c。紀錄單元310係經配置以透過通訊平台308從叢集104之每一節點接收紀錄,該紀錄指示該個別節點於該部署期間之狀態及/或部署之後的結果。在此範例中,紀錄單元310也經配置以將所有的已接收紀錄整合,並將其儲存於紀錄儲存庫110-c中。要了解雖然在第三圖中紀錄儲存庫110-c係與主機102分離,但在其他範例中紀錄儲存庫110-c係可為主機102之部分。
第四圖描繪根據本發明內容之一具體實施例,叢集結點104-b之示例系統圖式。在此示例具體實施例中,叢集結點104-b包括一通訊平台402、一節點部署單元404、一擷取單元406、一設置單元408與一紀錄產生器410。通訊平台402從主機102接收部署指令,並將該指令傳遞至節點部署單元404。如果該指令係以軟體封包形式接收,首先可將該指令解封包至叢集節點104-b的本機檔案系統之中。在此範例中,節點部署單元404係經配置以根據該指令為特定叢集節點104-b識別來自於該複數個軟體人工製品之至少其中之一目標軟體人工製品,例如,該指令係為以上提及之關聯資訊。例如,在該指令中之該關聯資訊可以將該等叢集節點之次要節點型式與該分配式應用程式堆疊中一組特定軟體人工製品建立關聯。該指令中的腳本可由節點部署單元404所執行,以根據該叢集配置識別叢集節點104-b係為一次要型式叢集節點,該叢集配置可為該關聯資訊之部分。節點部署單元404可以進一步根據該關聯資訊中的映射,識別將被設置在叢集節點104-b上的該組目標 軟體人工製品。在此範例中,節點部署單元404也經配置以根據該指令決定該每一識別目標軟體人工製品的版本,例如,根據該版本資訊進行識別。
在此範例中,擷取單元406係於操作上連接至軟體封包儲存庫110-a與節點部署單元404。擷取單元406係經配置以從軟體封包儲存庫110-a擷取該以決定版本中之該至少一識別目標軟體人工製品。可由擷取單元406在任何此領域已知的適宜協定下進行擷取動作,像是FTP、SCP、SSH、P2P等等,但並不限制於此。在此範例中,每一軟體人工製品都以版本控制封包格式儲存軟體封包儲存庫110-a中。版本控制封包格式例如可以係為一壓縮的TAR檔案或任何其他適宜的檔案,其包含一已知軟體人工製品的所有檔案。該封包也可以包含許多清單檔案,該等清單檔案描述元件版本與其他與元件相關資訊。此封包系統的一整體特徵係為以伺服器為基礎之所有封包的儲存庫。一旦建立一封包,該封包便被上傳至軟體封包儲存庫110-a中。以此觀點為基礎,該封包可以永久保存於軟體封包儲存庫110-a中,並與其建立時間所給定的版本相關聯。這可保證該軟體封包與該版本之間的關聯性係為永久且不變。據此,每一軟體人工製品都可以各種版本儲存在軟體封包儲存庫110-a中,而擷取單元406可以擷取由節點部署單元404根據來自主機102之指令所決定的版本。
在此範例中,設置單元408係於操作上連接至擷取單元406,並經配置以在該機器上設置該等已擷取目標軟體人工製品。如果該等目標軟體人工製品係為版本控制的封包格式,設置單元408可以在設置之前將所有檔案解封包至叢集節點104-b的本機檔案系統中。設置單 元408可以進一步針對該節點之特定型式執行任何適宜的操作,以完成該設置動作。紀錄產生器410係於操作上連接至設置單元408,並經配置以使通訊平台402傳輸該部署紀錄至主機102。例如,紀錄產生器410可以記錄與該部署有關的所有資訊,像是設置在該機器上每一軟體人工製品的名稱、版本、設置時間以及大小,以及是否成功設置每一軟體人工製品。該紀錄可以例如紀錄檔或TWiki頁面的形式產生。紀錄產生器410選擇上可以執行一節點型式特定測試,以驗證該設置是否成功,並記錄該測試結果。
第五圖描繪根據本發明內容之一具體實施例,管理主機/叢集節點102-c的示例系統圖示。在此示例具體實施例中,該管理主機/叢集節點102-c包括一配置取得單元502、一指令產生器504、一通訊平台506、一紀錄單元508、一節點部署單元510、一擷取單元512、一設置單元514與一紀錄產生器516。此範例的大多數單元係執行與第三圖與第四圖中對應單元的相同功能。在此範例中指令產生器504除了使通訊平台506傳輸該指令至叢集104的其他部分以外,也直接將該指令傳遞至該相同機器中之節點部署單元510。在此範例中紀錄產生器516並不使通訊平台506傳輸該紀錄,取而代之的是直接將該紀錄傳遞至紀錄單元508。要注意因為在此範例中管理主機/叢集節點102-c執行一管理主機而非一部署主機的功能,因此管理主機/叢集節點102-c可以不包含一使用者介面,但取而代之的是從一部署主機(未示於第五圖)接收指令,該指令包括該部署請求中所有的資訊以及一或多個腳本,如以上第二(c)圖所指出。要了解在另一示例具體實施例中,機器可以做為一部署主 機、一管理主機與一叢集節點的結合。在此範例中,這種機器可以包括一使用者介面以及在第五圖中管理主機/叢集節點102-c的所有單元。
第六圖為根據本發明內容之一具體實施例,進行一分配式應用程式堆疊自動部署的示例程序流程圖。於步驟方塊圖602開始,接收於一叢集上部署該分配式應用程式堆疊的請求,像是HADOOP堆疊。如以上所描述,這可由主機102使用者介面302所執行。步驟方塊圖604繼續程序,其中根據該已接收請求從一配置儲存庫取得配置資訊。該配置資訊可以包括該分配式應用程式堆疊之每一軟體人工製品的版本以及該叢集每一節點的型式。如以上所描述,這可由主機102、102-c之配置取得單元304、502所執行。在步驟方塊圖606,根據該已取得配置資訊為每一節點建立指令。該指令係用於引導每一節點部署來自一軟體儲存庫之該複數個軟體人工製品之至少其中之一軟體人工製品於該節點本身上。如以上所描述,這可由主機102、102-c之指令產生器306、504所執行。前進至步驟方塊圖608,可以傳輸該已建立指令。如以上所描述,這可由指令產生器306、504結合主機102、102-c之通訊平台308、506所執行。
第七圖為根據本發明內容之一具體實施例,進行一分配式應用程式堆疊自動部署的示例程序細節流程圖。於步驟方塊圖602開始,接收於一叢集上部署該分配式應用程式堆疊的請求,像是HADOOP堆疊。該請求可包括一該分配式應用程式堆疊的版本以及一叢集描述。如以上所描述,這可由主機102使用者介面302所執行。步驟方塊圖702繼續程序,其中根據該已接收之叢集描述從一配置儲存庫獲得每一節點的型式。在步 驟方塊圖704,也根據該分配式應用程式堆疊之已接收版本從該配置儲存庫獲得每一軟體人工製品之版本。如以上所描述,步驟方塊圖702及704可由主機102、102-c之配置取得單元304、502所執行。前進至步驟方塊圖706,產生該複數個軟體人工製品之至少其中之一軟體人工製品與該等節點每一型式之間的關聯資訊。在步驟方塊圖708,也為該等節點每一型式產生該複數個軟體人工製品之至少其中之一軟體人工製品的版本資訊。在步驟方塊圖710,根據該已產生關聯資訊與該版本資訊提供該指令。如以上所描述,步驟方塊圖706、708及710可由主機102、102-c之指令產生器306、504所執行。前進至步驟方塊圖608,可以傳輸該已建立指令。如以上所描述,這可由指令產生器306、504結合主機102、102-c之通訊平台308、506所執行。
雖然第七圖中所描述的處理係以特定次序所描述,但相關領域一般技術者應可認知該處理可以不同次序執行。在一範例中,步驟方塊圖702可在步驟方塊圖704之後執行,或基本上同時執行。在另一範例中,步驟方塊圖706可在步驟方塊圖708之後執行,或基本上同時執行。
第八圖為根據本發明內容之一具體實施例,進行一分配式應用程式堆疊自動部署的另一示例程序流程圖。步驟方塊圖602、604、606及608可由主機102所執行,如以上參考第六圖所描述。前進至步驟塊圖802,由該叢集之每一節點接收該指令。如以上所描述,這可由通訊平台402結合叢集節點104-b之節點部署單元404所執行,或由管理主機/叢集節點102-c之節點部署單元510單獨執行。無論如何,繼續前進至步驟方塊圖 804,其中根據該已接收指令為每一節點識別來自該複數個軟體人工製品之至少一目標軟體人工製品。在步驟方塊圖806,也根據該已接收指令為每一節點決定該至少一目標軟體人工製品的版本。如以上所描述,步驟方塊圖804、806可由叢集節點104-b、102-c之節點部署單元404、510所執行。前進至步驟方塊圖808,從一軟體封包儲存庫擷取該已決定版本中提供至該節點之該至少一目標軟體人工製品。如以上所描述,這可由叢集節點104-b、102-c之擷取單元406、512所執行。在步驟方塊圖810,將該已決定版本中之該至少一目標軟體人工製品設置於每一節點上。如以上所描述,這可由叢集節點104-b、102-c之設置單元408、514所執行。在步驟方塊圖812,將每一節點之紀錄傳輸至例如主機102。該紀錄可以指示該節點於該部署期間之狀態及/或部署之後的結果。如以上所描述,這可由管理主機/叢集節點102-c之紀錄產生器516單獨執行或由紀錄產生器410結合叢集節點104-b之通訊平台402所執行。
程序現在從步驟方塊圖814回到該主機102。在步驟方塊圖814,從每一節點接收該紀錄。如以上所描述,這可由管理主機/叢集節點102-c之紀錄單元508單獨執行,或由紀錄單元310結合主機102之通訊平台308所執行。在步驟方塊圖816,將所有已接收紀錄儲存於一紀錄儲存庫中。如以上所描述,這可由主機102、102-c之紀錄單元310、508所執行。
為了實作本發明內容,可以使用電腦硬體平台作為在此描述之一或多個該元件的硬體平台。傳統本質上假定相關領技術人員係足夠熟悉該等硬體元件、該等操作系統以及這種電腦之該等程式語言,以將這些技術調整 成實作基本上如在此描述的數位電腦程序(DCP,Digital Computer Program)處理。具有使用者介面元件之電腦可以用於實作一個人電腦(PC,Personal Computer)或是其他的工作站或終端裝置形式,當然在適當的編程下電腦也可以做為伺服器。相信相關領域技術人員係熟悉於這種電腦設備的結構、程式與一般操作,因此可對該等圖示進行自我解釋。
第十二圖描述一般電腦結構,在該電腦結構上可實作本發明內容,並具有包括使用者介面元件之一電腦硬體平台的功能方塊圖示描述。該電腦可以是一般用途電腦或特殊用途電腦。此電腦1200可用於實作如在此描述之該分配式應用程式堆疊與部署結構的任何組件。如在第一(a)圖、一(b)圖、一(c)圖、二(a)圖、二(b)圖及二(c)圖中所描繪之系統100、112、114等的不同組件都可透過一或多個電腦之硬體、軟體程式、韌體或其組合實作於該一或多個電腦上,如在電腦1200上。雖然在此為了方便僅顯示一台此類的電腦,但與動態關聯及事件偵測有關的電腦功能可以利用分配形式實作於一些類似的平台上,以分配該處理負載。
例如,電腦1200包括串列埠口1202,串列埠口(COM port)1202連接至電腦1200之網路,以促成資料通訊。電腦1200也包括一中央處理單元(CPU,Central Processing Unit)1204,其具有一或多個處理器形式以執行程式指令。該示例電腦平台包括一內部通訊匯流排1206、不同形式的程式儲存器與資料儲存器,例如磁碟1208、唯讀記憶體(ROM,Read-Only Memory)1210或隨機存取記憶體(RAM,Random Access Memory)1212,用以儲存由該電腦所處理及/或通訊的各種資料檔 案以及由該CPU所可能執行的程式指令。電腦1200也包括一輸入/輸出(I/O,Input/Output)組件1214,I/O組件1214支援該電腦與其中像是使用者介面元件1216之其他組件之間的輸入/輸出流。電腦1200也可以透過網路通訊接收程式與資料。
因此,如同以上所概述之在一叢集上自動部署分配式應用程式堆疊的方法構想,可以利用程式具現化。該技術的程式構想可以被認為是「產品」或「製造商品」,其一般來說具有可執行碼及/或關聯資料的形式,並在一機器可讀媒介型式上所運載或具現。有形、非暫態「儲存」型式媒介包括用於該等電腦、該等處理器或其他類似裝置或其關聯模組的任何或全部記憶體或其他儲存器,像是各種半導體記憶體、磁帶驅動器、磁碟驅動器及其他類似裝置,該等裝置可隨時提供軟體程式的儲存空間。
該全部或部分的軟體可隨時透過網路通訊,像是透過網際網路或各種其他遠端通訊網路。這種通訊例如可以完成將該軟體從一電腦或處理器載入至另一電腦或處理器之中。因此,可以負荷該等軟體元件的其他媒介型式包括像是跨及本機裝置之間之實體介面所使用、透過有線及光學地線網路及透過各種空氣鏈結的光學、電力、電磁波。也可以考慮承載所述波的該等實體元件作為負荷該軟體的媒介,像是有線或無線鏈結、光學鏈結或其他類似鏈結。當在此使用時,除非限制為有形的「儲存」媒介,否則像是電腦或機器「可讀媒介」係意指參與提供指令至一處理器進行執行的任何媒介。
因此,一機器可讀媒介可以具有許多形式,像是一有形儲存媒介、一載波媒介或實體傳輸媒介,包括但並 不限制於此。非揮發性儲存媒介也可以用於實作該等圖式中所顯示之該系統或是其任何組件,例如,包括像是在任何電腦或其他類似裝置中,光學碟片或磁碟的任何儲存裝置。揮發性儲存媒介則包括動態記憶體,像是所述電腦平台的主要記憶體。有形傳輸媒介包括共軸纜線;銅線與光纖,包括在電腦系統中形成匯流排的線路。載波傳輸媒介可以採用電力或電磁訊號的形式,或是在無線射頻(RF,Radio Frequency)及紅外線(IF,Infrared)資料傳輸期間產生的聲波或光波。一般的電腦可讀媒介形式便包括像是:軟碟、彈性碟片、硬碟、磁帶、任何磁性媒介、CD-ROM、DVD或DVD-ROM、任何光學媒介、穿孔卡片、紙帶、任何具有孔洞型態的實體儲存媒介、隨機存取記憶體(RAM)、可編程唯讀記憶體(PROM,Programmable Read-Only Memory)、可消除可編程唯讀記憶體(EPROM,Erasable Programmable Read-Only Memory)、可閃寫唯讀記憶體(FLASH-EPROM,Flash Erasable Programmable Read-Only Memory)、任何其他記憶晶片或磁匣、載波傳播資料或指令、像是載波的纜線或鏈結傳播,或是任何其他可讓電腦讀取程式碼及/或資料的媒介。許多這些的電腦可讀媒介形式都與運載一或多個指令的一或多個序列制一處理器進行執行有關。
相關領域技術者將可認知本發明內容係可進行各種修改及/或強化。例如,雖然以上描述知各種組件的實作可以具現於硬體裝置中,但其也可以只實作為軟體解法,例如設置於一線有伺服器上。此外,如在此描述之該主機與該等客戶端節點的單元係可實作為韌體、韌體/軟體組合、韌體/硬體組合或是硬體/韌體/軟體組合。
雖然先前的描述已經考量最佳模式及/或其他範例,但要了解於此可進行各種修改,且在此揭露之主題內容可以各種形式與範例實作,而本發明內容也可應用於多種應用之中,在此只描述其中一部分。預期藉由後續申請專利範圍主張本發明內容實際範疇中的任何及所有應用、修改及變化。
100‧‧‧系統
102‧‧‧主機
102-a‧‧‧部署主機
102-b‧‧‧管理主機
102-c‧‧‧管理主機
104‧‧‧叢集
104-a‧‧‧節點
104-b‧‧‧節點
104-d‧‧‧節點
104-e‧‧‧節點
104-f‧‧‧節點
104-g‧‧‧節點
104-h‧‧‧節點
104-i‧‧‧節點
106‧‧‧使用者
108‧‧‧網路
108-a‧‧‧網際網路交換點
108-b‧‧‧網際網路交換點
110‧‧‧資料來源
110-a‧‧‧軟體封包儲存庫
110-b‧‧‧配置儲存庫
110-c‧‧‧紀錄儲存庫
112‧‧‧系統
114‧‧‧系統
202‧‧‧請求
204‧‧‧配置資訊
206‧‧‧指令
208-a‧‧‧目標軟體人工製品
208-b‧‧‧目標軟體人工製品
210‧‧‧紀錄
210-a‧‧‧紀錄
210-b‧‧‧紀錄
212‧‧‧指令
302‧‧‧使用者介面
304‧‧‧配置取得單元
306‧‧‧指令產生器
308‧‧‧通訊平台
310‧‧‧紀錄單元
402‧‧‧通訊平台
404‧‧‧節點部署單元
406‧‧‧擷取單元
408‧‧‧設置單元
410‧‧‧紀錄產生器
502‧‧‧配置取得單元
504‧‧‧指令產生器
506‧‧‧通訊平台
508‧‧‧紀錄單元
510‧‧‧節點部署單元
512‧‧‧擷取單元
514‧‧‧設置單元
516‧‧‧紀錄產生器
602‧‧‧步驟方塊圖
604‧‧‧步驟方塊圖
606‧‧‧步驟方塊圖
608‧‧‧步驟方塊圖
702‧‧‧步驟方塊圖
704‧‧‧步驟方塊圖
706‧‧‧步驟方塊圖
708‧‧‧步驟方塊圖
710‧‧‧步驟方塊圖
802‧‧‧步驟方塊圖
804‧‧‧步驟方塊圖
806‧‧‧步驟方塊圖
808‧‧‧步驟方塊圖
810‧‧‧步驟方塊圖
812‧‧‧步驟方塊圖
814‧‧‧步驟方塊圖
816‧‧‧步驟方塊圖
902‧‧‧叢集欄位
904‧‧‧部署標籤欄位
906‧‧‧郵件寄送欄位
1200‧‧‧電腦
1202‧‧‧串列埠口
1204‧‧‧中央處理單元
1206‧‧‧內部通訊匯流排
1208‧‧‧程式儲存器與資料 儲存器
1210‧‧‧唯讀記憶體
1212‧‧‧隨機存取記憶體
1214‧‧‧輸入/輸出組件
1216‧‧‧使用者介面元件
在此描述之該等方法、系統及/或程式係進一步以示例具體實施例的方式描述。這些示例具體實施例則參考圖式詳細描述。該等具體實施例為非限制性示例具體實施例,其中在許多圖式觀點中相同的參考符號代表相似的結構,其中:第一(a)圖至第一(c)圖描繪根據本發明內容之一具體實施例的一網路環境示例具體實施例,於該環境中可應用分配式應用程式堆疊與部署;第二(a)圖至第二(c)圖為根據本發明內容之一具體實施例,用於在一叢集上自動部署一分配式應用程式堆疊的系統高階示例系統圖式;第三圖為根據本發明內容之一具體實施例,用於如第二(a)圖至第二(c)圖中所示在一叢集上自動部署一分配式應用程式堆疊之該系統示例主機描繪;第四圖為根據本發明內容之一具體實施例,用於如第二(a)圖至第二(c)圖中所示在一叢集上自動部署一分配式應用程式堆疊之該系統示例叢集節點描繪;第五圖為根據本發明內容之一具體實施例,用於如第二(a)圖至第二(c)圖中所示在一叢集上自動部署一分配式應用程式堆疊之該系統示例主機/叢集節點描 繪;第六圖為根據本發明內容之一具體實施例的系統示例程序流程圖,該系統用於在一叢集上自動部署一分配式應用程式堆疊;第七圖為根據本發明內容之另一具體實施例的系統示例程序流程圖,該系統用於在一叢集上自動部署一分配式應用程式堆疊;第八圖仍為根據本發明內容之另一具體實施例的系統示例程序流程圖,該系統用於在一叢集上自動部署一分配式應用程式堆疊;第九圖顯示根據本發明內容之一具體實施例的示例請求/使用者介面;第十圖顯示根據本發明內容之一具體實施例的示例叢集配置;第十一圖顯示根據本發明內容之一具體實施例的示例軟體配置;以及第十二圖描繪一般性電腦結構,於該電腦結構上實作本發明內容。
100‧‧‧系統
102‧‧‧主機
102-a‧‧‧部署主機
102-b‧‧‧管理主機
102-c‧‧‧管理主機
104‧‧‧叢集
104-a‧‧‧節點
104-b‧‧‧節點
104-d‧‧‧節點
104-e‧‧‧節點
104-f‧‧‧節點
104-g‧‧‧節點
104-h‧‧‧節點
104-i‧‧‧節點
106‧‧‧使用者
108‧‧‧網路
108-a‧‧‧網際網路交換點
108-b‧‧‧網際網路交換點
110‧‧‧資料來源
110-a‧‧‧軟體封包儲存庫
110-b‧‧‧配置儲存庫
110-c‧‧‧紀錄儲存庫

Claims (24)

  1. 一種方法,該方法實作於至少一機器上,該機器具有至少一處理器、儲存器與一通訊平台,該通訊平台連接至一網路以自動於一叢集上部署一分配式應用程式堆疊,該方法包含以下的步驟:透過一使用者介面接收一請求,以在該叢集上部署該分配式應用程式堆疊,該分配式應用程式堆疊包括複數個軟體人工製品,該叢集包括複數個節點;根據該已接收請求由一配置取得單元從一配置儲存庫取得配置資訊,其中該配置資訊包括該分配式應用程式堆疊之每一軟體人工製品的版本以及該叢集之每一節點的型式,其該版本係一個別軟體人工製品開發的一狀態指示;根據該已取得配置資訊由一指令產生器為每一節點建立指令,其中該指令係用於引導每一節點部署來自一軟體封包儲存庫之該複數個軟體人工製品之至少其中之一軟體人工製品至該節點本身上;以及由該指令產生器將所建立之指令傳輸至每一節點。
  2. 如申請專利範圍第1項之方法,其中該請求包含該分配式應用程式堆疊的版本與該叢集的一描述。
  3. 如申請專利範圍第2項之方法,其中該取得步驟包含:根據該已接受的叢集描述,從該配置儲存庫獲得每一節點之型式;以及根據該分配式應用程式堆疊之已接收版本,從該配置儲存庫獲得每一軟體人工製品之版本。
  4. 如申請專利範圍第1項之方法,其中該建立步驟包 含:建立該複數個軟體人工製品之至少其中之一人工製品與該等節點之每一型式之間的關聯資訊;為該等節點之每一型式產生該複數個軟體人工製品之至少其中之一人工製品的版本資訊;以及根據該已產生關聯資訊與版本資訊提供該指令。
  5. 如申請專利範圍第1項之方法,進一步包含以下步驟:由一紀錄單元接收來自每一節點之紀錄,該紀錄指示該個別節點於該部署期間之狀態及/或部署之後的結果;以及由該紀錄單元儲存該已接收紀錄於一紀錄儲存庫中。
  6. 如申請專利範圍第5項之方法,進一步包含以下步驟:根據該已傳輸指令,由一節點部署單元為該複數個節點之其中之一識別來自該複數個軟體人工製品之至少一目標軟體人工製品;根據該已傳輸指令,由該節點部署單元為該節點決定該至少一目標軟體人工製品的一版本;由一擷取單元從該軟體封包儲存庫擷取該已決定版本中之該至少一目標軟體人工製品提供至該節點;由一設置單元在該節點上設置該已決定版本中之該至少一目標軟體人工製品;以及由一紀錄產生器為該節點傳輸該紀錄至該紀錄單元。
  7. 如申請專利範圍第1項之方法,其中每一軟體人工製 品都以一版本控制封包格式儲存於該軟體封包儲存庫中。
  8. 一種自動於一叢集上部署一分配式應用程式堆疊並具有至少一處理器、儲存器與連結至一網路之一通訊平台的系統,該系統包含:一使用者介面,該使用者介面於該至少一處理器上實作且經配置以接收一請求,以在該叢集上部署該分配式應用程式堆疊,該分配式應用程式堆疊包括複數個軟體人工製品,該叢集包括複數個節點;一配置取得單元,該配置取得單元係於操作上連接至該使用者介面,該配置取得單元於該至少一處理器上實作且經配置以根據該已接收請求從一配置儲存庫取得配置資訊,其中該配置資訊包括該分配式應用程式堆疊之每一軟體人工製品的版本以及該叢集之每一節點的型式,其該版本係一個別軟體人工製品開發的一狀態指示;以及一指令產生器,該指令產生器係於操作上連接至該配置取得單元,該指令產生器於該至少一處理器上實作且經配置以:根據該已取得配置資訊為每一節點建立指令,其中該指令係用於引導每一節點去部署來自一軟體封包儲存庫之該複數個軟體人工製品之至少其中之一軟體人工製品至該節點本身上;以及將所建立之指令傳輸至每一節點。
  9. 如申請專利範圍第8項之系統,其中該請求包含該分配式應用程式堆疊的一版本與該叢集的一描述。
  10. 如申請專利範圍第9項之系統,其中該配置取得單元於取得該配置資訊時,係進一步經配置以: 根據該已取得叢集描述從該配置儲存庫獲得每一節點之型式;以及根據該分配式應用程式堆疊之已接收版本從該配置儲存庫獲得每一軟體人工製品之版本。
  11. 如申請專利範圍第8項之系統,其中該指令產生器於建立該指令時,係進一步經配置以:建立該複數個軟體人工製品之至少其中之一人工製品與該等節點之每一型式之間的關聯資訊;為該等節點之每一型式產生該複數個軟體人工製品之至少其中之一人工製品的版本資訊;以及根據該已產生關聯資訊與版本資訊提供該指令。
  12. 如申請專利範圍第8項之系統,進一步包含一紀錄單元,該紀錄單元經配置以:接收來自每一節點之紀錄,該紀錄指示該個別節點於該部署期間之狀態及/或部署之後的結果;以及儲存該已接收紀錄於一紀錄儲存庫中。
  13. 如申請專利範圍第12項之系統,進一步包含:一節點部署單元,該節點部署單元經配置以:根據該已傳輸指令,為該複數個節點之一識別來自該複數個軟體人工製品之至少一目標軟體人工製品;根據該已傳輸指令,為該節點決定該至少一目標軟體人工製品的版本;一擷取單元,該擷取單元係於操作上連接至該節點部署單元,該擷取單元經配置以從該軟體封包儲存庫擷取該已決定版本中之該至少一目標軟體人工製品提供至該節點;一設置單元,該設置單元係於操作上連接至該擷 取單元,該設置單元經配置以在該節點上設置該已決定版本中之該至少一目標軟體人工製品;以及一紀錄產生器,該紀錄產生器係於操作上連接至該設置單元,該紀錄產生器經配置以為該節點傳輸該紀錄至該紀錄單元。
  14. 如申請專利範圍第8項之系統,其中每一軟體人工製品都以一版本控制封包格式儲存於該軟體封包儲存庫中。
  15. 一種機器可讀、有形及非暫時性媒介,該媒介所具有紀錄其上之資訊係用以自動於一叢集上部署一分配式應用程式堆疊,其中由該機器讀取該資訊時,該機器便執行以下動作:接收一請求,以在該叢集上部署該分配式應用程式堆疊,該分配式應用程式堆疊包括複數個軟體人工製品,該叢集包括複數個節點;根據該已接收請求從一配置儲存庫取得配置資訊,其中該配置資訊包括該分配式應用程式堆疊之每一軟體人工製品的版本以及該叢集之每一節點的型式,其該版本係一個別軟體人工製品開發的一狀態指示;根據該已取得配置資訊為每一節點建立指令,其中該指令係用於引導每一節點去部署來自一軟體封包儲存庫之該複數個軟體人工製品之至少其中之一軟體人工製品至該節點本身上;以及將所建立之指令傳輸至每一節點。
  16. 如申請專利範圍第15項之媒介,其中該請求包含該分配式應用程式堆疊的一版本與該叢集的一描述。
  17. 如申請專利範圍第16項之媒介,其中該取得步驟包 含:根據該已接受叢集描述從該配置儲存庫獲得每一節點之型式;以及根據該分配式應用程式堆疊之已接收版本從該配置儲存庫獲得每一軟體人工製品之版本。
  18. 如申請專利範圍第15項之媒介,其中該建立步驟包含:建立該複數個軟體人工製品之至少其中之一人工製品與該等節點之每一型式之間的關聯資訊;為該等節點之每一型式產生該複數個軟體人工製品之至少其中之一人工製品的版本資訊;以及根據該已產生關聯資訊與版本資訊提供該指令。
  19. 如申請專利範圍第15項之媒介,進一步包含:接收來自每一節點之紀錄,該紀錄指示該個別節點於該部署期間之狀態及/或部署之後的結果;以及儲存該已接收紀錄於一紀錄儲存庫中。
  20. 如申請專利範圍第19項之媒介,進一步包含:根據該已傳輸指令,為該複數個節點其中之一識別來自該複數個軟體人工製品之至少一目標軟體人工製品;根據該已傳輸指令,為該節點決定該至少一目標軟體人工製品的版本;從該軟體封包儲存庫擷取該已決定版本中之該至少一目標軟體人工製品提供至該節點;在該節點上設置該已決定版本中之該至少一目標軟體人工製品;以及為該節點傳輸該紀錄。
  21. 如申請專利範圍第15項之媒介,其中每一軟體人工 製品都以一版本控制封包格式儲存於該軟體封包儲存庫中。
  22. 一種方法,該方法實作於至少一機器上,該機器具有至少一處理器、儲存器與一通訊平台,該通訊平台連接至一網路以自動於一叢集上部署一分配式應用程式堆疊,該分配式應用程式堆疊包括複數個軟體人工製品,該叢集包括複數個節點,該方法包含以下的步驟:由一節點部署單元透過一通訊平台接收一指令,該指令係用於根據每一軟體人工製品之一版本與該節點之一型式,引導該複數個節點之其中之一部署來自一軟體封包儲存庫之複數個軟體人工製品之至少其中之一軟體人工製品於該節點上,其該版本係一個別軟體人工製品開發的一狀態指示;根據該已接受指令,由該節點部署單元為該節點識別來自該複數個軟體人工製品之至少一目標軟體人工製品;根據該已接受指令,由該節點部署單元為該節點決定該至少一目標軟體人工製品的版本;由一擷取單元從該軟體封包儲存庫擷取該已決定版本中之該至少一目標軟體人工製品提供至該節點;由一設置單元在該節點上設置該已決定版本中之該至少一目標軟體人工製品;以及由一紀錄產生器透過該通訊平台為該節點傳輸一紀錄,該紀錄指示於該部署期間之狀態及/或部署之後的結果。
  23. 一種自動於一叢集上部署一分配式應用程式堆疊並 具有至少一處理器、儲存器與連結至一網路之一通訊平台的系統,該分配式應用程式堆疊包含複數個軟體人工製品,該叢集包括多數節點,該系統包含:一節點部署單元,該節點部署單元於該至少一處理器上實作且經配置以:透過一通訊平台接收一指令,該指令係用於根據每一軟體人工製品之一版本與該節點之一型式,引導該複數個節點之其中之一部署來自一軟體封包儲存庫之複數個軟體人工製品之至少其中之一軟體人工製品於該節點上,其該版本係一個別軟體人工製品開發的一狀態指示;根據該已接受指令,為該節點識別來自該複數個軟體人工製品之至少一目標軟體人工製品;根據該已接收指令,為該節點決定該至少一目標軟體人工製品的版本;一擷取單元,該擷取單元係於操作上連接至該節點部署單元,該擷取單元於該至少一處理器上實作且經配置以從該軟體封包儲存庫擷取該已決定版本之該至少一目標軟體人工製品提供至該節點;一設置單元,該設置單元係於操作上連接至該擷取單元,該設置單元於該至少一處理器上實作且經配置以在該節點上設置該已決定版本中之該至少一目標軟體人工製品;以及一紀錄產生器,該紀錄產生器係於操作上連接至該設置單元,該紀錄產生器經配置以透過該通訊平台為該節點傳輸一紀錄,該紀錄指示於該部署期間之狀態及/或部署之後的結果。
  24. 一種機器可讀、有形及非暫時性媒介,該媒介上所具 有之資訊係用以自動於一叢集上部署一分配式應用程式堆疊,該分配式應用程式堆疊包括複數個軟體人工製品,該叢集包括複數個節點紀錄其上,其中由該機器讀取該資訊時,該機器便執行以下動作:接收一指令,該指令係用於根據每一軟體人工製品之一版本與該節點之一型式,引導該複數個節點之其中之一部署來自一軟體封包儲存庫之複數個軟體人工製品之至少其中之一軟體人工製品於該節點上,其該版本係一個別軟體人工製品開發的一狀態指示;根據該已接受指令,為該節點識別來自該複數個軟體人工製品之至少一目標軟體人工製品;根據該已接受指令,為該節點決定該至少一目標軟體人工製品的一版本;從該軟體封包儲存庫擷取該已決定版本之該至少一目標軟體人工製品提供至該節點;在該節點上設置該已決定版本之該至少一目標軟體人工製品;以及為該節點傳輸一紀錄,該紀錄指示於該部署期間之狀態及/或部署之後的結果。
TW101124588A 2011-07-28 2012-07-09 分配式應用程式堆疊與部署方法及系統 TWI493465B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/192,575 US8756595B2 (en) 2011-07-28 2011-07-28 Method and system for distributed application stack deployment

Publications (2)

Publication Number Publication Date
TW201312467A TW201312467A (zh) 2013-03-16
TWI493465B true TWI493465B (zh) 2015-07-21

Family

ID=47598359

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101124588A TWI493465B (zh) 2011-07-28 2012-07-09 分配式應用程式堆疊與部署方法及系統

Country Status (3)

Country Link
US (1) US8756595B2 (zh)
TW (1) TWI493465B (zh)
WO (1) WO2013015942A1 (zh)

Families Citing this family (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8756595B2 (en) * 2011-07-28 2014-06-17 Yahoo! Inc. Method and system for distributed application stack deployment
US9268589B2 (en) * 2011-12-09 2016-02-23 Yahoo! Inc. Method and system for deploying multiple distributed application stacks on a target machine
US9176725B2 (en) * 2012-05-15 2015-11-03 Oracle International Corporation Automated upgrade for an operating system using a gateway server
US20140237017A1 (en) * 2013-02-15 2014-08-21 mParallelo Inc. Extending distributed computing systems to legacy programs
TWI506456B (zh) * 2013-05-23 2015-11-01 Chunghwa Telecom Co Ltd 基於Hadoop多叢集環境的工作分派系統及方法
US20140357357A1 (en) 2013-05-30 2014-12-04 Microsoft Corporation Game bundle package
US9323514B2 (en) 2013-05-30 2016-04-26 Microsoft Technology Licensing, Llc Resource package indexing
US9766870B2 (en) 2013-05-30 2017-09-19 Microsoft Technology Licensing, Llc Bundle package generation
US9843624B1 (en) * 2013-06-13 2017-12-12 Pouya Taaghol Distributed software defined networking
CN103530148B (zh) * 2013-09-18 2016-09-07 国云科技股份有限公司 一种大型Linux软件包的发布方法
US9141364B2 (en) * 2013-12-12 2015-09-22 International Business Machines Corporation Caching and analyzing images for faster and simpler cloud application deployment
CN104753874B (zh) * 2013-12-25 2019-07-30 腾讯数码(天津)有限公司 实现Hadoop兼容性的方法和装置
CN104077398B (zh) * 2014-06-30 2017-09-22 中华电信股份有限公司 基于Hadoop多丛集环境的工作分派***及方法
US10110502B1 (en) 2015-02-02 2018-10-23 Amazon Technologies, Inc. Autonomous host deployment in managed deployment systems
US10101981B2 (en) 2015-05-08 2018-10-16 Citrix Systems, Inc. Auto discovery and configuration of services in a load balancing appliance
KR101831430B1 (ko) * 2015-10-27 2018-02-22 삼성에스디에스 주식회사 인프라의 설치와 구성을 자동화하는 장치 및 그 방법
JP6666542B2 (ja) 2015-11-18 2020-03-18 アイコム株式会社 データ更新システム、遠隔設定装置およびデータ更新方法
US9910652B2 (en) 2015-11-30 2018-03-06 International Business Machines Corporation Deploying applications
US10042734B2 (en) * 2016-05-09 2018-08-07 Sap Se Context tracing for software logging
CN107463582B (zh) * 2016-06-03 2021-11-12 中兴通讯股份有限公司 分布式部署Hadoop集群的方法及装置
US20170372247A1 (en) * 2016-06-24 2017-12-28 Intuit Inc. Methods, systems, and articles of manufacture for implementing software application development and releases
US10338899B2 (en) * 2016-10-24 2019-07-02 International Business Machines Corporation Dynamically compiled artifact sharing on PaaS clouds
US10394538B2 (en) 2017-02-09 2019-08-27 International Business Machines Corporation Optimizing service deployment in a distributed computing environment
CN107038069B (zh) * 2017-03-24 2020-05-08 北京工业大学 Hadoop平台下动态标签匹配DLMS调度方法
JP6855348B2 (ja) * 2017-07-31 2021-04-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびダウンロード処理方法
US10656927B2 (en) 2017-10-27 2020-05-19 Intuit Inc. Methods, systems, and computer program products for automating releases and deployment of a softawre application along the pipeline in continuous release and deployment of software application delivery models
US10713029B2 (en) * 2017-10-31 2020-07-14 Accenture Global Solutions Limited Manifest-enabled analytics platform deployment engine
US10891148B2 (en) * 2018-08-15 2021-01-12 Vmware, Inc. Methods and systems for identifying application components in distributed computing facilities
CN111061503B (zh) * 2018-10-16 2023-08-18 航天信息股份有限公司 集群***的配置方法和集群***
CN109684033B (zh) * 2018-12-11 2021-04-27 武汉烽火信息集成技术有限公司 云平台裸机管理方法、存储介质、电子设备及***
CN109889386A (zh) * 2019-03-05 2019-06-14 众安信息技术服务有限公司 区块链部署方法与***
CN110413286B (zh) * 2019-07-31 2023-08-22 创新先进技术有限公司 一种应用部署方法、装置及设备
US11153316B2 (en) * 2019-08-30 2021-10-19 International Business Machines Corporation Locked-down cluster
CN112527780B (zh) * 2020-12-23 2024-07-09 平安银行股份有限公司 Redis集群的创建与管理方法、***、计算机设备和存储介质
CN115328752B (zh) * 2022-08-17 2023-03-21 成都道客数字科技有限公司 一种用于Kubernetes控制面测试的集群模拟方法及***
CN115660396B (zh) * 2022-11-09 2023-09-19 中电金信软件有限公司 一种工作流的生成方法、装置、电子设备及可读存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282712B1 (en) * 1995-03-10 2001-08-28 Microsoft Corporation Automatic software installation on heterogeneous networked computer systems
US6601236B1 (en) * 1999-03-29 2003-07-29 International Business Machines Corporation Cross platform program installation on drives using drive object
TW200638054A (en) * 2004-12-09 2006-11-01 Advantest Corp Method and system for performing installation and configuration management of tester instrument modules

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062765B1 (en) * 1999-05-25 2006-06-13 Realnetworks, Inc. System and method for updating information via a network
US7426729B2 (en) * 2001-07-11 2008-09-16 Sun Microsystems, Inc. Distributed processing framework system
US7340520B1 (en) * 2002-04-01 2008-03-04 Microsoft Corporation System and method to facilitate manageable and agile deployment of services in accordance with various topologies
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
US7130881B2 (en) * 2002-05-01 2006-10-31 Sun Microsystems, Inc. Remote execution model for distributed application launch and control
US7665085B2 (en) * 2004-03-15 2010-02-16 Ramco Systems Limited Flexible deployment of software applications
DE102004015834B3 (de) * 2004-03-31 2005-03-03 Fujitsu Siemens Computers Gmbh Verfahren zur benutzerspezifischen Konfiguration eines Computers aus einer Gruppe von vorbereiteten Computern
US7685148B2 (en) * 2005-01-31 2010-03-23 Computer Associates Think, Inc. Automatically configuring a distributed computing system according to a hierarchical model
US7802243B1 (en) * 2006-04-20 2010-09-21 Open Invention Network Llc System and method for server customization
US8082289B2 (en) * 2006-06-13 2011-12-20 Advanced Cluster Systems, Inc. Cluster computing support for application programs
US7761559B2 (en) * 2006-10-13 2010-07-20 International Business Machines Corporation System and method of remotely managing and loading artifacts
US8028048B2 (en) * 2007-02-27 2011-09-27 International Business Machines Corporation Method and apparatus for policy-based provisioning in a virtualized service delivery environment
US20090037287A1 (en) * 2007-07-31 2009-02-05 Ahmad Baitalmal Software Marketplace and Distribution System
US7958485B2 (en) * 2007-11-21 2011-06-07 General Electric Company Methods and systems for managing content dependency deployment
EP2299360A1 (en) 2009-09-18 2011-03-23 Group Business Software AG process for installing a software application and platform operating system
US8756595B2 (en) * 2011-07-28 2014-06-17 Yahoo! Inc. Method and system for distributed application stack deployment

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6282712B1 (en) * 1995-03-10 2001-08-28 Microsoft Corporation Automatic software installation on heterogeneous networked computer systems
US6601236B1 (en) * 1999-03-29 2003-07-29 International Business Machines Corporation Cross platform program installation on drives using drive object
TW200638054A (en) * 2004-12-09 2006-11-01 Advantest Corp Method and system for performing installation and configuration management of tester instrument modules

Also Published As

Publication number Publication date
WO2013015942A1 (en) 2013-01-31
US20130031542A1 (en) 2013-01-31
TW201312467A (zh) 2013-03-16
US8756595B2 (en) 2014-06-17

Similar Documents

Publication Publication Date Title
TWI493465B (zh) 分配式應用程式堆疊與部署方法及系統
US9268589B2 (en) Method and system for deploying multiple distributed application stacks on a target machine
US10250461B2 (en) Migrating legacy non-cloud applications into a cloud-computing environment
US9612812B2 (en) Method and system for distributed application stack test certification
US10761873B2 (en) Evaluating distributed application performance in a new environment
US10929117B2 (en) Container image building using shared resources
US9342273B1 (en) Automatic communications graphing for a source application
US9798881B2 (en) Dynamic feature enhancement in client server applications and high volume server deployment with dynamic app store integration
US9513938B2 (en) Virtual appliance integration with cloud management software
US20160350081A1 (en) Automatic container definition
CN104144073B (zh) 主从装置环境的部署方法与主从装置环境的部署***
US20120266170A1 (en) Virtual Machine Image Management System and Methods
WO2021076311A1 (en) Methods and systems for integrated development environment editor support with a single code base
CN106911729A (zh) 一种适用于国产处理器的操作***远程安装方法
US10931746B2 (en) Managing content downloads
US11853100B2 (en) Automated delivery of cloud native application updates using one or more user-connection gateways
US20170339251A1 (en) Supporting interoperability in cloud environments
Saito et al. DevOps with Kubernetes: accelerating software delivery with container orchestrators
Goasguen Docker Cookbook: Solutions and Examples for Building Distributed Applications
CN111666079A (zh) 软件升级的方法、装置、***、设备和计算机可读介质
US11841760B2 (en) Operating system for collecting and transferring usage data
CN114500268A (zh) chart资源的部署方法、装置、服务器及存储介质
CN112988176A (zh) 渠道包的生成方法和装置、存储介质及电子设备
JP6272243B2 (ja) 仮想機器試験装置、仮想機器試験方法及び仮想機器試験プログラム
Mabey Collaborative Digital Forensics: Architecture, Mechanisms, and Case Study

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees