TWI759096B - 共享軟體方案之建置與部署系統、方法及電腦可讀媒介 - Google Patents
共享軟體方案之建置與部署系統、方法及電腦可讀媒介 Download PDFInfo
- Publication number
- TWI759096B TWI759096B TW110104246A TW110104246A TWI759096B TW I759096 B TWI759096 B TW I759096B TW 110104246 A TW110104246 A TW 110104246A TW 110104246 A TW110104246 A TW 110104246A TW I759096 B TWI759096 B TW I759096B
- Authority
- TW
- Taiwan
- Prior art keywords
- deployment
- solution
- package
- shared software
- shareware
- Prior art date
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本發明提供一種共享軟體方案之建置與部署系統、方法,該系統包括一執行環境伺服器及複數部署環境伺服器,其中,該執行環境伺服器用以建置一共享軟體方案及其部署包,以將該共享軟體方案部署於該複數部署環境伺服器之至少一者,藉此建置具有不同服務功能之部署包,使開發者能利用該部署包快速建置出一共享軟體方案,以減少開發者的時間成本。本發明復提供一種電腦可讀媒介,係用於執行本發明之建置與部署方法。
Description
本發明係有關一種軟體之建置與部署之技術,尤其指一種共享軟體方案之建置與部署系統、方法及電腦可讀媒介。
於現有技術中,當業者需要提供一軟體服務時,通常需要針對不同的軟體服務撰寫不同的服務YAML文件檔及部署YAML文件檔,以依據該軟體服務之部署YAML文件檔部署至一叢集伺服器中,俾將該軟體服務之服務YAML文件檔安裝於該叢集伺服器中,進而提供該軟體服務給使用者使用。
然而,現有技術需要針對不同的軟體服務撰寫不同的YAML文件檔,不但耗時且無法有效整合所有的軟體服務,故當有需求時,往往無法快速部署使用者所需的軟體服務。除了造成時間成本及人力資源的浪費,不能及時的應對當前快速變動的現代消費型態,且在繁瑣重複的操作過程中,也可能衍生潛在的人為犯錯風險,而產生錯誤。
因此,如何克服傳統的軟體服務在部署上所面臨的難題,使各個軟體服務能快速部署,以即時提供給使用者,且降低軟體服務在部署上所花費的時間成本,進而提高軟體服務的管理效率,已成為本領域技術人員目前的重要課題。
為解決上述問題,本發明提供一種共享軟體方案之建置與部署系統,係包括:複數部署環境伺服器;以及一執行環境伺服器,係用以建置與部屬一共享軟體方案,且接收至少一部署包、建置至少一部署包或是引用其他共享軟體方案之至少一部署包,以依據各該部署包建置該共享軟體方案,其中,該執行環境伺服器產生該共享軟體方案之部署訊息,以將該部署訊息傳送至經選擇部署的該複數部署環境伺服器之至少一者,俾由該複數部署環境伺服器之至少一者安裝該共享軟體方案。
本發明亦提供一種共享軟體方案之建置與部署方法,係包括:由一執行環境伺服器建置與部屬一共享軟體方案,且接收至少一部署包、建置至少一部署包或是引用其他共享軟體方案之至少一部署包,以依據各該部署包建置該共享軟體方案;由該執行環境伺服器產生該共享軟體方案之部署訊息,以將該部署訊息傳送至經選擇部署的該複數部署環境伺服器之至少一者;以及由該複數部署環境伺服器之至少一者安裝該共享軟體方案。
在一實施例中,該執行環境伺服器更包括一服務管理模組,係確認是否接收到至少一部署包,以於該服務管理模組確認已接收到該部
署包時,由該服務管理模組對該部署包進行解析,以得到該部署包之各項參數值,俾記錄該部署包於該共享軟體方案中。
在一實施例中,該執行環境伺服器更包括一方案管理模組,當該服務管理模組確認未接收到該部署包,且判斷是建置有至少一部署包時,由該方案管理模組接收一映像檔,再依據該映像檔設定一模板文件,以將該經設定過模板文件壓縮為該部署包,俾將該部署包記錄於該共享軟體方案中。
在一實施例中,當該服務管理模組確認未接收到該部署包,且判斷是引用其他共享軟體方案之至少一部署包時,該執行環境伺服器之方案管理模組將引用該其他共享軟體方案之至少一部署包至該共享軟體方案中,並記錄來源。
在一實施例中,該執行環境伺服器之服務管理模組驗證該共享軟體方案之部署包是否符合部署包規則及部署條件,以於該共享軟體方案之部署包符合部署包規則及部署條件時,該執行環境伺服器之方案管理模組授予權限。
在一實施例中,該執行環境伺服器更包括一方案部署模組,係用以將經選擇之該共享軟體方案部署於該複數部署環境伺服器之至少一者,且確認該複數部署環境伺服器之至少一者是否符合該共享軟體方案中的環境參數。
在一實施例中,該方案部署模組係確認該共享軟體方案之部署包之各項參數值是否有修改,或是與前一個版本之間的部署包之各項參數值是否有差異,以將有修改或有差異的部署包之各項參數值帶入一部署
指令,進而產生該共享軟體方案之部署包之至少一部署指令,且將該至少一部署指令填入該部署訊息中。
在一實施例中,該執行環境伺服器更包括一訊息管理模組,係將該部署訊息傳送至該經選擇部署的該複數部署環境伺服器之至少一者。
在一實施例中,各該複數部署環境伺服器皆包括一叢集部署執行模組,係解析來自該執行環境伺服器之部署訊息,以執行該部署訊息中之共享軟體方案之至少一部署指令,俾安裝該共享軟體方案之部署包於該複數部署環境伺服器之至少一者的叢集中,且回傳一部署結果至該執行環境伺服器。
本發明復提供一種電腦可讀媒介,應用於計算裝置或電腦中,係儲存有指令,以執行上述之建置與部署方法。
由上可知,本發明以YAML模板文件為基礎,設定具有應用服務功能之部署包(Helm chart),且該部署包為最小的軟體管理單位,當一使用者需建置一共享軟體方案時,可上傳至少一部署包、建置至少一部署包或是引用其他共享軟體方案之至少一部署包,藉此,快速建置成一新的共享軟體方案,而不需針對不同的服務撰寫不同的軟體,以大量減少開發者的時間成本。此外,可依據使用者需求同時部屬該共享軟體方案於一至多個部署環境伺服器中。
為讓本發明之上述特徵與優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明。在以下描述內容中將部分闡述本發明之額外特徵及優點,且此等特徵及優點將部分自所述描述內容可得而知,或
可藉由對本發明之實踐習得。應理解,前文一般描述與以下詳細描述兩者均為例示性及解釋性,且不欲約束本發明所欲主張之範圍。
1:共享軟體方案之建置與部署系統
10:執行環境伺服器
101:方案管理模組
102:服務管理模組
103:方案部署模組
104:訊息管理模組
105:儲存模組
20:部署環境伺服器
201:叢集部署執行模組
202:測試叢集
203:服務叢集
A~H:共享軟體方案
A’~C’:部署包
a~c,h,i:開發者
I,II:軟體
S71至S79:步驟
S81至S810:步驟
圖1係為本發明之共享軟體方案之建置與部署系統架構示意圖;
圖2係為本發明之依據映像檔設定新部署包之示意圖;
圖3係為本發明之部署共享軟體方案至部署環境伺服器之示意圖;
圖4係為本發明之共享軟體方案更新或還原之示意圖;
圖5係為本發明的第一實施例之建置共享軟體方案之示意圖;
圖6係為本發明的第二實施例之建置共享軟體方案之示意圖;
圖7係為本發明之共享軟體方案之建置與部署系統建置共享軟體方案之方法流程示意圖;以及
圖8係為本發明之共享軟體方案之建置與部署系統部署共享軟體方案之方法流程示意圖。
以下藉由特定的具體實施例說明本發明之實施方式,熟悉此技藝之人士可由本說明書所揭示之內容輕易地瞭解本發明之其他優點及功效。
須知,本說明書所附圖式所繪示之結構、比例、大小等,均僅用以配合說明書所揭示之內容,以供熟悉此技藝之人士之瞭解與閱讀,並非用以限定本發明可實施之限定條件,故不具技術上之實質意義,任何結構之修飾、比例關係之改變或大小之調整,在不影響本發明所能產生之功效及所能達成之目的下,均應仍落在本發明所揭示之技術內容得能涵蓋之範圍內。同時,本說明書中所引用之如「一」、「第一」、「第二」、「上」及「下」等之用語,亦僅為便於敘述之明瞭,而非用以限定本發明可實施之範圍,其相對關係之改變或調整,在無實質變更技術內容下,當視為本發明可實施之範疇。
圖1係為本發明之共享軟體方案之建置與部署系統架構示意圖。如圖1所示,該共享軟體方案之建置與部署系統1係包括:一執行環境伺服器10以及複數部署環境伺服器20,其中,該執行環境伺服器10包括一方案管理模組101、一服務管理模組102、一方案部署模組103、一訊息管理模組104及一儲存模組105,以及該複數部署環境伺服器20包括一叢集部署執行模組201及至少一叢集(圖中未示)。在一實施例中,該執行環境伺服器10之執行環境係為執行的Kubernetes環境,以及該複數部署環境伺服器20之部署環境係為部署共享軟體方案的Kubernetes環境。
舉例而言,一使用者可藉由一使用端設備(如電腦、智慧型手機,圖中未示)通訊連接(如利用網際網路(Internet)或各種無線、行動網路)該共享軟體方案之建置與部署系統1,以透過該使用端設備於該共享軟體方案之建置與部署系統1之執行環境伺服器10中設定並建置一共享軟體方案,進而由該執行環境伺服器10產生該共享軟體方案,並發出一部署
訊息至該複數部署環境伺服器20之至少一者的叢集中,俾由該複數部署環境伺服器20至少一者執行並安裝該共享軟體方案。此外,上述每一模組均可為軟體、硬體或韌體;若為硬體,則可為具有資料處理與運算能力之處理單元、處理器、電腦或伺服器;若為軟體或韌體,則可包括處理單元、處理器、電腦或伺服器可執行之指令,且可安裝於同一硬體裝置或分布於不同的複數硬體裝置。
於本實施例中,該執行環境伺服器10之方案管理模組101係提供該使用者透過其使用端設備至該方案管理模組101中設定欲建置的該共享軟體方案之名稱及版本,並新增/更新/刪除/還原該共享軟體方案之部署包之內容,其中,該方案管理模組101以一部署包(Helm chart)為最小的軟體管理單位,且該方案管理模組101係能擴增複數部署包於該共享軟體方案中。又,該方案管理模組101亦能引用其他共享軟體方案之至少一部署包至該共享軟體方案中,且不會修改到該其他共享軟體方案之至少一部署包之原始內容。
在一實施例中,該共享軟體方案係包含至少一部署包,且部署包係包含複數yaml檔,例如,Chart.yaml及values.yaml等,其中,該Chart.yaml描述了該部署包之名稱、版本、出處和關鍵字等,及該values.yaml描述了各項參數及其初始值,以及該部署包又包含一YAML模板文件(templates),而該YAML模板文件內具有複數yaml檔案以描述該部署包的各項參數及其初始值之設定與如何在kubernetes環境內執行。當Helm command執行時,亦即,執行形成該部署包時,以依據values.yaml檔的各項參數值形成該部署包。
再者,該部署包之複數yaml檔記錄有該使用者需要使用CPU(中央處理器)、記憶體、執行序、儲存位址、環境參數、映像檔位址、服務端口(port)、啟動時要執行的指令等,但不限於上述。此外,每個部署包都分別具有一應用服務功能,例如,提供網購的購物車功能、線上信用卡刷卡功能、提供輸入個人基本資料功能等,但不限於上述。
在一實施例中,該方案管理模組101係在不修改該共享軟體方案之複數部署包中各項參數值下,對該共享軟體方案中各項參數值進行修改,以提供該共享軟體方案所需的各項參數值,且記錄於該共享軟體方案中。在一實施例中,該方案管理模組101可於該共享軟體方案中設定各項參數值以取代該共享軟體方案之複數部署包中各項參數值,且不修改該共享軟體方案之複數部署包中各項參數值。
再者,該執行環境伺服器10之服務管理模組102係管理該使用者上架的共享軟體方案,當該使用者需要建置一共享軟體方案時,該服務管理模組102確認該使用者是否透過其使用端設備上傳至少一部署包至該服務管理模組102中。
在一實施例中,當該服務管理模組102確認該使用者是上傳該部署包時,該服務管理模組102對該部署包進行解析,以得到該部署包之部署包名稱、版本、映像檔、部署Pod等各項參數值,俾記錄該部署包於該共享軟體方案中,且該服務管理模組102利用helm lint指令驗證該共享軟體方案之部署包是否符合部署包規則(如Helm chart規則)及部署條件(如YAML資料部署條件)。
在一實施例中,當該服務管理模組102確認該使用者是未上傳該部署包時,該服務管理模組102判斷是建置至少一新部署包或是引用其他共享軟體方案之部署包。
是以,當該服務管理模組102判斷是建置至少一新部署包時,該方案管理模組101依據該使用者上傳之映像檔及其版本,以於一模板文件(即YAML模板文件)中設定該共享軟體方案之名稱、版本、服務端口(port)、儲存資源、運算資源、環境參數和指令等預先提供的部署自定義之元資料(metadata)。例如,圖2係為本發明之依據映像檔設定新部署包之示意圖,如圖2所示,該使用者透過該執行環境伺服器10所提供的一使用者介面以依據映像檔設定該新部署包。在一實施例中,該指令係指服務執行時,若需要驅動某個腳本(script)xx.sh檔案先執行,則該指令係為command:[“/bin/sh”];若需要刪除某個檔案,則該指令係為[“rm”,“/etc/abc.log”]等,但不限於上述。此外,該映像檔內大部分都是使用於linux環境,故該指令大部分為linux指令。
之後,該方案管理模組101將依據該映像檔設定的該模板文件壓縮為該新部署包,俾將該新部署包記錄於該共享軟體方案中。接著,該服務管理模組102利用helm lint指令驗證該共享軟體方案之新部署包是否符合部署包規則(如Helm chart規則)及部署條件(如YAML資料部署條件)。
又,當該服務管理模組102判斷是引用其他共享軟體方案時,該方案管理模組101引用該其他共享軟體方案之至少一部署包至該共享軟體方案中,亦即,該方案管理模組101將該其他共享軟體方案之至少一部署
包的內容複製至該共享軟體方案中,並記錄該其他共享軟體方案之至少一部署包的來源於該共享軟體方案中。在一實施例中,該其他共享軟體方案之至少一部署包已經在原本的共享軟體方案中經過驗證且符合部署包規則(如Helm chart規則)及部署條件(如YAML資料部署條件),故該服務管理模組102不再利用helm lint指令驗證該共享軟體方案是否符合部署包規則(如Helm chart規則)及部署條件(如YAML資料部署條件)。
在一實施例中,當該服務管理模組102透過helm lint指令驗證該共享軟體方案之部署包或新部署包符合部署包規則(如Helm chart規則)及部署條件(如YAML資料部署條件),亦即,該共享軟體方案係建置完成時,該服務管理模組102將該共享軟體方案之部署包或新部署包儲存於一儲存模組105中。再者,該方案管理模組101記錄該共享軟體方案中所使用的部署包或新部署包,進而完成建置該共享軟體方案,並授予權限給該使用者,以供該使用者部署該共享軟體方案及其部署包或新部署包至該部署環境伺服器20中。
於另一實施例中,該執行環境伺服器10之方案管理模組101係提供該使用者透過其使用端設備至該方案管理模組101中部署一共享軟體方案,該使用者於該方案管理模組101中選擇需要部署的一共享軟體方案之名稱與版本,以從該儲存模組105取得該共享軟體方案。又,該執行環境伺服器10之方案部署模組103係提供該使用者透過其使用端設備至該方案部署模組103中選擇將該共享軟體方案部署於該複數部署環境伺服器20之至少一者的叢集。
例如,圖3係為本發明之部署共享軟體方案至部署環境伺服器之示意圖,如圖3所示,該複數部署環境伺服器20(即部署標的)皆具有至少一叢集,是以,該使用者透過該執行環境伺服器10所提供的一使用者介面至該方案部署模組103中設定該共享軟體方案(如ACM 2.0)部署於該叢集(如ACM 2.0 QA區)中,且該方案管理模組101係提供該共享軟體方案之部署包(如acm-image、acm-clustermgmt、acm-iam等)之細部設定給該使用者設定各個部署包之各項參數值。此外,如圖3所示,專案係指為了完成一項功能或者項目所建立者。
在一實施例中,該方案部署模組103係確認該使用者選擇的該複數部署環境伺服器20之至少一者的叢集是否符合該共享軟體方案中的環境參數,例如,對外的服務端口是否有重複,動態儲存是否已經建置在該複數部署環境伺服器20之至少一者的叢集,若該方案部署模組103確認該使用者選擇的該複數部署環境伺服器20之至少一者的叢集不符合該共享軟體方案中的環境參數,則該方案部署模組103傳送錯誤訊息至該使用者之使用端設備,並提供該使用者於該方案管理模組101重新設定該共享軟體方案,或是於該方案部署模組103重新選擇該複數部署環境伺服器20之其他者的叢集。
在一實施例中,該方案部署模組103確認該共享軟體方案之部署包之各項參數值是否有修改,或是在更新版本時確認該共享軟體方案與前一個版本的共享軟體方案之間的部署包之各項參數值是否有差異,藉此,該方案部署模組103將有修改或有差異的部署包之各項參數值帶入一部署指令,是以,該方案部署模組103產生該共享軟體方案之部署包之下載部
署包指令、部署指令及列出部署狀態指令之至少一部署指令,但不限於上述。此外,該部署指令係包括刪除指令、升版(或更新)指令等,亦不限於上述。
在一實施例中,該方案部署模組103設定該共享軟體方案之部署包的安裝順序,以依序將該共享軟體方案之部署包之下載部署包指令、部署指令及列出部署狀態指令之至少一部署指令逐一填入一部署訊息中。
在一實施例中,該執行環境伺服器10之訊息管理模組104將該部署訊息發送至該使用者選擇的該複數部署環境伺服器20之至少一者的叢集,且該複數部署環境伺服器20之至少一者的叢集接收到該部署訊息後,該複數部署環境伺服器20之至少一者之叢集部署執行模組201解析該部署訊息,以依據該共享軟體方案之部署包的安裝順序執行該共享軟體方案之部署包之下載部署包指令、部署指令及列出部署狀態指令之至少一部署指令,俾安裝該共享軟體方案之部署包於該複數部署環境伺服器20之至少一者的叢集中。
再者,該叢集部署執行模組201產生一指令回應內容(即部署結果),並填入該部署訊息中,且將具有該指令回應內容的部屬訊息回傳至該訊息管理模組104。當該訊息管理模組104接收到具有該指令回應內容的部屬訊息時,該方案部署模組103依據該指令回應內容判斷該共享軟體方案是否成功部署於該複數部署環境伺服器20之至少一者的叢集中,且通知該使用者該共享軟體方案是否成功部署。此外,當該共享軟體方案部署失敗時,該方案部署模組103會告知該使用者該共享軟體方案部署失敗的原因,例如,該複數部署環境伺服器20之至少一者的環境參數有誤等。
圖4係為本發明之共享軟體方案更新或還原之示意圖,且一併參照圖1說明之。此外,此實施例與前述實施例大致相同,故相同處不再贅述。
於本實施例中,一使用者透過一執行環境伺服器10所提供的一使用者介面至一方案管理模組101中搜尋需要更新或還原之共享軟體方案(如Easy Video影視服務)。
在一實施例中,當需要更新該共享軟體方案(如Easy Video影視服務)時,該使用者點擊該使用者介面之更新,以至該方案管理模組101進行更新設定,是以,該方案管理模組101提供該使用者將該共享軟體方案(如Easy Video影視服務)之部署包(如sch-orders、sch-programs、redis等)之進行細部設定,亦即,該使用者設定各個部署包之各項參數值,且將該共享軟體方案(如Easy Video影視服務)之方案版本v1.2更新至方案版本v1.4。此外,該使用者可透過該方案管理模組101各別異動各該部署包,每次變更各該部署包,即產生一次歷程,且可隨時還原各該部署包之各項參數值。
在一實施例中,該歷程係指當該方案管理模組101在部署時,會將各該部署包之各項參數值存下並設定時間,且部署完後就會產生該共享軟體方案在當下時間點的歷程。此外,當該共享軟體方案更新後,亦會產生另一歷程,若需要回覆該共享軟體方案的上一個版本,該方案管理模組101提供該使用者選擇上一個歷程直接做滾動式還原,以將該共享軟體方案還原。
在一實施例中,當需要還原該共享軟體方案(如Easy Video影視服務)時,該使用者點擊該使用者介面之滾動式還原,以至該方案管理模組101進行還原設定,是以,該方案管理模組101係提供該使用者將該共享軟體方案(如Easy Video影視服務)之方案版本v1.4還原至方案版本v1.2。
圖5係為本發明的第一實施例之建置共享軟體方案之示意圖,且一併參閱圖1說明之。此外,此實施例與前述實施例大致相同,故相同處不再贅述。
於本實施例中,複數開發者a,b,c將其開發的部署包A’,B’,C’授權給其他開發者共享,且一開發者h利用該複數部署包A’,B’,C’進行客製化應用,是以,當該開發者h欲建置一手機應用程式(Application,App)之共享軟體方案A時,該開發者h透過一執行環境伺服器10將該複數部署包B’,C’建置成該共享軟體方案A以部署於至少一部署環境伺服器20中,藉此,形成該手機應用程式之軟體I。此外,該開發者h亦可授權該共享軟體方案I給其他開發者使用。
再者,當一開發者i欲建置一網頁之共享軟體方案B時,該開發者i透過該執行環境伺服器10將該部署包A’及該共享軟體方案A之複數部署包B’,C’建置成該共享軟體方案B亦部署於至少一部署環境伺服器20中,藉此,形成該網頁之軟體II。此外,該執行環境伺服器10可將該手機應用程式之軟體I及該網頁之軟體II儲存至該執行環境伺服器10之儲存模組105,以提供其他開發者從該儲存模組105取用該些軟體I,II,進而開發出其他軟體。在一實施例中,該執行環境伺服器10亦將該手機應用程式之軟體
I及該網頁之軟體II儲存至建置於一伺服器之共享方案中心,以提供其他開發者取用該些軟體I,II。
是以,本發明之共享軟體方案之建置與部署系統1能提供開發者(或使用者)能依據現有的部署包,以結合成新的共享軟體方案,藉此達到所需之服務功能。
圖6係為本發明的第二實施例之建置共享軟體方案之示意圖,且一併參閱圖1說明之。此外,此實施例與前述實施例大致相同,故相同處不再贅述。
於本實施例中,一使用者透過一執行環境伺服器10之方案管理模組101及服務管理模組102建立一些工具類的共享軟體方案之部署包,例如,資料庫(Postgresql、Mongo、Redis、Mariadb等)、訊息代理(RabbitMQ、Nats等)、監控軟體(Prometheus-operator等)、日誌數據庫(elastic system等)及應用服務接口(Nginx、Kong等)等,但不限於上述。
舉例而言,該使用者可從公開的docker Hub(公用的映像檔倉庫)中將該資料庫及該訊息代理之部署包(Helm chart)之映像檔(image)預先儲存於該執行環境伺服器10之儲存模組(或儲存庫(Repository))105中,當該使用者欲開發一具有資料庫及訊息代理之功能的共享軟體方案C時,該使用者從該儲存模組105中取得該資料庫及該訊息代理之部署包之映像檔,以由該方案管理模組101依據該映像檔形成該資料庫及該訊息代理之部署包,俾將該部署包記錄於該共享軟體方案C中,且經該服務管理模組
102驗證該共享軟體方案C符合部署包規則(如Helm chart規則)及部署條件(如YAML資料部署條件)後,儲存於該儲存模組105中。
再者,當該使用者欲開發一具有監控及日誌數據庫之功能的共享軟體方案D時,該使用者可從公開的chart Hub(存放部署包的倉庫)中取得預先部屬的該監控軟體與該日誌數據庫之部署包,以由該方案管理模組101將該監控軟體與該日誌數據庫之部署包上傳到該執行環境伺服器10,且該服務管理模組102解析並驗證將該監控軟體與該日誌數據庫之部署包以形成該共享軟體方案D,俾將該共享軟體方案D儲存於該儲存模組105中。
於本實施例中,當該使用者需要開發了一個關於線上觀看電影服務軟體之共享軟體方案F時,該使用者僅需自行開發一具有訂購服務、串流服務及節目表單服務之功能的共享軟體方案E,且該使用者透過該方案管理模組101引用該共享軟體方案C之資料庫及該共享軟體方案D之監控軟體的部署包至該共享軟體方案E以形成該線上觀看電影服務軟體之共享軟體方案F。
在一實施例中,該使用者透過該執行環境伺服器10之方案部署模組103將該線上觀看電影服務軟體之共享軟體方案F部署於複數部署環境伺服器20之至少一者的叢集中,其中,該方案部署模組103分析該共享軟體方案F,以列出需要抓取的訂購服務、串流服務、節目表單服務、資料庫服務和監控軟體服務等五個部署包,且該方案部署模組103係提供該使用者修改該資料庫之部署包的登入帳號及密碼,以及修改該訂購服務和該節目表單服務的該資料庫的登入帳號及密碼之預設值。
又,該方案部署模組103產生該共享軟體方案F之複數部署包(訂購服務、串流服務、節目表單服務、資料庫服務和監控軟體服務)之下載部署包指令、部署指令及列出部署狀態指令,例如,wget xxx.tgz、helm install ooo xxx.tgz、helm list ooo等,其中,xxx.tgz係為部署包之檔案名稱,而ooo係為執行helm install時,該方案部署模組103給此次安裝的名稱。
舉例而言,wget--no-check-certificate https://core.harbor.domain:30725/chartrepo/library/charts/redis-6.0.6.tgz-O/redis-6.0.6.tgz","helm install redisedcf4c5b/redis-6.0.6.tgz--namespace ezvideo--create-namespace,"helm list--namespace apitest|grep-w redisedcf4c5b|awk'{print $8}'''等,但不限於上述。
藉此,形成一部署訊息,由該執行環境伺服器10之訊息管理模組104將該部署訊息發送至該複數部署環境伺服器20之至少一者的叢集中,且該複數部署環境伺服器20之至少一者的叢集部署執行模組201解析該部署訊息,以分別執行該些指令。之後,該叢集部署執行模組201將執行結果傳回該執行環境伺服器10,以通知該使用者是否部署成功。當該使用者確認部署成功後,即可提供該線上觀看電影服務之共享軟體方案F。此外,該複數部署環境伺服器20之至少一者的叢集部署執行模組201將該共享軟體方案F安裝於一測試叢集202,進行該共享軟體方案F之功能測試,或是將該共享軟體方案F安裝於一服務叢集203,以正式將該共享軟體方案F提供給一般使用者使用。
在一實施例中,當該使用者需要提供介接一信用卡服務時,可透過該方案管理模組101及該服務管理模組102建立一包含了信用卡服務之部署包的共享軟體方案G,並引用該線上觀看電影服務之共享軟體方案F,以形成具有信用卡服務功能之線上觀看電影服務之共享軟體方案H,其中,該共享軟體方案H比原有的該共享軟體方案F更多了信用卡服務的功能,可以讓使用者不需要重新建立新的信用卡服務之部署包,即可引用原本既有的該信用卡服務之部署包以組建成新的共享軟體方案。
此外,當該方案部署模組103將該共享軟體方案H要部署到之前已經部署過的該複數部署環境伺服器20之至少一者的叢集時,該使用者能選擇升版部署(或稱更新版本),該方案部署模組103會比較現有的該共享軟體方案F和新建立的共享軟體方案H之間的差異,且該共享軟體方案F之複數部署包並不會重新部署,只會將新增加的信用卡服務之部署包產生一部署訊息,透過該訊息管理模組104傳送至該複數部署環境伺服器20之至少一者的叢集,由該叢集部署執行模組201將該信用卡服務之部署包安裝在該複數部署環境伺服器20之至少一者的叢集中。之後,該叢集部署執行模組201將執行結果傳回該執行環境伺服器10,以通知該使用者是否部署成功。當該使用者確認部署成功後當使用者確認部署成功後,即可提供信用卡服務的功能。
圖7係為本發明之共享軟體方案之建置與部署系統建置共享軟體方案之方法流程示意圖,且一併參閱圖1說明之。同時,此建置共享軟體方案之方法的主要內容如下,其餘內容相同於上述圖1說明,於此不再重覆敘述。
如圖7所示,此建置共享軟體方案之方法之流程包含下列步驟S71至步驟S79:
於步驟S71中,一執行環境伺服器10之方案管理模組101係提供一使用者設定欲建置的一共享軟體方案之名稱及版本。
於步驟S72中,該執行環境伺服器10之服務管理模組102係確認該使用者是否上傳至少一部署包。
於步驟S73中,當該服務管理模組102係確認該使用者是上傳至少一部署包時,該服務管理模組102解析該部署包以得到該部署包之各項參數值,俾記錄該部署包於該共享軟體方案中。
於步驟S74中,該服務管理模組102係確認該使用者是建立至少一新部署包或是引用其他共享軟體方案之部署包。
於步驟S75中,當該服務管理模組102係確認該使用者是建立至少一新部署包時,該方案管理模組101依據該使用者上傳之映像檔及其版本以於一YAML模板文件中進行設定,進而壓縮為該新部署包,俾將該新部署包記錄於該共享軟體方案中。
於步驟S76中,該服務管理模組102利用helm lint指令驗證該共享軟體方案之部署包或新部署包是否符合部署包規則(如Helm chart規則)及部署條件(如YAML資料部署條件)。
於步驟S77中,當該服務管理模組102判斷為引用其他共享軟體方案時,該方案管理模組101引用該其他共享軟體方案之至少一部署包至該共享軟體方案中,並記錄該部署包的來源於該共享軟體方案中。
於步驟S78中,當該共享軟體方案之部署包或新部署包符合該服務管理模組102的驗證時,該服務管理模組102將該共享軟體方案之部署包或新部署包儲存於該執行環境伺服器10之儲存模組105中。此外,當該使用者欲新增另一部署包,或是再引用其他共享軟體方案之部署包時,回到步驟S74。
於步驟S79中,該方案管理模組101記錄該共享軟體方案中所使用的部署包或新部署包,進而完成建置該共享軟體方案,並授予權限給該使用者。
圖8係為本發明之共享軟體方案之建置與部署系統部署共享軟體方案之方法流程示意圖,且一併參閱圖1說明之。同時,此建置共享軟體方案之方法的主要內容如下,其餘內容相同於上述圖1說明,於此不再重覆敘述。
如圖8所示,此部署共享軟體方案之方法之流程包含下列步驟S81至步驟S810:
於步驟S81中,一使用者於一執行環境伺服器10之方案管理模組101中選擇需要部署的一共享軟體方案之名稱與版本。
於步驟S82中,該使用者透過該執行環境伺服器10之方案部署模組103選擇將該共享軟體方案部署於該複數部署環境伺服器20之至少一者的叢集。
於步驟S83中,該方案部署模組103係確認該使用者選擇的該複數部署環境伺服器20之至少一者的叢集是否符合該共享軟體方案中的環境參數。
於步驟S84中,該方案部署模組103確認該共享軟體方案之部署包之各項參數值是否有修改,或是與前一個版本之間的部署包之各項參數值是否有差異。
於步驟S85中,該方案部署模組103將有修改或有差異的部署包之各項參數值帶入一部署指令,是以,該方案部署模組103產生該共享軟體方案之部署包之下載部署包指令、部署指令及列出部署狀態指令之至少一部署指令。
於步驟S86中,該方案部署模組103設定該共享軟體方案之部署包的安裝順序,以依序將該共享軟體方案之部署包之至少一部署指令逐一填入一部署訊息中,且由該執行環境伺服器10之訊息管理模組104將該部署訊息發送至該使用者選擇的該複數部署環境伺服器20之至少一者的叢集。
於步驟S87中,該複數部署環境伺服器20之至少一者的叢集接收到該部署訊息後,該複數部署環境伺服器20之至少一者之叢集部署執行模組201解析該部署訊息。
於步驟S88中,該複數部署環境伺服器20之至少一者之叢集部署執行模組201依據該安裝順序執行該共享軟體方案之部署包之至少一部署指令,俾安裝該共享軟體方案之部署包於該複數部署環境伺服器20之至少一者的叢集中。
於步驟S89中,該叢集部署執行模組201產生一指令回應內容(即部署結果),並填入該部署訊息中,且將具有該指令回應內容的部屬訊息回傳至該訊息管理模組104。
於步驟S810中,當該訊息管理模組104接收到具有該指令回應內容的部屬訊息時,該方案部署模組103依據該指令回應內容判斷該共享軟體方案是否成功部署於該複數部署環境伺服器20之至少一者的叢集中,且通知該使用者該共享軟體方案是否成功部署。
此外,本發明還揭示一種電腦可讀媒介,係應用於具有處理器(例如,CPU、GPU等)及/或記憶體的計算裝置或電腦中,且儲存有指令,並可利用此計算裝置或電腦透過處理器及/或記憶體執行此電腦可讀媒介,以於執行此電腦可讀媒介時執行上述之方法及各步驟。
綜上所述,本發明之共享軟體方案之建置與部署系統、方法及電腦可讀媒介係以YAML模板文件為基礎,俾設定具有應用服務功能之部署包(Helm chart)的自定義元資料(metadata)以形成該部署包,且為最小的軟體管理單位。此外,使用者可引用其他共享軟體方案之部署包加入自己的共享軟體方案,快速建置成一新的共享軟體方案。
再者,本發明之共享軟體方案之建置與部署系統係透過Kubernetes環境進行執行與部屬,其中,該系統之執行環境伺服器會依照乾使用者安裝、升版(或更新)或移除共享軟體方案的需求,將至少一部署包依據安裝順序與修改或更新之各項參數值以進行部署包之建置與修改。只需要執行一次部署就可以將整個共享軟體方案中所有部署包啟動,快速地移轉部署包於不同叢集上,以迅速建置共享軟體方案。
是以,本發明之共享軟體方案之建置與部署系統、方法及電腦可讀媒介至少具有以下技術差異及其功效:
一、本發明之共享軟體方案中具有一至多個具有應用服務功能之部署包,且可調整共享軟體方案之部署包順序,以解決於一部署包執行其應用服務功能時,需要先呼叫另一應用服務功能確認參數,或需要先啟動資料庫,才能使該部署包執行,因而產生的相依關係,是以,透過調整共享軟體方案之部署包順序,以避免因相依關係而造成部署包無法執行的問題。
二、本發明之共享軟體方案能達到跨叢集部署多伺服器(如部署環境伺服器),或稱多雲部署,同時針對不同伺服器之叢集發送部署訊息以進行共享軟體方案之安裝,且亦可同時接收不同伺服器之叢集回傳之部署結果,以確認共享軟體方案之安裝是否成功。
三、本發明係提供使用者修改共享軟體方案中引用其他共享軟體方案之部署包的參數值,且不會影響到被引用的其他共享軟體方案之部署包的參數值,以使被引用的其他共享軟體方案能繼續提供給另外的共享軟體方案使用。
四、本發明係記錄各個共享軟體方案部署的歷程(即版本),依據使用者需求更新共享軟體方案之版本方案,或是還原至共享軟體方案之上一版本,讓使用者能更方便調整各個共享軟體方案。
五、相較於現有技術,每建置一新的軟體服務,就必須針對不同的軟體服務撰寫不同的服務YAML文件檔及部署YAML文件檔,而本發明能提供不同軟體服務的服務YAML文件檔及部署YAML文件檔建置成不同具有應用服務功能之部署包,故開發者(或使用者)僅需依據其需求
引用或上傳部署包,並修改其參數值,即可快速建置出一共享軟體方案,以大量減少開發者的時間成本,且快速地部署於不同的叢集中。
上述實施形態僅例示性說明本發明之原理及其功效,而非用於限制本發明。任何熟習此項技藝之人士均可在不違背本發明之精神及範疇下,對上述實施形態進行修飾與改變。因此,本發明之權利保護範圍應如申請專利範圍所列。
1:共享軟體方案之建置與部署系統
10:執行環境伺服器
101:方案管理模組
102:服務管理模組
103:方案部署模組
104:訊息管理模組
105:儲存模組
20:部署環境伺服器
201:叢集部署執行模組
Claims (11)
- 一種共享軟體方案之建置與部署系統,係包括:複數部署環境伺服器;以及一執行環境伺服器,係用以建置與部屬一共享軟體方案,且接收至少一部署包、建置至少一部署包或是引用其他共享軟體方案之至少一部署包,以依據各該部署包建置該共享軟體方案,其中,該執行環境伺服器產生該共享軟體方案之部署訊息,以將該部署訊息傳送至經選擇部署的該複數部署環境伺服器之至少一者,俾由該複數部署環境伺服器之至少一者安裝該共享軟體方案,其中,該執行環境伺服器更包括一服務管理模組,係確認是否接收到至少一部署包,以於該服務管理模組確認已接收到該部署包時,由該服務管理模組對該部署包進行解析,以得到該部署包之各項參數值,俾記錄該部署包於該共享軟體方案中,而當該服務管理模組未接收到該部署包,且判斷是引用其他共享軟體方案之至少一部署包時,該執行環境伺服器之方案管理模組將引用該其他共享軟體方案之至少一部署包至該共享軟體方案中,並記錄來源。
- 如請求項1所述之共享軟體方案之建置與部署系統,其中,該執行環境伺服器更包括一方案管理模組,當該服務管理模組未接收到該部署包,且判斷是建置有至少一部署包時,由該方案管理模組接收一映像檔,再依據該映像檔設定一模板文件,以將該經設定過模板文件壓縮為該部署包,俾將該部署包記錄於該共享軟體方案中。
- 如請求項1所述之共享軟體方案之建置與部署系統,其中,該執行環境伺服器更包括一方案部署模組,係用以將經選擇之該共享軟體方案部署於該複數部署環境伺服器之至少一者,且確認該複數部署環境伺服器之至少一者是否符合該共享軟體方案中的環境參數。
- 如請求項1所述之共享軟體方案之建置與部署系統,其中,該執行環境伺服器更包括一訊息管理模組,係將該部署訊息傳送至該經選擇部署的該複數部署環境伺服器之至少一者。
- 如請求項1所述之共享軟體方案之建置與部署系統,其中,各該複數部署環境伺服器皆包括一叢集部署執行模組,係解析來自該執行環境伺服器之部署訊息,以執行該部署訊息中之共享軟體方案之至少一部署指令,俾安裝該共享軟體方案之部署包於該複數部署環境伺服器之至少一者的叢集中,且回傳一部署結果至該執行環境伺服器。
- 一種共享軟體方案之建置與部署方法,係包括:由一執行環境伺服器建置與部屬一共享軟體方案,且接收至少一部署包、建置至少一部署包或是引用其他共享軟體方案之至少一部署包,以依據各該部署包建置該共享軟體方案;由該執行環境伺服器產生該共享軟體方案之部署訊息,以將該部署訊息傳送至經選擇部署的該複數部署環境伺服器之至少一者;以及由該複數部署環境伺服器之至少一者安裝該共享軟體方案,其中,該執行環境伺服器之服務管理模組確認是否接收到至少一部署包,以於確認已接收到該部署包時,對該部署包進行解析,以得到該部署包之各項參數值,俾記錄該部署包於該共享軟體方案中,而當該服務管理 模組確認未接收到該部署包,且判斷是引用其他共享軟體方案之至少一部署包時,由該執行環境伺服器之方案管理模組將引用該其他共享軟體方案之至少一部署包至該共享軟體方案中,並記錄來源。
- 如請求項6所述之共享軟體方案之建置與部署方法,其中,當該服務管理模組確認未接收到該部署包,且判斷是建置有至少一部署包時,由該執行環境伺服器之方案管理模組接收一映像檔,再依據該映像檔設定一模板文件,以將該經設定過模板文件壓縮為該部署包,俾將該部署包記錄於該共享軟體方案中。
- 如請求項6所述之共享軟體方案之建置與部署方法,其中,由該執行環境伺服器之方案部署模組用以將經選擇之該共享軟體方案部署於該複數部署環境伺服器之至少一者,且確認該複數部署環境伺服器之至少一者是否符合該共享軟體方案中的環境參數。
- 如請求項6所述之共享軟體方案之建置與部署方法,其中,由該執行環境伺服器之訊息管理模組將該部署訊息傳送至該經選擇部署的該複數部署環境伺服器之至少一者。
- 如請求項6所述之共享軟體方案之建置與部署方法,其中,各該複數部署環境伺服器之叢集部署執行模組解析來自該執行環境伺服器之部署訊息,以執行該部署訊息中之共享軟體方案之至少一部署指令,俾安裝該共享軟體方案之部署包於該複數部署環境伺服器之至少一者的叢集中,且回傳一部署結果至該執行環境伺服器。
- 一種電腦可讀媒介,應用於計算裝置或電腦中,係儲存有指令,以執行如請求項6至10之任一者所述之建置與部署方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110104246A TWI759096B (zh) | 2021-02-04 | 2021-02-04 | 共享軟體方案之建置與部署系統、方法及電腦可讀媒介 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW110104246A TWI759096B (zh) | 2021-02-04 | 2021-02-04 | 共享軟體方案之建置與部署系統、方法及電腦可讀媒介 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI759096B true TWI759096B (zh) | 2022-03-21 |
TW202232476A TW202232476A (zh) | 2022-08-16 |
Family
ID=81710823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110104246A TWI759096B (zh) | 2021-02-04 | 2021-02-04 | 共享軟體方案之建置與部署系統、方法及電腦可讀媒介 |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI759096B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220357938A1 (en) * | 2021-05-04 | 2022-11-10 | Red Hat, Inc. | Automatically configuring and deploying a software operator in a distributed computing environment from a package |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540026A (zh) * | 2008-03-18 | 2009-09-23 | 杭州燧人信息技术有限公司 | 基于互联网的餐饮娱乐管理系统及其电子菜单和点单方法 |
TW201303732A (zh) * | 2011-07-12 | 2013-01-16 | Kun Shan University Of Technology | 基於雲端技術之軟體試用方法及其系統 |
TWM485296U (zh) * | 2014-04-21 | 2014-09-01 | Guo-Cai Lin | 無拉繩之窗簾捲收器 |
CN104793946A (zh) * | 2015-04-27 | 2015-07-22 | 广州杰赛科技股份有限公司 | 基于云计算平台的应用部署方法和系统 |
US20170012953A1 (en) * | 2011-12-21 | 2017-01-12 | Ssh Communications Security Oyj | Automated Access, Key, Certificate, and Credential Management |
-
2021
- 2021-02-04 TW TW110104246A patent/TWI759096B/zh active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101540026A (zh) * | 2008-03-18 | 2009-09-23 | 杭州燧人信息技术有限公司 | 基于互联网的餐饮娱乐管理系统及其电子菜单和点单方法 |
TW201303732A (zh) * | 2011-07-12 | 2013-01-16 | Kun Shan University Of Technology | 基於雲端技術之軟體試用方法及其系統 |
US20170012953A1 (en) * | 2011-12-21 | 2017-01-12 | Ssh Communications Security Oyj | Automated Access, Key, Certificate, and Credential Management |
TWM485296U (zh) * | 2014-04-21 | 2014-09-01 | Guo-Cai Lin | 無拉繩之窗簾捲收器 |
CN104793946A (zh) * | 2015-04-27 | 2015-07-22 | 广州杰赛科技股份有限公司 | 基于云计算平台的应用部署方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220357938A1 (en) * | 2021-05-04 | 2022-11-10 | Red Hat, Inc. | Automatically configuring and deploying a software operator in a distributed computing environment from a package |
US11900089B2 (en) * | 2021-05-04 | 2024-02-13 | Red Hat, Inc. | Automatically configuring and deploying a software operator in a distributed computing environment from a package |
Also Published As
Publication number | Publication date |
---|---|
TW202232476A (zh) | 2022-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11281457B2 (en) | Deployment of infrastructure in pipelines | |
US10798101B2 (en) | Managing security groups for data instances | |
US20220413979A1 (en) | Control service for data management | |
US10042628B2 (en) | Automated upgrade system for a service-based distributed computer system | |
US8997088B2 (en) | Methods and systems for automated deployment of software applications on heterogeneous cloud environments | |
JP4809772B2 (ja) | コンピュータシステムおよび分散アプリケーションのモデルに基づく管理 | |
US11561889B2 (en) | Orchestration for automated performance testing | |
US11386186B2 (en) | External content library connector systems and methods | |
WO2013109860A1 (en) | Software builder | |
CN110727575B (zh) | 一种信息处理方法、系统、装置、以及存储介质 | |
JP2014153804A (ja) | 情報処理装置、情報処理システム、停止方法及びプログラム | |
JP6938983B2 (ja) | 情報処理システム、情報処理装置及び情報処理方法 | |
TWI759096B (zh) | 共享軟體方案之建置與部署系統、方法及電腦可讀媒介 | |
US20210075701A1 (en) | Method and system for onboarding a virtual network function package utilized by one or more network services | |
WO2016176227A1 (en) | Distributed storage of software images in computing systems | |
US20220244989A1 (en) | Setting task permissions for software services in distributed computing environments | |
CN113867778A (zh) | 一种镜像文件的生成方法、装置、电子设备及存储介质 | |
US11847046B1 (en) | Application functionality testing, resiliency testing, chaos testing, and performance testing in a single platform | |
US11907731B1 (en) | Configurable cloud development environments | |
JP6863128B2 (ja) | 情報処理装置、情報処理システム及びプログラム | |
US8271623B2 (en) | Performing configuration in a multimachine environment | |
US20230064426A1 (en) | Virtual disk image testing | |
Ashraf | Deploying and Managing State-of-the-Art Workstation Labs Like a Boss! |