云執(zhí)行的系統(tǒng)和方法
【專利摘要】本發(fā)明提出一種云執(zhí)行系統(tǒng),包括代碼管理服務(wù)器、代碼文件服務(wù)集群和云執(zhí)行集群,其中,代碼管理服務(wù)器用于接收用戶上傳的代碼文件,并建立代碼文件與相應(yīng)的應(yīng)用程序之間的對應(yīng)關(guān)系信息,并將代碼文件和對應(yīng)關(guān)系信息發(fā)送至代碼文件服務(wù)集群;代碼服務(wù)集群用于保存代碼文件和對應(yīng)關(guān)系信息;云執(zhí)行集群用于從代碼管理服務(wù)器中獲得需要執(zhí)行的應(yīng)用程序相應(yīng)的代碼文件所存儲的Fuse服務(wù)器的地址,并根據(jù)需要執(zhí)行的應(yīng)用程序從Fuse服務(wù)器中獲取相應(yīng)的代碼文件。本發(fā)明降低了代碼發(fā)布失敗的風(fēng)險,提高了系統(tǒng)的穩(wěn)定性,靈活性好,可擴(kuò)展性高。本發(fā)明還公開了一種云執(zhí)行方法。
【專利說明】云執(zhí)行的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機(jī)科學(xué)【技術(shù)領(lǐng)域】,特別涉及一種云推送的系統(tǒng)和方法。
【背景技術(shù)】
[0002]一個軟件產(chǎn)品往往包含了大量的代碼,對這些代碼的保存和管理對開發(fā)、測試、維護(hù)等都有著非常重要的意義。現(xiàn)存的代碼發(fā)布方案一般包含一個資源調(diào)度系統(tǒng),由資源調(diào)度系統(tǒng)決定將應(yīng)用程序的代碼發(fā)布到哪臺具體的計算機(jī)器,即執(zhí)行單元機(jī)器上。代碼在發(fā)布的時候通常采取增量發(fā)布方式,通過獲取增量差異,在patch上對代碼進(jìn)行更新。當(dāng)執(zhí)行單元需要擴(kuò)容的時候,會執(zhí)行擴(kuò)容操作,擴(kuò)容操作將該執(zhí)行單元上所有應(yīng)用的代碼都完整的遷移到新的執(zhí)行單元機(jī)器上面。
[0003]該方案有如下兩個缺點(diǎn):
[0004]1.執(zhí)行單元上有應(yīng)用程序的代碼,擴(kuò)容會帶來大量的程序代碼文件的發(fā)布,增加了失敗的風(fēng)險,降低了系統(tǒng)的穩(wěn)定性。
[0005]2.為了給應(yīng)用提供更好的服務(wù),執(zhí)行單元需要在資源調(diào)度的管理下實(shí)現(xiàn)動態(tài)的擴(kuò)展,但應(yīng)用程序的代碼文件會束縛這種靈活性,這將降低系統(tǒng)的可擴(kuò)展性。
[0006]伴隨著云計算概念的提出和發(fā)展,也有將代碼發(fā)布系統(tǒng)部署到云環(huán)境中的新思路。這種方案通常將云環(huán)境作為一個云應(yīng)用執(zhí)行引擎,計算層的執(zhí)行環(huán)境訪問部署在上面的每個應(yīng)用的代碼文件。然后這種方式也面臨兩個問題:一方面云環(huán)境流量的增長會帶來執(zhí)行單元數(shù)量的線性增長,而代碼必須發(fā)布到每個執(zhí)行單元上面,這樣會帶來代碼發(fā)布失敗增加的風(fēng)險;另一方面因為計算層的增加必須搬移所有的代碼到新的計算層機(jī)器上面,因此不利于計算層的自動擴(kuò)展,
【發(fā)明內(nèi)容】
[0007]本發(fā)明的目的旨在至少解決上述技術(shù)缺陷之一。
[0008]為此,本發(fā)明的第一個目的在于提出一種云執(zhí)行系統(tǒng),該系統(tǒng)低了代碼發(fā)布失敗的風(fēng)險,提高了系統(tǒng)的穩(wěn)定性,靈活性好,可擴(kuò)展性高。
[0009]本發(fā)明的第二個目的在于提出一種云執(zhí)行方法。
[0010]為達(dá)到上述目的,本發(fā)明第一方面的實(shí)施例公開了一種云執(zhí)行系統(tǒng),包括代碼管理服務(wù)器、代碼文件服務(wù)集群和云執(zhí)行集群。所述代碼管理服務(wù)器用于接收用戶上傳的代碼文件,并建立所述代碼文件與相應(yīng)的應(yīng)用程序之間的對應(yīng)關(guān)系信息,并將所述代碼文件和所述對應(yīng)關(guān)系信息發(fā)送至所述代碼文件服務(wù)集群;所述代碼文件服務(wù)集群用于保存所述代碼文件和所述對應(yīng)關(guān)系信息,其中,所述代碼文件服務(wù)集群包括多個用戶空間文件系統(tǒng)Fuse服務(wù)器,所述多個Fuse服務(wù)器中的至少一個Fuse服務(wù)器保存所述代碼文件和所述對應(yīng)關(guān)系信息;所述云執(zhí)行集群用于從所述代碼管理服務(wù)器中獲得需要執(zhí)行的應(yīng)用程序相應(yīng)的代碼文件所存儲的Fuse服務(wù)器的地址,并根據(jù)需要執(zhí)行的應(yīng)用程序從所述Fuse服務(wù)器中獲取相應(yīng)的代碼文件,其中,所述云執(zhí)行集群包括多個Fuse客戶端,所述多個Fuse客戶端分別與所述代碼文件服務(wù)集群中的多個Fuse服務(wù)器相連,以從所述多個Fuse服務(wù)器中獲得相應(yīng)的代碼文件。
[0011]在本發(fā)明的實(shí)施例中,本方案利用Fuse技術(shù),使用代碼文件服務(wù)集群來對代碼文件進(jìn)行存儲和管理,利用Fuse客戶端通過網(wǎng)絡(luò)來遠(yuǎn)程訪問代碼,實(shí)現(xiàn)了計算層和代碼文件的解耦。本發(fā)明降低了代碼發(fā)布失敗的風(fēng)險,提高了系統(tǒng)的穩(wěn)定性,并且在云環(huán)境中,系統(tǒng)的可擴(kuò)展性和靈活性都得到了加強(qiáng)。
[0012]在本發(fā)明的一個實(shí)施例中,所述多個Fuse服務(wù)器中的一部分Fuse服務(wù)器保存所述代碼文件和所述對應(yīng)關(guān)系信息以相互構(gòu)成備份。備份增強(qiáng)了代碼文件的安全性。
[0013]在本發(fā)明的一個實(shí)施例中,所述代碼文件服務(wù)集群對所述多個Fuse服務(wù)器進(jìn)行壓力監(jiān)控,并對壓力超標(biāo)的Fuse服務(wù)器進(jìn)行自動擴(kuò)容。自動擴(kuò)容增強(qiáng)了系統(tǒng)的可擴(kuò)展性,提高了系統(tǒng)的靈活性。
[0014]在本發(fā)明的一個實(shí)施例中,所述代碼文件包括文件頭信息和文件內(nèi)容信息。
[0015]在本發(fā)明的一個實(shí)施例中,所述Fuse客戶端對獲得的相應(yīng)的代碼文件進(jìn)行緩存。緩存的增加能夠提高訪問代碼文件的速度,提高效率,緩解Fuse服務(wù)器的壓力
[0016]在本發(fā)明的一個實(shí)施例中,所述Fuse服務(wù)器還用于在所述Fuse服務(wù)器中保存的代碼文件更新之后,通知對應(yīng)的Fuse客戶端更新緩存。。
[0017]在本發(fā)明的一個實(shí)施例中,所述Fuse客戶端記錄所述代碼文件的緩存時間,在所述緩存時間超過預(yù)設(shè)時間之后,更新所述文件頭信息,并將緩存的文件頭信息與所述更新的文件頭信息進(jìn)行比較,如果相同則維持所述文件內(nèi)容信息繼續(xù)有效。
[0018]本發(fā)明第二方面的實(shí)施例公開了一種云執(zhí)行方法,包括以下步驟:接收用戶上傳的代碼文件,并建立所述代碼文件與相應(yīng)的應(yīng)用程序之間的對應(yīng)關(guān)系信息;將所述代碼文件和所述對應(yīng)關(guān)系信息發(fā)送至代碼文件服務(wù)集群,其中,所述代碼文件服務(wù)集群包括多個用戶空間文件系統(tǒng)Fuse服務(wù)器,所述多個Fuse服務(wù)器中的至少一個Fuse服務(wù)器保存所述代碼文件和所述對應(yīng)關(guān)系信息;云執(zhí)行集群獲得需要執(zhí)行的應(yīng)用程序,并獲得所述需要執(zhí)行的應(yīng)用程序相應(yīng)的代碼文件所存儲的Fuse服務(wù)器的地址,其中,所述云執(zhí)行集群包括多個Fuse客戶端,所述多個Fuse客戶端分別與所述代碼文件服務(wù)集群中的多個Fuse服務(wù)器相連,以從所述多個Fuse服務(wù)器中獲得相應(yīng)的代碼文件;所述云執(zhí)行集群根據(jù)需要執(zhí)行的應(yīng)用程序從所述Fuse服務(wù)器中獲取相應(yīng)的代碼文件。
[0019]在本發(fā)明的實(shí)施例中,利用Fuse技術(shù),使用代碼文件服務(wù)集群來對代碼文件進(jìn)行存儲和管理。Fuse客戶端通過網(wǎng)絡(luò)來遠(yuǎn)程訪問代碼,實(shí)現(xiàn)了計算層和代碼文件的解耦,降低了代碼發(fā)布失敗的風(fēng)險,提高了系統(tǒng)的穩(wěn)定性,并且在云環(huán)境中可擴(kuò)展性和靈活性都得到了加強(qiáng)。
[0020]在本發(fā)明的一個實(shí)施例中,所述多個Fuse服務(wù)器中的一部分Fuse服務(wù)器保存所述代碼文件和所述對應(yīng)關(guān)系信息以相互構(gòu)成備份。備份增強(qiáng)了代碼文件的安全性。
[0021]在本發(fā)明的一個實(shí)施例中,還包括:所述代碼文件服務(wù)集群對所述多個Fuse服務(wù)器進(jìn)行壓力監(jiān)控,并對壓力超標(biāo)的Fuse服務(wù)器進(jìn)行自動擴(kuò)容。自動擴(kuò)容增強(qiáng)了系統(tǒng)的可擴(kuò)展性,提高了系統(tǒng)的靈活性。
[0022]在本發(fā)明的一個實(shí)施例中,所述代碼文件包括文件頭信息和文件內(nèi)容信息。
[0023]在本發(fā)明的一個實(shí)施例中,還包括:所述Fuse客戶端對獲得的相應(yīng)的代碼文件進(jìn)行緩存。緩存的增加能夠提高訪問代碼文件的速度,提高效率,緩解Fuse服務(wù)器的壓力
[0024]在本發(fā)明的一個實(shí)施例中,還包括:所述Fuse服務(wù)器在所述Fuse服務(wù)器中保存的代碼文件更新之后,通知對應(yīng)的Fuse客戶端更新緩存。
[0025]在本發(fā)明的一個實(shí)施例中,還包括:所述Fuse客戶端記錄所述代碼文件的緩存時間;判斷所述緩存時間是否超過預(yù)設(shè)時間;如果判斷所述緩存時間超過所述預(yù)設(shè)時間,則更新所述文件頭信息,并進(jìn)一步將緩存的文件頭信息與所述更新的文件頭信息進(jìn)行比較;如果判斷所述緩存的文件頭信息與所述更新的文件頭信息相同,則維持所述文件內(nèi)容信息繼續(xù)有效;如果判斷所述緩存的文件頭信息與所述更新的文件頭信息不同,則從所述Fuse服務(wù)器獲得更新的文件內(nèi)容信息。
[0026]本發(fā)明附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本發(fā)明的實(shí)踐了解到。
【專利附圖】
【附圖說明】
[0027]本發(fā)明上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:
[0028]圖1為根據(jù)本發(fā)明實(shí)施例的云執(zhí)行系統(tǒng)的結(jié)構(gòu)示意圖;
[0029]圖2為根據(jù)本發(fā)明實(shí)施例的云推送實(shí)現(xiàn)方案圖;和
[0030]圖3為根據(jù)本發(fā)明實(shí)施例的云執(zhí)行方法的流程圖。
【具體實(shí)施方式】
[0031]下面詳細(xì)描述本發(fā)明的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本發(fā)明,而不能解釋為對本發(fā)明的限制。
[0032]下面參考圖1描述根據(jù)本發(fā)明實(shí)施例的云執(zhí)行系統(tǒng)100,包括代碼管理服務(wù)器110、代碼文件服務(wù)集群120和云執(zhí)行集群130,其中,代碼管理服務(wù)器110用于接收用戶上傳的代碼文件,并建立代碼文件與相應(yīng)的應(yīng)用程序之間的對應(yīng)關(guān)系信息,并將代碼文件和對應(yīng)關(guān)系信息發(fā)送至代碼文件服務(wù)集群;代碼文件服務(wù)集群120用于保存代碼文件和對應(yīng)關(guān)系信息,其中,代碼文件服務(wù)集群包括多個用戶空間文件系統(tǒng)Fuse服務(wù)器121,多個Fuse服務(wù)器121中的至少一個Fuse服務(wù)器121保存代碼文件和對應(yīng)關(guān)系信息;云執(zhí)行集群130用于從代碼管理服務(wù)器110中獲得需要執(zhí)行的應(yīng)用程序相應(yīng)的代碼文件所存儲的Fuse服務(wù)器121的地址,并根據(jù)需要執(zhí)行的應(yīng)用程序從Fuse服務(wù)器121中獲取相應(yīng)的代碼文件,其中,云執(zhí)行集群130包括多個Fuse客戶端131,多個Fuse客戶端131分別與代碼文件服務(wù)集群中的多個Fuse服務(wù)器121相連,以從多個Fuse服務(wù)器121中獲得相應(yīng)的代碼文件。
[0033]其中,代碼文件包括文件頭信息和文件內(nèi)容信息。
[0034]Fuse (Filesystem In Userspace,用戶空間文件系統(tǒng))是在Iinux等平臺上,用應(yīng)用程序?qū)崿F(xiàn)專用的文件系統(tǒng)的解決方案。其原理是在VFS (Virtual File System,虛擬文件系統(tǒng))層上面實(shí)現(xiàn)一種類型為Fuse的文件系統(tǒng),然后將VFS的各種請求發(fā)送給/dev/Fuse設(shè)備,用戶程序監(jiān)聽該設(shè)備的請求并進(jìn)行處理。Fuse能夠提高生產(chǎn)率,簡化為操作系統(tǒng)提供新的文件系統(tǒng)的工作量,特別適用于各種虛擬文件系統(tǒng)和網(wǎng)絡(luò)文件系統(tǒng)。[0035]因為Fuse的文件請求可以定制,這樣代碼文件可以不存放在本地機(jī)器,通過網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程訪問。云執(zhí)行系統(tǒng)100采用Fuse完成對代碼文件的訪問,下面參考圖2描述具體的一種實(shí)現(xiàn)方案。其中,代碼管理服務(wù)器110使用SVN,SVN是一種代碼版本管理軟件,本例中用戶的代碼提交到SVN提交模塊上,由SVN進(jìn)行統(tǒng)一的管理和版本控制。
[0036]本例中的云執(zhí)行系統(tǒng)100采用專門的文件服務(wù)器用來存放代碼文件。應(yīng)用程序的代碼不發(fā)至計算層機(jī)器上,而發(fā)至專門的代碼文件服務(wù)集群120。多個Fuse服務(wù)器121中的一部分Fuse服務(wù)器121保存代碼文件和對應(yīng)關(guān)系信息以相互構(gòu)成備份。代碼文件服務(wù)集群120對多個Fuse服務(wù)器121進(jìn)行壓力監(jiān)控,并對壓力超標(biāo)的Fuse服務(wù)器121進(jìn)行自動擴(kuò)容。
[0037]在計算層機(jī)器上,當(dāng)有文件請求時,云執(zhí)行集群130中的Fuse客戶端131從代碼文件服務(wù)集群中的Fuse服務(wù)器121得到對應(yīng)關(guān)系信息,提取訪問路徑,并定位到保存應(yīng)用程序的Fuse服務(wù)器121上,對代碼文件進(jìn)行請求。
[0038]具體地,云執(zhí)行集群130中的Fuse客戶端首先訪問文件的文件頭信息,然后訪問文件內(nèi)容信息。
[0039]Fuse客戶端131對獲得的相應(yīng)的代碼文件進(jìn)行緩存。由于計算層上對代碼文件的訪問比較密集(一般情況下流量在億級別),因此Fuse客戶端131對文件的文件頭信息以及文件內(nèi)容信息都做了緩存,避免每次訪問都請求文件服務(wù)器而導(dǎo)致文件服務(wù)器壓力過載。
[0040]Fuse客戶端131緩存原理如下:
[0041]在代碼文件的發(fā)布不頻繁的情況下,緩存在一個相當(dāng)長的時間內(nèi)是有效的。Fuse客戶端131記錄代碼文件的緩存時間,在緩存時間超過預(yù)設(shè)時間之后,更新文件頭信息,并將緩存的文件頭信息與更新的文件頭信息進(jìn)行比較,如果相同則維持文件內(nèi)容信息繼續(xù)有效。這樣能夠盡量減少對文件服務(wù)器請求。
[0042]Fuse客戶端131還用于在Fuse服務(wù)器121中保存的代碼文件更新之后,通知對應(yīng)的Fuse客戶端更新緩存。
[0043]可以理解的是,上述實(shí)現(xiàn)方案僅出于示例目的,本發(fā)明的實(shí)施例不限于此。
[0044]根據(jù)本發(fā)明實(shí)施例的云執(zhí)行系統(tǒng)不受限于應(yīng)用代碼的位置,計算層機(jī)器通過Fuse客戶端即可訪問代碼,計算層可以隨時將流量導(dǎo)向任何一個執(zhí)行單元。并且代碼文件發(fā)布到有限的代碼文件服務(wù)集群上,進(jìn)一步減少了代碼發(fā)布失敗的風(fēng)險。計算層與代碼文件的解耦減少了失敗風(fēng)險,提高了系統(tǒng)穩(wěn)定性。此外,本系統(tǒng)的靈活性高,可擴(kuò)展性好,并且通過緩存提高了訪問速度,緩解了服務(wù)器壓力。
[0045]下面參考圖2和圖3描述根據(jù)本發(fā)明實(shí)施例的云執(zhí)行方法,其中,圖2描述的是根據(jù)本發(fā)明實(shí)施例的具體的一種實(shí)現(xiàn)方案。代碼管理服務(wù)器使用SVN。SVN是一種代碼版本管理軟件,本例中用戶的代碼提交到SVN提交模塊上,由SVN進(jìn)行統(tǒng)一的管理和版本控制。
[0046]Fuse (Filesystem In Userspace,用戶空間文件系統(tǒng))是在Iinux等平臺上,用應(yīng)用程序?qū)崿F(xiàn)專用的文件系統(tǒng)的解決方案。其原理是在VFS (Virtual File System,虛擬文件系統(tǒng))層上面實(shí)現(xiàn)一種類型為Fuse的文件系統(tǒng),然后將VFS的各種請求發(fā)送給/dev/Fuse設(shè)備,用戶程序監(jiān)聽該設(shè)備的請求并進(jìn)行處理。Fuse能夠提高生產(chǎn)率,簡化為操作系統(tǒng)提供新的文件系統(tǒng)的工作量,特別適用于各種虛擬文件系統(tǒng)和網(wǎng)絡(luò)文件系統(tǒng)。
[0047]因為Fuse的文件請求可以定制,這樣代碼文件可以不存放在本地機(jī)器,通過網(wǎng)絡(luò)實(shí)現(xiàn)遠(yuǎn)程訪問。根據(jù)本發(fā)明實(shí)施例的云執(zhí)行方法采用Fuse完成對代碼文件的訪問,方法包括以下步驟:
[0048]步驟SllO:接收用戶上傳的代碼文件,并建立代碼文件與相應(yīng)的應(yīng)用程序之間的對應(yīng)關(guān)系信息。其中,代碼文件包括文件頭信息和文件內(nèi)容信息。
[0049]步驟S120:將代碼文件和對應(yīng)關(guān)系信息發(fā)送至代碼文件服務(wù)集群,其中,代碼文件服務(wù)集群包括多個用戶空間文件系統(tǒng)Fuse服務(wù)器,多個Fuse服務(wù)器中的至少一個Fuse服務(wù)器保存代碼文件和對應(yīng)關(guān)系信息。
[0050]在本發(fā)明的一個實(shí)施例中,多個Fuse服務(wù)器中的一部分Fuse服務(wù)器保存代碼文件和對應(yīng)關(guān)系信息以相互構(gòu)成備份。
[0051]代碼文件服務(wù)集群還對多個Fuse服務(wù)器進(jìn)行壓力監(jiān)控,并對壓力超標(biāo)的Fuse服務(wù)器進(jìn)行自動擴(kuò)容。
[0052]步驟S130:云執(zhí)行集群獲得需要執(zhí)行的應(yīng)用程序,并獲得需要執(zhí)行的應(yīng)用程序相應(yīng)的代碼文件所存儲的Fuse服務(wù)器的地址,其中,云執(zhí)行集群包括多個Fuse客戶端,多個Fuse客戶端分別與代碼文件服務(wù)集群中的多個Fuse服務(wù)器相連,以從多個Fuse服務(wù)器中獲得相應(yīng)的代碼文件。
[0053]在本發(fā)明的一個實(shí)施例中,F(xiàn)use客戶端對獲得的相應(yīng)的代碼文件進(jìn)行緩存。Fuse服務(wù)器在Fuse服務(wù)器中保存的代碼文件更新之后,通知對應(yīng)的Fuse客戶端更新緩存。
[0054]具體的,F(xiàn)use客戶端對響應(yīng)的代碼文件進(jìn)行緩存進(jìn)一步包括:
[0055]步驟S131:Fuse客戶端記錄代碼文件的緩存時間。
[0056]步驟S132:判斷緩存時間是否超過預(yù)設(shè)時間。
[0057]步驟S133:如果判斷緩存時間超過預(yù)設(shè)時間,則更新文件頭信息,并進(jìn)一步將緩存的文件頭信息與更新的文件頭信息進(jìn)行比較。
[0058]步驟S134:如果判斷緩存的文件頭信息與更新的文件頭信息相同,則維持文件內(nèi)容信息繼續(xù)有效。
[0059]步驟S135:如果判斷緩存的文件頭信息與更新的文件頭信息不同,則從Fuse服務(wù)器獲得更新的文件內(nèi)容信息。
[0060]步驟S140:云執(zhí)行集群根據(jù)需要執(zhí)行的應(yīng)用程序從Fuse服務(wù)器中獲取相應(yīng)的代碼文件。
[0061 ] 根據(jù)本發(fā)明實(shí)施例的云執(zhí)行方法采用專門的文件服務(wù)器用來存放代碼文件。應(yīng)用程序的代碼不發(fā)至計算層機(jī)器上,而發(fā)至專門的代碼文件服務(wù)集群。在計算層機(jī)器上,當(dāng)有文件請求時,云執(zhí)行集群中的Fuse客戶端從代碼文件服務(wù)集群中的Fuse服務(wù)器得到對應(yīng)關(guān)系信息,提取訪問路徑,并定位到保存應(yīng)用程序的Fuse服務(wù)器上,對代碼文件進(jìn)行請求。
[0062]可以理解的是,上述實(shí)現(xiàn)方案僅出于示例目的,本發(fā)明的實(shí)施例不限于此。
[0063]根據(jù)本發(fā)明實(shí)施例的云執(zhí)行方法不受限于應(yīng)用代碼的位置,計算層機(jī)器通過Fuse客戶端即可訪問代碼,計算層可以隨時將流量導(dǎo)向任何一個執(zhí)行單元。并且代碼文件發(fā)布到有限的代碼文件服務(wù)集群上,進(jìn)一步減少了代碼發(fā)布失敗的風(fēng)險。計算層與代碼文件的解耦減少了失敗風(fēng)險,提高了系統(tǒng)穩(wěn)定性。此外,本方法的靈活性高,可擴(kuò)展性好,并且通過緩存提高了訪問速度,緩解了服務(wù)器壓力。
[0064]在本說明書的描述中,參考術(shù)語“一個實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本發(fā)明的至少一個實(shí)施例或示例中。在本說明書中,對上述術(shù)語的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個或多個實(shí)施例或示例中以合適的方式結(jié)合。在本發(fā)明中,術(shù)語“多個”是指兩個或兩個以上。
[0065] 盡管已經(jīng)示出和描述了本發(fā)明的實(shí)施例,對于本領(lǐng)域的普通技術(shù)人員而言,可以理解在不脫離本發(fā)明的原理和精神的情況下可以對這些實(shí)施例進(jìn)行多種變化、修改、替換和變型,本發(fā)明的范圍由所附權(quán)利要求及其等同限定。
【權(quán)利要求】
1.一種云執(zhí)行系統(tǒng),其特征在于,包括代碼管理服務(wù)器、代碼文件服務(wù)集群和云執(zhí)行集群,其中, 所述代碼管理服務(wù)器,用于接收用戶上傳的代碼文件,并建立所述代碼文件與相應(yīng)的應(yīng)用程序之間的對應(yīng)關(guān)系信息,并將所述代碼文件和所述對應(yīng)關(guān)系信息發(fā)送至所述代碼文件服務(wù)集群; 所述代碼文件服務(wù)集群,用于保存所述代碼文件和所述對應(yīng)關(guān)系信息,其中,所述代碼文件服務(wù)集群包括多個用戶空間文件系統(tǒng)Fuse服務(wù)器,所述多個Fuse服務(wù)器中的至少一個Fuse服務(wù)器保存所述代碼文件和所述對應(yīng)關(guān)系信息;以及 所述云執(zhí)行集群,用于從所述代碼管理服務(wù)器中獲得需要執(zhí)行的應(yīng)用程序相應(yīng)的代碼文件所存儲的Fuse服務(wù)器的地址,并根據(jù)需要執(zhí)行的應(yīng)用程序從所述Fuse服務(wù)器中獲取相應(yīng)的代碼文件,其中,所述云執(zhí)行集群包括多個Fuse客戶端,所述多個Fuse客戶端分別與所述代碼文件服務(wù)集群中的多個Fuse服務(wù)器相連,以從所述多個Fuse服務(wù)器中獲得相應(yīng)的代碼文件。
2.如權(quán)利要求1所述的云執(zhí)行系統(tǒng),其特征在于,所述多個Fuse服務(wù)器中的一部分Fuse服務(wù)器保存所述代碼文件和所述對應(yīng)關(guān)系信息以相互構(gòu)成備份。
3.如權(quán)利要求1或2所述的云執(zhí)行系統(tǒng),其特征在于,所述代碼文件服務(wù)集群對所述多個Fuse服務(wù)器進(jìn)行壓力監(jiān)控,并對壓力超標(biāo)的Fuse服務(wù)器進(jìn)行自動擴(kuò)容。
4.如權(quán)利要求1-3任一項所述的云執(zhí)行系統(tǒng),其特征在于,所述代碼文件包括文件頭信息和文件內(nèi)容信息。
5.如權(quán)利要求4所述的云執(zhí)行系統(tǒng),其特征在于,所述Fuse客戶端對獲得的相應(yīng)的代碼文件進(jìn)行緩存。
6.如權(quán)利要求5所述的云執(zhí)行系統(tǒng),其特征在于,所述Fuse服務(wù)器還用于在所述Fuse服務(wù)器中保存的代碼文件更新之后,通知對應(yīng)的Fuse客戶端更新緩存。
7.如權(quán)利要求5所述的云執(zhí)行系統(tǒng),其特征在于,所述Fuse客戶端記錄所述代碼文件的緩存時間,在所述緩存時間超過預(yù)設(shè)時間之后,更新所述文件頭信息,并將緩存的文件頭信息與所述更新的文件頭信息進(jìn)行比較,如果相同則維持所述文件內(nèi)容信息繼續(xù)有效。
8.一種云執(zhí)行方法,其特征在于,包括以下步驟: 接收用戶上傳的代碼文件,并建立所述代碼文件與相應(yīng)的應(yīng)用程序之間的對應(yīng)關(guān)系信息; 將所述代碼文件和所述對應(yīng)關(guān)系信息發(fā)送至代碼文件服務(wù)集群,其中,所述代碼文件服務(wù)集群包括多個用戶空間文件系統(tǒng)Fuse服務(wù)器,所述多個Fuse服務(wù)器中的至少一個Fuse服務(wù)器保存所述代碼文件和所述對應(yīng)關(guān)系信息; 云執(zhí)行集群獲得需要執(zhí)行的應(yīng)用程序,并獲得所述需要執(zhí)行的應(yīng)用程序相應(yīng)的代碼文件所存儲的Fuse服務(wù)器的地址,其中,所述云執(zhí)行集群包括多個Fuse客戶端,所述多個Fuse客戶端分別與所述代碼文件服務(wù)集群中的多個Fuse服務(wù)器相連,以從所述多個Fuse服務(wù)器中獲得相應(yīng)的代碼文件;以及 所述云執(zhí)行集群根據(jù)需要執(zhí)行的應(yīng)用程序從所述Fuse服務(wù)器中獲取相應(yīng)的代碼文件。
9.如權(quán)利要求8所述的云執(zhí)行方法,其特征在于,所述多個Fuse服務(wù)器中的一部分Fuse服務(wù)器保存所述代碼文件和所述對應(yīng)關(guān)系信息以相互構(gòu)成備份。
10.如權(quán)利要求8所述的云執(zhí)行方法,其特征在于,還包括: 所述代碼文件服務(wù)集群對所述多個Fuse服務(wù)器進(jìn)行壓力監(jiān)控,并對壓力超標(biāo)的Fuse服務(wù)器進(jìn)行自動擴(kuò)容。
11.如權(quán)利要求8所述的云執(zhí)行方法,其特征在于,所述代碼文件包括文件頭信息和文件內(nèi)容信息。
12.如權(quán)利要求11所述的云執(zhí)行系統(tǒng),其特征在于,還包括: 所述Fuse客戶端對獲得的相應(yīng)的代碼文件進(jìn)行緩存。
13.如權(quán)利要求12所述的云執(zhí)行方法,其特征在于,還包括: 所述Fuse服務(wù)器在所述Fuse服務(wù)器中保存的代碼文件更新之后,通知對應(yīng)的Fuse客戶端更新緩存。
14. 如權(quán)利要求12所述的云執(zhí)行方法,其特征在于,還包括: 所述Fuse客戶端記錄所述代碼文件的緩存時間; 判斷所述緩存時間是否超過預(yù)設(shè)時間; 如果判斷所述緩存時間超過所述預(yù)設(shè)時間,則更新所述文件頭信息,并進(jìn)一步將緩存的文件頭信息與所述更新的文件頭信息進(jìn)行比較; 如果判斷所述緩存的文件頭信息與所述更新的文件頭信息相同,則維持所述文件內(nèi)容信息繼續(xù)有效;以及 如果判斷所述緩存的文件頭信息與所述更新的文件頭信息不同,則從所述Fuse服務(wù)器獲得更新的文件內(nèi)容信息。
【文檔編號】H04L29/06GK103685348SQ201210322669
【公開日】2014年3月26日 申請日期:2012年9月3日 優(yōu)先權(quán)日:2012年9月3日
【發(fā)明者】陳思, 杜熙, 肖偉, 丁文斌 申請人:百度在線網(wǎng)絡(luò)技術(shù)(北京)有限公司