TWI643081B - 基於微服務之智慧型版號貼標系統及其方法 - Google Patents

基於微服務之智慧型版號貼標系統及其方法 Download PDF

Info

Publication number
TWI643081B
TWI643081B TW107102198A TW107102198A TWI643081B TW I643081 B TWI643081 B TW I643081B TW 107102198 A TW107102198 A TW 107102198A TW 107102198 A TW107102198 A TW 107102198A TW I643081 B TWI643081 B TW I643081B
Authority
TW
Taiwan
Prior art keywords
micro
version number
server
service
version
Prior art date
Application number
TW107102198A
Other languages
English (en)
Other versions
TW201933146A (zh
Inventor
郭凱威
林彥丞
廖智隆
朱家珍
Original Assignee
中華電信股份有限公司
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 中華電信股份有限公司 filed Critical 中華電信股份有限公司
Priority to TW107102198A priority Critical patent/TWI643081B/zh
Application granted granted Critical
Publication of TWI643081B publication Critical patent/TWI643081B/zh
Publication of TW201933146A publication Critical patent/TW201933146A/zh

Links

Landscapes

  • Stored Programmes (AREA)

Abstract

本發明為一種基於微服務之智慧型版號貼標系統及其方法,其方法包括:令程式碼庫伺服器接收開發者所簽入分別對應多個微服務之多筆程式碼,令編譯伺服器監測該程式碼庫伺服器,於該程式碼庫伺服器接收到各該多筆程式碼時分別編譯各該多筆程式碼,以產生對應各該多筆程式碼之微服務版號,令標籤引擎伺服器接收來自該編譯伺服器之多個微服務版號,並記錄各該微服務版號所採用之第三方套件版號,令佈署伺服器於執行微服務環境佈署時,自該標籤引擎伺服器取得符合該微服務環境佈署之所需多筆程式碼,藉此由多個微服務版號產生對應該微服務環境佈署之產品版號以儲存該產品版號至標籤引擎伺服器。

Description

基於微服務之智慧型版號貼標系統及其方法
本發明係有關微服務之產品版本管理機制,詳而言之,係關於一種基於微服務之智慧型版號貼標系統及其方法。
微服務(micro-service)屬於一種軟體架構風格,可視為模組化方式組合多個小型功能區塊,小型功能區塊可以是表示單一功能,透過模組化以組合出大型應用程式。微服務架構中可能包含20、30套微服務,倘若上版前缺乏適當管理,恐會導致日後上版後有版本不確定性之問題。以往有關微服務之版本控制,常見只有產品版本的規範,例如這次是v1.2.0,下次是v1.2.1,然而每一個產品版本內可能包含眾多微服務,各微服務可能有改變,也可能未異動,然現行管理都缺乏細部之微服務控管,且使變更程序耗費更多時間與人力。
現行有關微服務之管控,仍有許多待改善空間。例如一先前技術係透過微服務自我管理之機制,使數個微服務之間沒有任何耦合性,藉此達到佈署單一性、低耦合性之 目的,惟此先前技術未論及如何確保每一個微服務之品質,甚至最後產品之品質,如此對於數個微服務結合起來之產品,缺乏多面向的品質管理與追蹤,也導致上線後產品可靠度不確定性高。另外,另一先前技術係利用版本號進行部署,但此先前技術未以微服務建構產品版號,因而缺乏多面向版本追蹤機制,也未有持續追蹤產品的版本品質是否達到穩定之機制。
由上可知,若能找出一種有關微服務版本控管機制,對目前微服務及其組成產品提供版本控管與持續追蹤,特別的是,目前微服務控管缺乏多面向之版本管理以及品質穩定性追蹤,故導致版本更新時的不確定性,因而上述現有技術之缺陷,將成為目前本技術領域人員急欲解決之技術問題。
本發明之目的係提出一種微服務之產品版本之管理方案,透過微服務版號與產品版號之迭代,提供多面向的版本及品質管理,最終可自動提供一種穩定且可發佈於線上環境之產品版號。
為了達成上述或其他目的,本發明提出一種基於微服務之智慧型版號貼標系統,包括:程式碼庫伺服器、編譯伺服器、標籤引擎伺服器以及佈署伺服器。程式碼庫伺服器用於接收開發者所簽入分別對應多個微服務之多筆程式碼,編譯伺服器用於監測該程式碼庫伺服器,於該程式碼庫伺服器接收到各該多筆程式碼時,分別編譯各該多筆程 式碼,藉以產生對應各該多筆程式碼之微服務版號,標籤引擎伺服器接收來自該編譯伺服器之多個微服務版號,並記錄各該微服務版號所採用之第三方套件版號,佈署伺服器於執行微服務環境佈署時,自該標籤引擎伺服器取得符合該微服務環境佈署之所需多筆程式碼,俾基於該所需多筆程式碼其對應之多個微服務版號,產生對應該微服務環境佈署之產品版號以傳送該產品版號至該標籤引擎伺服器。
於一實施例中,該標籤引擎伺服器包括:微服務版號追蹤單元、產品版號追蹤單元、第三方套件追蹤單元以及產品版號健康監控單元,其中,微服務版號追蹤單元用於記錄各該多筆程式碼之該微服務版號的版本變化,產品版號追蹤單元用於記錄對應該微服務環境佈署之各該產品版號的版本變化,第三方套件追蹤單元用於記錄各該微服務版號所採用之該第三方套件版號,產品版號健康監控單元可依據來自品質追蹤伺服器所產生有關該微服務環境佈署之測試結果,判斷各該產品版本之穩定狀態。
於另一實施例中,該品質追蹤伺服器於該佈署伺服器執行該微服務環境佈署後,測試該所需多筆程式碼是否通過該微服務環境佈署之所需條件以產生該測試結果。
於又一實施例中,該產品版號健康監控單元於依據該測試結果判斷各該產品版本其中一者為穩定狀態時,訂定該產品版本為穩定產品版本。
於又另一實施例中,該標籤引擎伺服器利用K元樹記 錄各該多個微服務其每一個歷史版本所對應之該微服務版號、該產品版號以及對應該微服務版號之該第三方套件版號。
本發明復提出一種基於微服務之智慧型版號貼標方法,其包括:令程式碼庫伺服器接收開發者所簽入分別對應多個微服務之多筆程式碼;令編譯伺服器監測該程式碼庫伺服器,於該程式碼庫伺服器接收到各該多筆程式碼時分別編譯各該多筆程式碼,以產生對應各該多筆程式碼之微服務版號;令標籤引擎伺服器接收來自該編譯伺服器之多個微服務版號,並記錄各該微服務版號所採用之第三方套件版號;以及令佈署伺服器於執行微服務環境佈署時,自該標籤引擎伺服器取得符合該微服務環境佈署之所需多筆程式碼,俾基於該所需多筆程式碼其對應之多個微服務版號,產生對應該微服務環境佈署之產品版號以傳送該產品版號至該標籤引擎伺服器。
於上述方法中,該標籤引擎伺服器更依據來自品質追蹤伺服器所產生有關該微服務環境佈署之測試結果,判斷各該產品版本之穩定狀態。
於上述方法中,該品質追蹤伺服器於該佈署伺服器執行該微服務環境佈署後,測試該所需多筆程式碼是否通過該微服務環境佈署之所需條件以產生該測試結果。
於上述方法中,該標籤引擎伺服器於依據該測試結果判斷各該產品版本其中一者為穩定狀態時,訂定該產品版本為穩定產品版本。
另外,該標籤引擎伺服器利用K元樹記錄各該多個微服務其每一個歷史版本所對應之該微服務版號、該產品版號以及對應該微服務版號之該第三方套件版號。
相較於現有技術,本發明提出之基於微服務之智慧型版號貼標系統及其方法,透過最基本的微服務版號自動貼標機制,以達到系統穩定性單一面向、單一專案的版號暨品質控管,特別是,本發明對微服務組成之產品提供多面向的版號暨品質管理,包含三維度版號控管機制,第一維度為管理微服務版號之品質,第二維度為管理產品版號之品質,第三維度係持續追蹤產品版號滾動後的品質,因而線上系統可利用本發明所述機制,達到以穩定產品版本來進行系統滾動更新(rolling upgrade)或是對單一微服務的更版,更可提供多面向的品質管理與追蹤,藉此使得產品能快速迭代滾動以增加適應市場的能力。
1‧‧‧基於微服務之智慧型版號貼標系統
10‧‧‧程式碼庫伺服器
20‧‧‧編譯伺服器
30‧‧‧標籤引擎伺服器
301‧‧‧微服務版號追蹤單元
302‧‧‧產品版號追蹤單元
303‧‧‧第三方套件追蹤單元
304‧‧‧產品版號健康監控單元
305‧‧‧資料庫
40‧‧‧佈署伺服器
50‧‧‧品質追蹤伺服器
100‧‧‧開發者
S31~S34‧‧‧步驟
S41~S47‧‧‧流程
第1圖為本發明之基於微服務之智慧型版號貼標系統的系統架構圖;第2圖為本發明之基於微服務之智慧型版號貼標系統具體實施例的系統架構圖;第3圖為本發明之基於微服務之智慧型版號貼標方法的步驟圖;第4圖為本發明之自動貼標的流程圖;第5圖為本發明有關微服務版號的示意圖;第6圖為本發明之產品版號與微服務版號的關係示意 圖;以及第7圖為本發明之產品版號與穩定產品版號的關係示意圖。
以下藉由特定的具體實施形態說明本發明之技術內容,熟悉此技藝之人士可由本說明書所揭示之內容輕易地瞭解本發明之優點與功效。然本發明亦可藉由其他不同的具體實施形態加以施行或應用。
請參照第1圖,其為本發明之基於微服務之智慧型版號貼標系統的系統架構圖。如圖所示,本發明之基於微服務之智慧型版號貼標系統1可透過微服務版號與產品版號之迭代,最終得到穩定且可發佈於線上環境之產品版號,本發明可基於自動貼標方式,搭配標籤引擎伺服器與持續整合、持續交付的流程串整,藉此達成系統產品線能自動滾動至穩定版本。本發明之基於微服務之智慧型版號貼標系統1包括程式碼庫伺服器10、編譯伺服器20、標籤引擎伺服器30以及佈署伺服器40。
程式碼庫伺服器10用於接收開發者100所簽入分別對應多個微服務之多筆程式碼。程式碼庫伺服器10主要儲放各開發者100所輸入之程式碼,每一個微服務可能都由不同開發者(程式開發工程師)100負責,但通常不可能於修改版本時,大家都有版本修改,因而程式碼庫伺服器10主要供開發者100簽入對應微服務之程式碼,其中,程式碼庫伺服器10可例如採用open source軟體gitlab作為程 式碼保護與控制存放區。
編譯伺服器20用於監測該程式碼庫伺服器10,於該程式碼庫伺服器10接收到各該多筆程式碼時,分別編譯各該多筆程式碼,藉以產生對應各該多筆程式碼之微服務版號。編譯伺服器20會感測程式碼庫伺服器10中程式碼是否變更,若有,即立即執行編譯,且產生微服務版號並傳送至標籤引擎伺服器30,其中,編譯伺服器20可例如採用open source軟體Jenkins作為程式碼編譯與程式碼打包。
標籤引擎伺服器30接收並儲存來自該編譯伺服器20之多個微服務版號,同時記錄各該微服務版號所採用之第三方套件版號。具體來說,標籤引擎伺服器30用以記錄、監控微服務版號與產品版號,另外還可儲存每一個微服務所使用之第三方套件的版號。
佈署伺服器40於執行微服務環境佈署時,自該標籤引擎伺服器30取得符合該微服務環境佈署之所需多筆程式碼,俾基於該所需多筆程式碼其對應之多個微服務版號,產生對應該微服務環境佈署之產品版號以傳送該產品版號至該標籤引擎伺服器30。詳言之,每當佈署伺服器40進行環境佈署時,會挑選健康度良好的微服務進行佈署,並且產生產品版號來將所有微服務版號納於產品版號下,最後再回傳至標籤引擎伺服器30儲存。
於一實施例中,標籤引擎伺服器30利用K元樹(K-ary Tree)記錄各微服務其每一個歷史版本所對應之微服務版 號、產品版號以及對應微服務版號之第三方套件版號。也就是說,多個微服務組成一個產品版本,因而每一個產品版號都可與數個微服務版號相關聯,而各微服務版號可能有其自身使用之第三方套件,故產品版號也可與第三方套件版號相關聯。
請參照第2圖,其為本發明之基於微服務之智慧型版號貼標系統具體實施例的系統架構圖。如圖所示,基於微服務之智慧型版號貼標系統1中程式碼庫伺服器10、編譯伺服器20、標籤引擎伺服器30及佈署伺服器40與第1圖所述相同,故不再贅述,於本實施例中,基於微服務之智慧型版號貼標系統1更包括品質追蹤伺服器50,主要提供各產品版本是否通過佈署環境之檢測,另外,標籤引擎伺服器30中包括微服務版號追蹤單元301、產品版號追蹤單元302、第三方套件追蹤單元303、產品版號健康監控單元304以及資料庫305。
微服務版號追蹤單元301用於記錄各該多筆程式碼之該微服務版號的版本變化。微服務版號追蹤單元301主要記錄從編譯伺服器20傳送來的每一個微服務版本所有的歷史版本號。
產品版號追蹤單元302用於記錄對應該微服務環境佈署之各該產品版號的版本變化。每當佈署伺服器40進行環境佈署時,會選擇健康度良好之微服務進行佈署,同時產生產品版號,此產品版號即儲存至產品版號追蹤單元302,也就是說,產品版號追蹤單元302記錄每一個產品版號的 所有歷史版本號,當然每一產品版號會有其相關微服務版號。
第三方套件追蹤單元303用於記錄各該微服務版號所採用之該第三方套件版號。第三方套件追蹤單元303記錄每一個微服務採用那些第三方的套件和其版號,並且追蹤第三方套件使用狀況。
產品版號健康監控單元304依據來自品質追蹤伺服器50所產生有關該微服務環境佈署之測試結果,判斷各該產品版本之穩定狀態。簡言之,產品版號健康監控單元304可儲存經過品質追蹤伺服器50測試之產品版本的測試結果,產品版號健康監控單元304更可進一步判斷各產品版本之穩定狀態是否符合標準,並且持續追蹤及統計相關資料。
於一實施例中,品質追蹤伺服器50於該佈署伺服器執行該微服務環境佈署後,測試該所需多筆程式碼是否通過該微服務環境佈署之所需條件以產生該測試結果。
於另一實施例中,產品版號健康監控單元304於依據該測試結果判斷各產品版本其中一者為穩定狀態時,訂定該產品版本為穩定產品版本。
具體來說,佈署完成後會進行環境系統的測試,品質追蹤伺服器50可例如採用Open source軟體Redmine來進行管理,品質追蹤伺服器50會記錄此環境目前有哪些錯誤(Bug)與需求,並且記錄相依環境和完成度,例如哪些錯誤與需求已經完成或者尚未完成,品質追蹤伺服器50會針對 受測試之產品版號產生一連串測試結果,並將測試結果回傳至資料庫305儲存。
另外,標籤引擎伺服器30還提供北向查詢API介面,可透過K元樹查詢產品版號、微服務版號以及相依套件版號,並且可利用參數來巡訪(traverse)所需之資訊。標籤引擎伺服器30亦可提供南向介面,用於直接部署產品至預部署之環境。
具體來說,標籤引擎伺服器30可提供通用的API框架,在時間複雜度O(log k N)下,提供編譯伺服器20進行呼叫存取,也提供通用南向API,以讓佈署伺服器40進行呼叫。產品版號健康監控單元304也提供一通用API框架,以供佈署伺服器40進行呼叫,據此,產品版號健康監控單元304可藉由品質追蹤伺服器50所記錄的資訊進行分析。
請參照第3圖,其為本發明之基於微服務之智慧型版號貼標方法的步驟圖。
於步驟S31中,係令程式碼庫伺服器接收開發者所簽入分別對應多個微服務之多筆程式碼。本步驟係說明開發者將程式碼簽入程式碼庫伺服器。
於步驟S32中,係令編譯伺服器監測該程式碼庫伺服器,於該程式碼庫伺服器接收到各該多筆程式碼時分別編譯各該多筆程式碼,以產生對應各該多筆程式碼之微服務版號。本步驟說明等待程式碼庫伺服器取得監控訊息後開始進行編譯,編譯伺服器會取得程式碼庫伺服器的資訊,這些資訊包含簽入的開發者、簽入的微服務名稱、簽入的 程式碼差異,並且取得當下編譯編號(Build Number)、編譯日期(Build Date)組合成唯一識別此編譯之微服務版號,將此微服務版號賦予給這個微服務,並且將該微服務版號傳送並紀錄於編譯伺服器之微服務版號追蹤單元。
於步驟S33中,係令標籤引擎伺服器接收來自該編譯伺服器之多個微服務版號,同時記錄各該微服務版號所採用之第三方套件版號。除了前述微服務版號外,同時透過編譯伺服器之第三方套件追蹤單元記錄或更新採用那些第三方的套件和其版號。
於步驟S34中,係令佈署伺服器於執行微服務環境佈署時,自該標籤引擎伺服器取得符合該微服務環境佈署之所需多筆程式碼,俾基於該所需多筆程式碼其對應之多個微服務版號,產生對應該微服務環境佈署之產品版號以傳送該產品版號至該標籤引擎伺服器。本步驟係說明當要進行系統佈署的時後,佈署伺服器會透過編譯伺服器之微服務版號追蹤單元取得所有需要佈署的微服務版號進行佈署,佈署完成後給予產品版號,此產品版號包含所佈署的微服務之微服務版號,產品版號會記錄於編譯伺服器之產品版號追蹤單元中。
於一實施例中,標籤引擎伺服器還可依據來自品質追蹤伺服器所產生有關該微服務環境佈署之測試結果,判斷各該產品版本之穩定狀態,其中,品質追蹤伺服器於該佈署伺服器執行該微服務環境佈署後,測試該所需多筆程式碼是否通過該微服務環境佈署之所需條件以產生該測試結 果。品質追蹤伺服器所執行之測試,其測試結果可儲存於品質追蹤伺服器。
接著,標籤引擎伺服器於依據該測試結果判斷各該產品版本其中一者為穩定狀態時,訂定該產品版本為穩定產品版本,也就是可以對外公佈使用的版本。具體來說,編譯伺服器之產品版號健康監控單元會對品質追蹤伺服器之測試結果進行運算,以判定此產品版號是否為穩定,若該產品版本不穩定,則會持續的不斷進行上述幾項操作,若產品版本判定為穩定,則會將此產品版本訂定為穩定產品版本,即將該產品版號視為穩定產品版號。
另外,標籤引擎伺服器可利用K元樹記錄各微服務其每一個歷史版本所對應之微服務版號、產品版號以及對應微服務版號之第三方套件版號。
請參照第4圖,其為本發明之自動貼標的流程圖。如圖所示,請一併參考第2圖。於流程S41中,係開發者將程式碼簽入至程式碼庫伺服器,編譯伺服器監聽到事件後開始進行編譯。本流程說明由開發者100將程式簽入至程式碼庫伺服器10,並且由編譯伺服器20不間斷地對此程式碼庫伺服器10進行監聽追蹤,當發現開發者簽入程式會進行程式碼編譯。
詳言之,開發者100將程式開發完成後簽入到程式碼庫伺服器10,此時編譯伺服器20持續監聽是否程式碼庫伺服器10有微服務專案異動,一旦有異動被監聽到,編譯伺服器20會蒐集此次的異動,包含此微服務專案名稱、異 動之程式碼、程式簽入者等相關資訊,並且開始進行程式碼編譯。
於流程S42中,係編譯伺服器編譯完成後,賦予微服務一版號。本流程說明於編譯伺服器20編譯完成後,編譯伺服器20針對正確編譯完成的微服務給予一個適當的版號,並將此版號傳送至微服務版號追蹤單元301進行記錄與監控,如第5圖所示,該圖說明所有微服務會有自己的版號,如微服務A有版號X1、X2與X3,微服務B有版號Y1、Y2、Y3與Y4,微服務N有其版號Z1與Z2,各微服務的板號產生時間點可能不同,亦即每個微服務不一定要同一個時間點變更,這些微服務其版號維護都由微服務版號追蹤單元301來執行。
詳言之,編譯伺服器20進行編譯後,若編譯完成,順利將程式碼打包後,會針對此次的編譯給與此微服務專案一個獨立的版號,例如第5圖中微服務A的版號X1,此版號是絕對唯一並且可以識別此次編譯的版號,並將此微服務的版號推送(git push)至標籤引擎伺服器30之微服務版號追蹤單元301中進行儲存,以此類推,每一個微服務都依相同模式運作,所以每一個微服務都有保有自己的微服務版號。
於流程S43中,係一段特定時間後,佈署伺服器會將目前需要的所有微服務進行佈署,並將這群微服務給予依產品版號。本流程說明經過一段時間後,佈署伺服器40會將所有微服務依據儲存於微服務版號追蹤單元之微服務 版號進行佈署,過程中將會佈署1至N個微服務直到符合環境中所需的微服務。當微服務佈署完成後,會將所有微服務給予一個產品版號,用以記錄與統合,並將此產品版號回饋至產品版號追蹤單元302,如第6圖所示,其中產品版號P1包含了微服務A版號X3、微服務B版號Y2與微服務N版號Z1,此產品版號所有資訊都儲存至產品版號追蹤單元302。
當需將產品佈署至環境時,佈署伺服器40會從微服務版號追蹤單元301中取得該產品關連之所有微服務,並依需求取得各自穩定的版本進行佈署,此時會賦予這產品一個產品版號,用以統整此環境中N個微服務,例如第6圖所示,描述產品版號P1與其底下微服務版號的關係。
於流程S44中,係測試報告結果出爐。本流程說明將此產品版號佈署出之環境進行測試,直至測試結果產生。具體來說,佈署完成後會針對此環境進行大規模的整合測試,並且測試過程會由品質追蹤伺服器50進行記錄,這些資訊會送到標籤引擎伺服器30中的產品版號健康監控單元304中進行監控。
於流程S45中,係產品版號健康監控單元根據測試報告結果,自動進行此產品版號分析。本流程說明前面流程產生之測試結果會記錄至資料庫305,產品版號健康監控單元304將持續追蹤該產品版號之健康狀況,健康度是依據產品版號的各項單據完成度,單據可例如Bug單或議題單。
詳言之,產品版號健康監控單元304會不斷的進行品質測量,若該產品版本沒有達到良好品質,則不會發佈穩定版本,此時開發人員需針對品質追蹤伺服器50所提出的問題進行解決,直到產品版號健康監控單元304對該產品版本提出良好品質信任後會進行穩定產品版本的發佈與貼標。
於流程S46中,係判斷系統是否穩定,若是,則前進流程S47,將產品版號訂定為穩定產品版本,若否,則回到流程S41。於本流程中,會判斷若無法達到可產出之健康程度,則回到流程S41,以此流程持續進行迭代,直到產出穩定版本,具體來說,若產品版號健康監控單元304判斷系統已經達到穩定狀態,則會將產品版號訂定為穩定版本。
如第7圖所示,產品版號也儲存自己的穩定產品版號,流程S46用於決定此產品版本是否穩定,若版本不穩定,則持續的在不穩定線持續滾動,隨著產品版號P1、P2、P3迭代後,產品版號健康監控單元304判定此版本為穩定版本,則將此產品版號P3定版為產品版號SP1
簡言之,當產品版本呈現良好品質後,則會給予穩定產品版號的貼標,如第7圖所示,產品版號健康監控單元304認同該產品版本為穩定後,會給予一穩定產品版號如SP1(Stable Production Tag 1),此時線上環境就可透過此穩定產品版號進行系統升級或是降級,進而也可適用單一微服務的升級和降級。
另外,標籤引擎伺服器30提供有REST API框架,可基於K元樹建立的新增刪除和查詢的功能,再者,透過維護節點,記錄每個微服務歷史版本所組成的產品版號,並且記錄每個微服務相依套件的版號,而該新增、刪除和修改的操作都可在時間複雜度O(log k N)下解決,提供編譯伺服器20進行呼叫存取,亦提供佈署伺服器40進行呼叫,依參數將所需部署之產品版本,部署至所需之環境。
綜上所述,本發明之基於微服務之智慧型版號貼標系統及其方法,可提供整體穩定產品的更新,亦可提供單一微服務更新,如此可與整體系統脫鉤,藉此降低系統耦合度,甚至可追溯單一微服務穩定版本更替,不僅提供輕量級的更版機制,同時提供高可用和無停機的更版能力。另外,本發明具有對外API,可協助達成自動化持續性佈署(Continuous Deployment)和產品的滾動升級(rolling upgrade)或是降級能力,如此每一個微服務的研發人員可專注於自己功能的開發,不用花費心力關心整體系統的滾動,整體產品版本的滾動是自動化且持續穩定地。
上述實施形態僅例示性說明本發明之原理及其功效,而非用於限制本發明。任何熟習此項技藝之人士均可在不違背本發明之精神及範疇下,對上述實施形態進行修飾與改變。因此,本發明之權利保護範圍,應如後述之申請專利範圍所列。

Claims (10)

  1. 一種基於微服務之智慧型版號貼標系統,包括:程式碼庫伺服器,係用於接收開發者所簽入分別對應多個微服務之多筆程式碼;編譯伺服器,係用於監測該程式碼庫伺服器,於該程式碼庫伺服器接收到各該多筆程式碼時,分別編譯各該多筆程式碼,藉以產生對應各該多筆程式碼之微服務版號;標籤引擎伺服器,係接收來自該編譯伺服器之多個微服務版號,並記錄各該微服務版號所採用之第三方套件版號;以及佈署伺服器,係於執行微服務環境佈署時,自該標籤引擎伺服器取得符合該微服務環境佈署之所需多筆程式碼,俾基於該所需多筆程式碼其對應之多個微服務版號,產生對應該微服務環境佈署之產品版號以傳送該產品版號至該標籤引擎伺服器。
  2. 如申請專利範圍第1項所述之基於微服務之智慧型版號貼標系統,其中,該標籤引擎伺服器包括:微服務版號追蹤單元,係用於記錄各該多筆程式碼之該微服務版號的版本變化;產品版號追蹤單元,係用於記錄對應該微服務環境佈署之各該產品版號的版本變化;第三方套件追蹤單元,係用於記錄各該微服務版號所採用之該第三方套件版號;以及 產品版號健康監控單元,係依據來自品質追蹤伺服器所產生有關該微服務環境佈署之測試結果,判斷各該產品版本之穩定狀態。
  3. 如申請專利範圍第2項所述之基於微服務之智慧型版號貼標系統,其中,該品質追蹤伺服器於該佈署伺服器執行該微服務環境佈署後,測試該所需多筆程式碼是否通過該微服務環境佈署之所需條件以產生該測試結果。
  4. 如申請專利範圍第2項所述之基於微服務之智慧型版號貼標系統,其中,該產品版號健康監控單元於依據該測試結果判斷各該產品版本其中一者為穩定狀態時,訂定該產品版本為穩定產品版本。
  5. 如申請專利範圍第1項所述之基於微服務之智慧型版號貼標系統,其中,該標籤引擎伺服器利用K元樹記錄各該多個微服務其每一個歷史版本所對應之該微服務版號、該產品版號以及對應該微服務版號之該第三方套件版號。
  6. 一種基於微服務之智慧型版號貼標方法,其包括:令程式碼庫伺服器接收開發者所簽入分別對應多個微服務之多筆程式碼;令編譯伺服器監測該程式碼庫伺服器,於該程式碼庫伺服器接收到各該多筆程式碼時分別編譯各該多筆程式碼,以產生對應各該多筆程式碼之微服務版號;令標籤引擎伺服器接收來自該編譯伺服器之多個 微服務版號,並記錄各該微服務版號所採用之第三方套件版號;以及令佈署伺服器於執行微服務環境佈署時,自該標籤引擎伺服器取得符合該微服務環境佈署之所需多筆程式碼,俾基於該所需多筆程式碼其對應之多個微服務版號,產生對應該微服務環境佈署之產品版號以傳送該產品版號至該標籤引擎伺服器。
  7. 如申請專利範圍第6項所述之基於微服務之智慧型版號貼標方法,其中,該標籤引擎伺服器更依據來自品質追蹤伺服器所產生有關該微服務環境佈署之測試結果,判斷各該產品版本之穩定狀態。
  8. 如申請專利範圍第7項所述之基於微服務之智慧型版號貼標方法,其中,該品質追蹤伺服器於該佈署伺服器執行該微服務環境佈署後,測試該所需多筆程式碼是否通過該微服務環境佈署之所需條件以產生該測試結果。
  9. 如申請專利範圍第7項所述之基於微服務之智慧型版號貼標方法,其中,該標籤引擎伺服器於依據該測試結果判斷各該產品版本其中一者為穩定狀態時,訂定該產品版本為穩定產品版本。
  10. 如申請專利範圍第6項所述之基於微服務之智慧型版號貼標方法,其中,該標籤引擎伺服器利用K元樹記錄各該多個微服務其每一個歷史版本所對應之該微服務版號、該產品版號以及對應該微服務版號之該第三方 套件版號。
TW107102198A 2018-01-22 2018-01-22 基於微服務之智慧型版號貼標系統及其方法 TWI643081B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW107102198A TWI643081B (zh) 2018-01-22 2018-01-22 基於微服務之智慧型版號貼標系統及其方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW107102198A TWI643081B (zh) 2018-01-22 2018-01-22 基於微服務之智慧型版號貼標系統及其方法

Publications (2)

Publication Number Publication Date
TWI643081B true TWI643081B (zh) 2018-12-01
TW201933146A TW201933146A (zh) 2019-08-16

Family

ID=65431929

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107102198A TWI643081B (zh) 2018-01-22 2018-01-22 基於微服務之智慧型版號貼標系統及其方法

Country Status (1)

Country Link
TW (1) TWI643081B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106293704A (zh) * 2016-07-26 2017-01-04 北京北森云计算股份有限公司 多语言云编译的动态微服务编辑方法、装置和服务器
TW201702901A (zh) * 2015-03-13 2017-01-16 法墨網路公司 用於對分散式微服務提供安全性之方法及系統
US20170046146A1 (en) * 2015-08-11 2017-02-16 International Business Machines Corporation Autonomously healing microservice-based applications
TW201711426A (zh) * 2015-04-30 2017-03-16 生活速度公司 大規模可擴展之非同步後端雲端運算架構

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201702901A (zh) * 2015-03-13 2017-01-16 法墨網路公司 用於對分散式微服務提供安全性之方法及系統
TW201711426A (zh) * 2015-04-30 2017-03-16 生活速度公司 大規模可擴展之非同步後端雲端運算架構
US20170046146A1 (en) * 2015-08-11 2017-02-16 International Business Machines Corporation Autonomously healing microservice-based applications
CN106293704A (zh) * 2016-07-26 2017-01-04 北京北森云计算股份有限公司 多语言云编译的动态微服务编辑方法、装置和服务器

Also Published As

Publication number Publication date
TW201933146A (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
WO2020140820A1 (zh) 软件测试方法、系统、装置、设备、介质及计算机程序产品
KR100702424B1 (ko) 소프트웨어 배포를 위한 통합 관리 시스템 및 방법
JP5295269B2 (ja) コンポーネント・モデル基盤の仮想ソフトウェア・プラットホームを生成する方法、これを利用してソフトウェア・プラットホーム・アーキテクチャを検証する方法及びその装置
US8677348B1 (en) Method and apparatus for determining least risk install order of software patches
CN108845940B (zh) 一种企业级信息系统自动化功能测试方法和系统
US20120323550A1 (en) System and method for system integration test (sit) planning
CN104090776A (zh) 一种软件开发方法及系统
US20080071589A1 (en) Evaluating Development of Enterprise Computing System
CN113111000B (zh) 持续集成自动化测试系统和方法、电子设备、存储介质
CN111966665B (zh) 数据迁移测试方法及装置
CN109933510A (zh) 接口管理的方法、装置、电子设备和存储介质
US10657023B1 (en) Techniques for collecting and reporting build metrics using a shared build mechanism
CN108446135A (zh) 一种代码行数统计方法及装置
CN114329297A (zh) 内容管理系统、静态页面的管理方法、装置及存储介质
CN103186463B (zh) 确定软件的测试范围的方法和系统
CN103678124A (zh) 基于持续集成环境的视频监控平台自动测试方法及装置
CN108519951A (zh) 一种三节点bios持续集成平台及方法
EP2196901A1 (en) Systems and methods for tracking software stands in a software production landscape
US9612944B2 (en) Method and system for verifying scenario based test selection, execution and reporting
CN103026337A (zh) 配给组件的提取和重构
CN110865806A (zh) 代码处理方法、装置、服务器及存储介质
WO2017084388A1 (zh) 一种网络巡检方法及装置
CN111967137B (zh) 一种半导体设备建模方法及装置
TWI643081B (zh) 基於微服務之智慧型版號貼標系統及其方法
Pastrana-Pardo et al. Approach to the Best Practices in Software Development Based on DevOps and SCRUM Used in Very Small Entities