本技術(shù)涉及軟件開發(fā),尤其涉及一種制品倉庫的管理方法、倉庫管理系統(tǒng)、計算設(shè)備集群、計算機可讀存儲介質(zhì)以及計算機程序產(chǎn)品。
背景技術(shù):
1、隨著軟件技術(shù)的不斷發(fā)展,產(chǎn)生了海量的源代碼文件,上述源代碼文件經(jīng)過編譯等處理可以形成制品,并存儲在制品倉庫中。其中,制品是指源代碼編譯后的構(gòu)建產(chǎn)物,通常為二進(jìn)制文件,該二進(jìn)制文件可以是可執(zhí)行文件,例如可以運行在服務(wù)器上。根據(jù)開發(fā)語言不同,制品可以包括不同格式或包類型,例如為java歸檔(java?archive,jar)或rpm格式。
2、制品倉庫用于統(tǒng)一管理不同格式的制品。除了基本的存儲功能,制品倉庫還提供了制品分類、構(gòu)建部署工具集成、版本控制、訪問權(quán)限控制、遠(yuǎn)程代理、安全掃描、依賴分析等重要功能,是一種處理軟件開發(fā)過程中產(chǎn)生的所有制品包類型的標(biāo)準(zhǔn)化方式。
3、制品倉庫的數(shù)據(jù)量隨著使用累積呈現(xiàn)指數(shù)型上升趨勢。并且,隨著業(yè)務(wù)場景的復(fù)雜化,制品類型越來越多,單個制品的數(shù)據(jù)量也越來越大,如此導(dǎo)致制品查詢、上傳、下載的速率會有一定程度的下降。因此,有必要對制品倉庫進(jìn)行針對性治理,實現(xiàn)制品倉庫的高效利用。
4、目前,針對制品倉庫的治理方案為用戶自行調(diào)用應(yīng)用程序接口(applicationprogramming?interface,api)對制品倉庫中的內(nèi)容進(jìn)行刪除,不能很好地支撐用戶進(jìn)行針對性的清理,由用戶自行治理的成本較高,而且治理效果也難以達(dá)到預(yù)期。
技術(shù)實現(xiàn)思路
1、本技術(shù)提供了一種制品倉庫的管理方法,該方法通過對聚合倉庫中聚合成員的聚合關(guān)系進(jìn)行分析,支持對不合理的聚合架構(gòu)進(jìn)行快速識別和一鍵清理,提升聚合倉庫等制品倉庫的查詢、上傳、下載速率。而且,通過對不合理的聚合關(guān)系進(jìn)行治理可以減少解析出錯的可能性,減少網(wǎng)絡(luò)資源的浪費。通過上述針對性治理還可以降低治理成本。本技術(shù)還提供了與制品倉庫的管理方法對應(yīng)的倉庫管理系統(tǒng)、計算設(shè)備集群、計算機可讀存儲介質(zhì)以及計算機程序產(chǎn)品。
2、第一方面,本技術(shù)提供一種制品倉庫的管理方法。制品倉庫包括至少一個聚合倉庫,聚合倉庫由相同類型的托管倉庫和/或代理倉庫聚合形成。倉庫管理系統(tǒng)可以為軟件系統(tǒng),該軟件系統(tǒng)可以是獨立的軟件系統(tǒng),以軟件包的形式提供給用戶,用戶可以自行部署軟件包,或者軟件系統(tǒng)也可以集成于其他軟件,例如可以是集成于軟件開發(fā)工具鏈,作為軟件開發(fā)工具鏈的一個插件、功能模塊或服務(wù)(例如為云服務(wù))。上述軟件系統(tǒng)可以部署在計算設(shè)備集群中,例如是公有云、私有云、混合云或伙伴云等云計算集群中。計算設(shè)備集群執(zhí)行軟件系統(tǒng)的程序代碼,從而執(zhí)行本技術(shù)的制品倉庫的管理方法。在一些可能的實現(xiàn)方式中,倉庫管理系統(tǒng)也可以是硬件系統(tǒng),例如為具有制品倉庫管理能力的計算設(shè)備集群,該計算設(shè)備集群運行時,執(zhí)行本技術(shù)的制品倉庫的管理方法。
3、具體地,倉庫管理系統(tǒng)接收倉庫分析請求,該倉庫分析請求包括待分析的目標(biāo)聚合倉庫的倉庫標(biāo)識,然后倉庫管理系統(tǒng)根據(jù)目標(biāo)聚合倉庫的倉庫標(biāo)識,獲取目標(biāo)聚合倉庫的元數(shù)據(jù),該元數(shù)據(jù)包括目標(biāo)聚合倉庫的聚合成員。接著倉庫管理系統(tǒng)根據(jù)目標(biāo)聚合倉庫的聚合成員,分析目標(biāo)聚合倉庫是否存在包含關(guān)系,該包含關(guān)系用于指示目標(biāo)聚合倉庫被目標(biāo)聚合倉庫的聚合成員包含。當(dāng)所述目標(biāo)聚合倉庫存在包含關(guān)系,倉庫管理系統(tǒng)向用戶展示包含關(guān)系。倉庫管理系統(tǒng)接收用戶針對目標(biāo)聚合倉庫觸發(fā)的倉庫清理請求,移除包含關(guān)系。
4、該方法通過對聚合倉庫中聚合成員的聚合關(guān)系進(jìn)行分析,支持對用戶不合理的聚合架構(gòu)進(jìn)行快速識別和一鍵清理,由此實現(xiàn)聚合關(guān)系治理。治理完成后可提升制品倉庫(如聚合倉庫)的查詢、上傳、下載速率。而且,通過對聚合關(guān)系進(jìn)行治理可以減少解析出錯的可能性,減少網(wǎng)絡(luò)資源的浪費。
5、在一些可能的實現(xiàn)方式中,包含關(guān)系包括循環(huán)聚合關(guān)系,該循環(huán)聚合關(guān)系包括多個倉庫的聚合關(guān)系,多個倉庫的聚合關(guān)系形成環(huán)路。例如,聚合倉庫a聚合有聚合倉庫b,聚合倉庫b聚合有聚合倉庫c,聚合倉庫c聚合有聚合倉庫a,則聚合倉庫a、聚合倉庫b、聚合倉庫c可以形成循環(huán)聚合關(guān)系,該循環(huán)聚合關(guān)系可以表示為a-b-c-a。
6、該方法可以識別聚合環(huán)等不健康的倉庫拓?fù)浠蚓酆详P(guān)系,如此可以為倉庫治理提供參考,避免用戶手動清理制品倉庫,實現(xiàn)對制品倉庫進(jìn)行細(xì)粒度、針對性的治理,提升制品倉庫管理效率。
7、在一些可能的實現(xiàn)方式中,倉庫管理系統(tǒng)分析聚合關(guān)系時,可以對目標(biāo)聚合倉庫的聚合成員進(jìn)行聚合性檢查。當(dāng)目標(biāo)聚合倉庫的第一聚合成員為聚合倉庫,倉庫管理系統(tǒng)對第一聚合成員進(jìn)行聚合性檢查,當(dāng)?shù)谝痪酆铣蓡T的檢查結(jié)果表征第一聚合成員聚合有已被檢查的聚合倉庫,確定目標(biāo)聚合倉庫存在包含關(guān)系。
8、該方法通過遍歷聚合成員的方式檢查不健康的聚合關(guān)系,保障聚合關(guān)系檢查的全面性、準(zhǔn)確性,為制品倉庫的治理提供幫助。
9、在一些可能的實現(xiàn)方式中,倉庫管理系統(tǒng)還可以根據(jù)目標(biāo)聚合倉庫的聚合成員,分析目標(biāo)聚合倉庫的廣度或深度。倉庫管理系統(tǒng)將目標(biāo)聚合倉庫的廣度大于第一閾值的聚合關(guān)系移除,或者將目標(biāo)聚合倉庫的深度大于第二閾值的聚合關(guān)系移除。
10、該方法通過分析聚合倉庫的廣度或深度,還可以實現(xiàn)對聚合倉庫的規(guī)模治理,避免聚合倉庫聚合過多成員或聚合深度過大導(dǎo)致解析慢。
11、在一些可能的實現(xiàn)方式中,倉庫管理系統(tǒng)還可以向用戶展示目標(biāo)聚合倉庫的健康度或治理建議中的至少一項。其中,健康度用于表征目標(biāo)聚合倉庫整體的健康程度,治理建議包括對目標(biāo)聚合倉庫的評分小于第三閾值的指標(biāo)的治理建議。
12、在該方法中,用戶可以在頁面上可視化觀測制品倉庫的健康程度,對低分項進(jìn)行針對性的治理;而且通過對制品倉庫的健康度設(shè)置發(fā)布門禁,引導(dǎo)用戶合理使用制品倉庫,減少因過量冗余、文件雜亂帶來的運維成本和使用成本。此外,服務(wù)側(cè)可以結(jié)合各租戶的健康度平均數(shù)據(jù),科學(xué)規(guī)劃集群和資源分布,實現(xiàn)資源的高效利用。
13、在一些可能的實現(xiàn)方式中,倉庫管理系統(tǒng)還可以響應(yīng)于定時分析任務(wù),對管理的至少一個倉庫進(jìn)行健康度分析,獲得至少一個倉庫的健康度。其中,至少一個倉庫包括目標(biāo)聚合倉庫。
14、該方法通過定時分析倉庫的健康度,可以實現(xiàn)定期清理制品倉庫中的大文件、過期文件(如長期未下載、長期未訪問的文件),提升制品倉庫的性能。
15、在一些可能的實現(xiàn)方式中,倉庫管理系統(tǒng)可以獲取至少一個倉庫在工程能力評估維度的第一指標(biāo)的評分,以及獲取至少一個倉庫在倉庫內(nèi)容評估維度的第二指標(biāo)的評分,然后根據(jù)所述第一指標(biāo)的評分獲得所述至少一個倉庫的工程能力評分,根據(jù)所述第二指標(biāo)的評分獲得所述至少一個倉庫的倉庫內(nèi)容評分,接著倉庫管理系統(tǒng)可以根據(jù)工程能力評分和倉庫內(nèi)容評分,獲得所述至少一個倉庫的健康度。
16、該方法通過從工程能力、倉庫內(nèi)容等維度對制品倉庫的健康度進(jìn)行全面、綜合評估,可以實現(xiàn)對制品倉庫的精細(xì)治理。
17、在一些可能的實現(xiàn)方式中,第一指標(biāo)包括跨地域下載次數(shù)占比、重復(fù)制品占比、接口調(diào)用限流次數(shù)中的至少一項。該方法通過結(jié)合跨地域下載次數(shù)、重復(fù)制品占比、接口調(diào)用限流次數(shù)進(jìn)行倉庫的健康度評估,并由此進(jìn)行倉庫治理,可以減少制品倉庫的跨地域下載,提高資源利用率,以及降低重復(fù)制品占比,減少制品冗余。
18、在一些可能的實現(xiàn)方式中,至少一個倉庫包括聚合倉庫、托管倉庫或代理倉庫中的至少一項。聚合倉庫在倉庫內(nèi)容評估維度的第二指標(biāo)包括聚合的倉庫數(shù)、聚合最大深度、聚合倉庫總數(shù)據(jù)量、循環(huán)虛擬倉中的至少一項,托管倉庫在倉庫內(nèi)容評估維度的第二指標(biāo)包括單倉存儲容量、單倉內(nèi)最大制品的數(shù)據(jù)量、非構(gòu)建產(chǎn)物的數(shù)量占比、長期未下載制品的數(shù)量占比、路徑最大深度中的至少一項,代理倉庫在倉庫內(nèi)容評估維度的第二指標(biāo)包括單倉存儲容量、緩存命中率、長期未使用制品的數(shù)量占比。
19、該方法針對不同類型制品倉庫,設(shè)置不同倉庫內(nèi)容評估維度的指標(biāo),基于上述指標(biāo)進(jìn)行倉庫內(nèi)容評估更具有針對性,由此保證了健康度評估的準(zhǔn)確性。
20、在一些可能的實現(xiàn)方式中,倉庫管理系統(tǒng)可以根據(jù)所述目標(biāo)聚合倉庫的倉庫標(biāo)識,從數(shù)據(jù)庫只讀實例獲取所述目標(biāo)聚合倉庫的元數(shù)據(jù)。該方法從數(shù)據(jù)庫只讀實例讀取數(shù)據(jù),可有效減少對倉庫管理模塊的壓力,且不會影響倉庫管理模塊正常的數(shù)據(jù)變動,實現(xiàn)松耦合。
21、在一些可能的實現(xiàn)方式中,倉庫管理系統(tǒng)可以異步對用戶選擇的目標(biāo)制品進(jìn)行清理。其中,目標(biāo)制品包括數(shù)據(jù)量大于第四閾值的制品或下載時間達(dá)到設(shè)定時間的制品中的至少一項。該方法一方面可以對目標(biāo)制品進(jìn)行清理,提升制品倉庫的性能,另一方面通過異步方式進(jìn)行制品清理,可以避免對正常業(yè)務(wù)產(chǎn)生影響。
22、第二方面,本技術(shù)提供一種倉庫管理系統(tǒng)。所述倉庫管理系統(tǒng)用于管理制品倉庫,所述制品倉庫包括至少一個聚合倉庫,所述聚合倉庫由相同類型的托管倉庫和/或代理倉庫聚合形成,所述系統(tǒng)包括:
23、交互模塊,用于接收倉庫分析請求,所述倉庫分析請求包括待分析的目標(biāo)聚合倉庫的倉庫標(biāo)識;
24、數(shù)據(jù)分析模塊,用于根據(jù)所述目標(biāo)聚合倉庫的倉庫標(biāo)識,獲取所述目標(biāo)聚合倉庫的元數(shù)據(jù),所述元數(shù)據(jù)包括所述目標(biāo)聚合倉庫的聚合成員;
25、所述數(shù)據(jù)分析模塊,還用于根據(jù)所述目標(biāo)聚合倉庫的聚合成員,分析所述目標(biāo)聚合倉庫是否存在包含關(guān)系,所述包含關(guān)系用于指示所述目標(biāo)聚合倉庫被所述目標(biāo)聚合倉庫的聚合成員包含;
26、所述交互模塊,還用于當(dāng)所述目標(biāo)聚合倉庫存在包含關(guān)系,向用戶展示所述包含關(guān)系;
27、所述交互模塊,還用于接收所述用戶針對所述目標(biāo)聚合倉庫觸發(fā)的倉庫清理請求;
28、倉庫管理模塊,用于移除所述包含關(guān)系。
29、在一些可能的實現(xiàn)方式中,所述包含關(guān)系包括循環(huán)聚合關(guān)系,所述循環(huán)聚合關(guān)系包括多個倉庫的聚合關(guān)系,所述多個倉庫的聚合關(guān)系形成環(huán)路。
30、在一些可能的實現(xiàn)方式中,所述數(shù)據(jù)分析模塊具體用于:
31、對所述目標(biāo)聚合倉庫的聚合成員進(jìn)行聚合性檢查;
32、當(dāng)所述目標(biāo)聚合倉庫的第一聚合成員為聚合倉庫,對所述第一聚合成員進(jìn)行聚合性檢查,當(dāng)所述第一聚合成員的檢查結(jié)果表征所述第一聚合成員聚合有已被檢查的聚合倉庫,確定所述目標(biāo)聚合倉庫存在包含關(guān)系。
33、在一些可能的實現(xiàn)方式中,所述數(shù)據(jù)分析模塊還用于:
34、根據(jù)所述目標(biāo)聚合倉庫的聚合成員,分析所述目標(biāo)聚合倉庫的廣度或深度;
35、所述倉庫管理模塊還用于:
36、將所述目標(biāo)聚合倉庫的廣度大于第一閾值的聚合關(guān)系移除,或者將所述目標(biāo)聚合倉庫的深度大于第二閾值的聚合關(guān)系移除。
37、在一些可能的實現(xiàn)方式中,所述交互模塊還用于:
38、向用戶展示所述目標(biāo)聚合倉庫的健康度或治理建議中的至少一項,所述健康度用于表征所述目標(biāo)聚合倉庫整體的健康程度,所述治理建議包括對所述目標(biāo)聚合倉庫的評分小于第三閾值的指標(biāo)的治理建議。
39、在一些可能的實現(xiàn)方式中,所述數(shù)據(jù)分析模塊還用于:
40、響應(yīng)于定時分析任務(wù),對管理的至少一個倉庫進(jìn)行健康度分析,獲得所述至少一個倉庫的健康度,所述至少一個倉庫包括所述目標(biāo)聚合倉庫。
41、在一些可能的實現(xiàn)方式中,所述數(shù)據(jù)分析模塊具體用于:
42、獲取所述至少一個倉庫在工程能力評估維度的第一指標(biāo)的評分,以及獲取所述至少一個倉庫在倉庫內(nèi)容評估維度的第二指標(biāo)的評分;
43、根據(jù)所述第一指標(biāo)的評分獲得所述至少一個倉庫的工程能力評分,根據(jù)所述第二指標(biāo)的評分獲得所述至少一個倉庫的倉庫內(nèi)容評分;
44、根據(jù)所述工程能力評分和所述倉庫內(nèi)容評分,獲得所述至少一個倉庫的健康度。
45、在一些可能的實現(xiàn)方式中,所述第一指標(biāo)包括跨地域下載次數(shù)占比、重復(fù)制品占比、接口調(diào)用限流次數(shù)中的至少一項。
46、在一些可能的實現(xiàn)方式中,所述至少一個倉庫包括聚合倉庫、托管倉庫或代理倉庫中的至少一項;
47、所述聚合倉庫在倉庫內(nèi)容評估維度的第二指標(biāo)包括聚合的倉庫數(shù)、聚合最大深度、聚合倉庫總數(shù)據(jù)量、循環(huán)虛擬倉中的至少一項,所述托管倉庫在倉庫內(nèi)容評估維度的第二指標(biāo)包括單倉存儲容量、單倉內(nèi)最大制品的數(shù)據(jù)量、非構(gòu)建產(chǎn)物的數(shù)量占比、長期未下載制品的數(shù)量占比、路徑最大深度中的至少一項,所述代理倉庫在倉庫內(nèi)容評估維度的第二指標(biāo)包括單倉存儲容量、緩存命中率、長期未使用制品的數(shù)量占比。
48、在一些可能的實現(xiàn)方式中,所述數(shù)據(jù)分析模塊具體用于:
49、根據(jù)所述目標(biāo)聚合倉庫的倉庫標(biāo)識,從數(shù)據(jù)庫只讀實例獲取所述目標(biāo)聚合倉庫的元數(shù)據(jù)。
50、第三方面,本技術(shù)提供一種計算設(shè)備集群。所述計算設(shè)備集群包括至少一臺計算設(shè)備,所述至少一臺計算設(shè)備包括至少一個處理器和至少一個存儲器。所述至少一個處理器、所述至少一個存儲器進(jìn)行相互的通信。所述至少一個處理器用于執(zhí)行所述至少一個存儲器中存儲的指令,以使得計算設(shè)備或計算設(shè)備集群執(zhí)行如第一方面或第一方面的任一種實現(xiàn)方式所述的制品倉庫的管理方法。
51、第四方面,本技術(shù)提供一種計算機可讀存儲介質(zhì),所述計算機可讀存儲介質(zhì)中存儲有指令,所述指令指示計算設(shè)備或計算設(shè)備集群執(zhí)行上述第一方面或第一方面的任一種實現(xiàn)方式所述的制品倉庫的管理方法。
52、第五方面,本技術(shù)提供了一種包含指令的計算機程序產(chǎn)品,當(dāng)其在計算設(shè)備或計算設(shè)備集群上運行時,使得計算設(shè)備或計算設(shè)備集群執(zhí)行上述第一方面或第一方面的任一種實現(xiàn)方式所述的制品倉庫的管理方法。
53、本技術(shù)在上述各方面提供的實現(xiàn)方式的基礎(chǔ)上,還可以進(jìn)行進(jìn)一步組合以提供更多實現(xiàn)方式。