一種基于容器的分布式存儲系統(tǒng)部署方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及分布式存儲系統(tǒng),特別涉及一種基于容器的分布式存儲系統(tǒng)的部署方法。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)時代的到來,微博、微信、位置服務(wù)等面向普通互聯(lián)網(wǎng)用戶的社交網(wǎng)站正在蓬勃興起,互聯(lián)網(wǎng)界的巨頭公司向數(shù)以億計的用戶提供著基于互聯(lián)網(wǎng)的各種服務(wù)。遍布世界各地的互聯(lián)網(wǎng)用戶每天都在網(wǎng)上發(fā)布信息,他們產(chǎn)生的這些是個人計算機的數(shù)據(jù)量的數(shù)倍。
[0003]互聯(lián)網(wǎng)公司通常采用高性能服務(wù)器來存儲這些數(shù)據(jù)。但是普通的存儲系統(tǒng)已經(jīng)無法支撐越來越多的用戶數(shù)據(jù),而且斷電、災(zāi)害和系統(tǒng)故障使得數(shù)據(jù)的安全性很難保證。為了隨時應(yīng)對激增的用戶請求,越來多的公司采用分布式存儲系統(tǒng)。分布式存儲系統(tǒng)具有高可靠性、高可用性和擴展性,可以避免由于單個節(jié)點失效而使整個系統(tǒng)崩潰的危險,可以將分布在各處的資源綜合利用,同時可以將負載由單個節(jié)點轉(zhuǎn)移到多個,從而提高了存儲系統(tǒng)的性能。
【發(fā)明內(nèi)容】
[0004]本發(fā)明提供一種基于容器的分布式存儲系統(tǒng)的部署方法,其特征在于開發(fā)人員通過容器倉庫,將分布式存儲系統(tǒng)以鏡像的方式打包推送到鏡像倉庫,測試和運維人員從鏡像倉庫獲取分布式存儲系統(tǒng)的鏡像完成集群節(jié)點的部署。
[0005]進一步包括,所述鏡像是通過運行一個基礎(chǔ)的操作系統(tǒng)容器,在所述容器內(nèi)完成新版本的分布式存儲系統(tǒng)的代碼的編譯,并將容器打包獲取的,所述代碼為經(jīng)版本控制的某個版本的代碼。
[0006]進一步包括,所述某個版本的代碼是指經(jīng)個人計算機修改后的代碼的合并。
[0007]進一步包括,在所述分布式存儲系統(tǒng)的鏡像完成集群節(jié)點的部署前,在多個節(jié)點上運行分布式存儲系統(tǒng)相應(yīng)的容器,完成分布式存儲系統(tǒng)的搭建和測試。
[0008]進一步地,所述容器使用Docker。
[0009]進一步地,所述版本控制使用Git。
[0010]本發(fā)明還提供一種基于容器的分布式存儲系統(tǒng)的部署系統(tǒng),包括鏡像推送服務(wù)器,運行一個基礎(chǔ)的操作系統(tǒng)容器,在所述容器內(nèi)完成新版本的分布式存儲系統(tǒng)的代碼的編譯,并將所述容器打包為鏡像,推送所述鏡像到鏡像倉庫服務(wù)器;鏡像倉庫服務(wù)器,用于提供所述容器鏡像存儲;分布式存儲系統(tǒng)集群,從所述鏡像倉庫服務(wù)器獲取所述鏡像,然后在多個節(jié)點上運行分布式存儲系統(tǒng)相應(yīng)的容器,完成分布式存儲系統(tǒng)的搭建。
[0011]進一步包括,代碼版本控制服務(wù)器,用于分布式存儲系統(tǒng)的代碼存儲和版本控制,并向所述鏡像推送服務(wù)器提供某個版本的代碼。
[0012]進一步包括,個人計算機,從代碼版本控制服務(wù)器獲得代碼的一個拷貝,在所述個人計算機上對代碼進行修改,將修改后的代碼推送到代碼版本控制服務(wù)器,在所述代碼版本控制服務(wù)器上完成代碼的合并,形成一個新的版本。
[0013]進一步包括,版本測試服務(wù)器,從鏡像倉庫服務(wù)器獲取最新版本的鏡像,在多個節(jié)點上運行分布式存儲系統(tǒng)相應(yīng)的容器,完成分布式存儲系統(tǒng)的搭建和測試。
[0014]進一步包括,如果測試通過,所述版本可作為分布式存儲系統(tǒng)的新版本發(fā)布,如果測試沒有通過,則需要進行修改代碼,再次創(chuàng)建新版本的容器。
[0015]進一步地,所述容器使用Docker。
[0016]進一步地,所述代碼版本控制服務(wù)器使用Git。
[0017]按照本發(fā)明所提供的上述方法,本發(fā)明取得了如下有益的技術(shù)效果:
[0018]?持續(xù)部署與測試
[0019]通常,運維人員為了保證生產(chǎn)環(huán)境和測試環(huán)境的一致性,需要在生產(chǎn)環(huán)境安裝依賴和修改配置,浪費了大量的時間和精力。采用容器技術(shù),可以保證從開發(fā)到產(chǎn)品發(fā)布整個過程環(huán)境的一致性。
[0020]籲版本控制
[0021]分布式存儲軟件在發(fā)布時的形式是鏡像,在運行時的形式為輕量級的容器。由于容器在操作系統(tǒng)中是一個進程,所以軟件的版本更新和回退不需要修改操作系統(tǒng)的任何依賴。
[0022]?可移植性
[0023]分布式存儲軟件的運行對生產(chǎn)環(huán)境的操作系統(tǒng)發(fā)行版沒有要求,目前很多云計算虛擬平臺已經(jīng)支持了鏡像方式部署。
[0024]?隔離性
[0025]這種部署方式能夠確保每個容器都擁有自己的資源,并且和其他容器是隔離的。如果采用傳統(tǒng)軟件的部署方式,想在服務(wù)器上直接刪除一些應(yīng)用程序是比較困難的,因為這樣可能引發(fā)依賴關(guān)系沖突,而這種部署方式可以確保應(yīng)用程序被完全清除,因為不同的應(yīng)用程序運行在不同的容器上。如果運維人員不需要一款應(yīng)用程序,可以簡單地通過刪除容器來刪除這個應(yīng)用程序,并且在操作系統(tǒng)上不會留下任何的臨時文件或者配置文件。
[0026]?安全性
[0027]這種部署方式能確保運行在容器中的應(yīng)用程序和其他容器中的應(yīng)用程序是完全隔離的。
[0028]本發(fā)明的其它特征和優(yōu)點將在隨后的說明書中闡述,并且,部分地從說明書中變得顯而易見,或者通過實施本發(fā)明而了解。本發(fā)明的目的和其他優(yōu)點可通過在說明書、權(quán)利要求書以及附圖中所特別指出的結(jié)構(gòu)來實現(xiàn)和獲得。
【附圖說明】
[0029]附圖用來提供對本發(fā)明技術(shù)方案的進一步理解,并且構(gòu)成說明書的一部分,與本申請的實施例一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對本發(fā)明技術(shù)方案的限制。
[0030]圖1示出了根據(jù)本發(fā)明的一實施例的一種基于容器的分布式存儲系統(tǒng)的部署架構(gòu)。
【具體實施方式】
[0031]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下文中將結(jié)合附圖對本發(fā)明的實施例進行詳細說明。需要說明的是,在不沖突的情況下,本申請中的實施例中的特征可以相互任意組合。
[0032]圖1示出了根據(jù)本發(fā)明的一實施例的一種基于容器的分布式存儲系統(tǒng)的部署架構(gòu)。所述基于容器的分布式存儲系統(tǒng)部署涉及個人計算機、代碼版本控制服務(wù)器、鏡像推送服務(wù)器、鏡像倉庫服務(wù)器、版本測試服務(wù)器以及分布式存儲系統(tǒng)集群。其中,
[0033]代碼版本控制服務(wù)器,用于分布式存儲系統(tǒng)的代碼存儲和版本控制,開發(fā)人員可以基于該服務(wù)器上的代碼修改并提交修改后的代碼。
[0034]個人計算機,開發(fā)人員從代碼版本控制服務(wù)器獲得代碼的一個拷貝,在個人計算機上對代碼進一步地進行修改,將修改后的代碼推送到代碼版本控制服務(wù)器,然后在該服務(wù)器上完成代碼的合并,最終形成一個新的版本。
[0035]鏡像推送服務(wù)器,開發(fā)人員從代碼版