一種網(wǎng)站應(yīng)用部署方法
【專利摘要】本發(fā)明提供了一種網(wǎng)站應(yīng)用部署方法,包括步驟:在預(yù)設(shè)的預(yù)上線環(huán)境運(yùn)行網(wǎng)站應(yīng)用部署所需的代碼以進(jìn)行模擬網(wǎng)站應(yīng)用部署;預(yù)上線環(huán)境包括與網(wǎng)站應(yīng)用部署的目標(biāo)生產(chǎn)環(huán)境配置相同的虛擬機(jī);校驗(yàn)并修正代碼至代碼運(yùn)行正確;將代碼同步至根據(jù)目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī);將網(wǎng)站應(yīng)用的流量切換至目標(biāo)虛擬機(jī)。本發(fā)明實(shí)施例中的部署方式對(duì)于用戶來(lái)說只是修改了用戶的訪問流量的目標(biāo)設(shè)備,所以不需要暫停網(wǎng)站應(yīng)用,用戶的訪問并不受影響,由于通過本發(fā)明實(shí)施例,使得網(wǎng)站應(yīng)用的部署對(duì)于用戶來(lái)說是透明的,所以避免了由于網(wǎng)站應(yīng)用的部署所造成的用戶體驗(yàn)的影響。
【專利說明】一種網(wǎng)站應(yīng)用部署方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及編程領(lǐng)域,更具體的說,是涉及一種網(wǎng)站應(yīng)用部署方法。
【背景技術(shù)】
[0002]手動(dòng)拷貝源代碼到生產(chǎn)環(huán)境中以部署網(wǎng)站應(yīng)用的方式,需要在多個(gè)設(shè)備中執(zhí)行相同的操作,這種方式不但費(fèi)時(shí)費(fèi)力,還容易由于工作人員的誤操作造成錯(cuò)誤。
[0003]為此,現(xiàn)有技術(shù)中,通過部署工具來(lái)實(shí)現(xiàn)集群化部署來(lái)提高部署效率。具體的,可以通過webistrano這一開源的應(yīng)用部署平臺(tái),使用開源ruby自動(dòng)部署工具capistrano來(lái)實(shí)現(xiàn)自動(dòng)部署,即,如圖1所示,通過webistrano實(shí)現(xiàn)頁(yè)面調(diào)用capistrano做具體命令;其中,projects部分為網(wǎng)站應(yīng)用的列表,hosts部分為應(yīng)用服務(wù)器的列表,recipes部分為部署前后需要執(zhí)行的腳本片段列表,users部分為用戶列表。這樣,針對(duì)于某一個(gè)網(wǎng)站應(yīng)用部署,只需要事先配置好這個(gè)網(wǎng)站應(yīng)用具體部署在那些host上面,部署過程需要執(zhí)行哪些腳本,就可以實(shí)現(xiàn)一鍵式的應(yīng)用部署。
[0004]但是,發(fā)明人經(jīng)過研究發(fā)現(xiàn),現(xiàn)有技術(shù)中的自動(dòng)部署方式至少存在有以下缺陷:
[0005]在實(shí)現(xiàn)自動(dòng)部署的過程中,需要暫停相應(yīng)的網(wǎng)站應(yīng)用,由于在實(shí)現(xiàn)自動(dòng)部署的過程中,會(huì)使得用戶無(wú)法訪問相應(yīng)的服務(wù),從而影響用戶體驗(yàn)。
【發(fā)明內(nèi)容】
[0006]有鑒于此,本發(fā)明提供了一種網(wǎng)站應(yīng)用部署方法,以實(shí)現(xiàn)提高用戶體驗(yàn)的目的。
[0007]為實(shí)現(xiàn)上述目的,本發(fā)明提供如下技術(shù)方案:
[0008]一種網(wǎng)站應(yīng)用部署方法,包括步驟:
[0009]在預(yù)設(shè)的預(yù)上線環(huán)境運(yùn)行所述網(wǎng)站應(yīng)用部署所需的代碼以進(jìn)行模擬網(wǎng)站應(yīng)用部署;所述預(yù)上線環(huán)境包括與所述網(wǎng)站應(yīng)用部署的目標(biāo)生產(chǎn)環(huán)境配置相同的虛擬機(jī);
[0010]校驗(yàn)并修正所述代碼至所述代碼運(yùn)行正確;
[0011]將所述代碼同步至根據(jù)所述目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī);
[0012]將所述網(wǎng)站應(yīng)用的流量切換至所述目標(biāo)虛擬機(jī)。
[0013]優(yōu)選的,在本發(fā)明實(shí)施例中,所述網(wǎng)站應(yīng)用部署基于openstack IAAS平臺(tái)管理系統(tǒng);
[0014]采用的網(wǎng)站應(yīng)用部署工具為webistrano。
[0015]優(yōu)選的,在本發(fā)明實(shí)施例中,通過openstackagent組件實(shí)現(xiàn)所述webistrano調(diào)用所述openstack IAAS平臺(tái)管理系統(tǒng)的底層api進(jìn)行虛擬機(jī)的自動(dòng)化部署。
[0016]優(yōu)選的,在本發(fā)明實(shí)施例中,所述將所述代碼同步至根據(jù)所述目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī),包括步驟:
[0017]判斷是否已預(yù)設(shè)所述目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)鏡像;
[0018]如果是,根據(jù)所述虛擬機(jī)鏡像生成目標(biāo)虛擬機(jī);
[0019]如果否,根據(jù)所述預(yù)上線環(huán)境創(chuàng)建虛擬機(jī)鏡像,根據(jù)所述虛擬機(jī)鏡像生成目標(biāo)虛擬機(jī)。
[0020]優(yōu)選的,在本發(fā)明實(shí)施例中,所述將所述代碼同步至根據(jù)所述目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī),包括步驟:
[0021 ] 啟動(dòng)所述目標(biāo)虛擬機(jī);
[0022]使用rsync工具將進(jìn)行模擬網(wǎng)站應(yīng)用部署的代碼同步到所述目標(biāo)虛擬機(jī)。
[0023]優(yōu)選的,在本發(fā)明實(shí)施例中,所述將所述網(wǎng)站應(yīng)用的流量切換至所述目標(biāo)虛擬機(jī),包括:
[0024]通過所述openstackagent組件中的nginx模塊進(jìn)行流量切換。
[0025]優(yōu)選的,在本發(fā)明實(shí)施例中,所述判斷是否已預(yù)設(shè)所述目標(biāo)生產(chǎn)環(huán)境,包括:
[0026]預(yù)設(shè)所述預(yù)上線環(huán)境的虛擬機(jī)包括與已有的所述目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)相同的標(biāo)識(shí);
[0027]通過識(shí)別所述預(yù)上線環(huán)境的虛擬機(jī)是否包括標(biāo)識(shí)判斷是否已預(yù)設(shè)所述目標(biāo)生產(chǎn)環(huán)境。
[0028]經(jīng)由上述的技術(shù)方案可知,在本發(fā)明實(shí)施例中,通過在預(yù)設(shè)的預(yù)上線環(huán)境運(yùn)行所述網(wǎng)站應(yīng)用部署所需的代碼以進(jìn)行模擬網(wǎng)站應(yīng)用部署,由于預(yù)上線環(huán)境包括了與所述網(wǎng)站應(yīng)用部署的目標(biāo)生產(chǎn)環(huán)境配置相同的虛擬機(jī)從而可以預(yù)先對(duì)代碼進(jìn)行校驗(yàn);這樣,在通過將代碼同步至根據(jù)目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī)后,以將網(wǎng)站應(yīng)用的流量切換至目標(biāo)虛擬機(jī)的方式實(shí)現(xiàn)網(wǎng)站應(yīng)用的實(shí)際部署。本發(fā)明實(shí)施例中的部署方式對(duì)于用戶來(lái)說只是修改了用戶的訪問流量的目標(biāo)設(shè)備,所以不需要暫停網(wǎng)站應(yīng)用,用戶的訪問并不受影響,由于通過本發(fā)明實(shí)施例,使得網(wǎng)站應(yīng)用的部署對(duì)于用戶來(lái)說是透明的,所以避免了由于網(wǎng)站應(yīng)用的部署所造成的用戶體驗(yàn)的影響。
【專利附圖】
【附圖說明】
[0029]為了更清楚地說明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0030]圖1為現(xiàn)有技術(shù)中使用自動(dòng)部署工具capistrano來(lái)實(shí)現(xiàn)自動(dòng)部署的操作界面示意圖;
[0031]圖2為本發(fā)明實(shí)施例中所述網(wǎng)站應(yīng)用部署方法的步驟示意圖;
[0032]圖3為本發(fā)明實(shí)施例中所述網(wǎng)站應(yīng)用部署平臺(tái)的構(gòu)架示意圖;
[0033]圖4為本發(fā)明實(shí)施例中所述網(wǎng)站應(yīng)用部署平臺(tái)的構(gòu)架又一示意圖;
[0034]圖5為本發(fā)明實(shí)施例中所述將代碼同步至根據(jù)目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī)的步驟示意圖;
[0035]圖6為本發(fā)明實(shí)施例中所述網(wǎng)站應(yīng)用部署方法的流程示意圖。
【具體實(shí)施方式】
[0036]下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0037]本發(fā)明提供了一種網(wǎng)站應(yīng)用部署方法,如圖2所示,包括步驟:
[0038]S11、在預(yù)設(shè)的預(yù)上線環(huán)境運(yùn)行網(wǎng)站應(yīng)用部署所需的代碼以進(jìn)行模擬網(wǎng)站應(yīng)用部署;預(yù)上線環(huán)境包括與網(wǎng)站應(yīng)用部署的目標(biāo)生產(chǎn)環(huán)境配置相同的虛擬機(jī);
[0039]在本發(fā)明實(shí)施例中,預(yù)上線環(huán)境是指包括與實(shí)際應(yīng)用的目標(biāo)生產(chǎn)環(huán)境相同虛擬機(jī)的環(huán)境。預(yù)上線環(huán)境用于實(shí)現(xiàn)對(duì)網(wǎng)站應(yīng)用部署所需的代碼的校驗(yàn),即,通過在預(yù)上線環(huán)境運(yùn)行網(wǎng)站應(yīng)用部署所需的代碼進(jìn)行模擬網(wǎng)站應(yīng)用部署來(lái)驗(yàn)證代碼是否正確。
[0040]在實(shí)際應(yīng)用中,本發(fā)明實(shí)施例中可以通過將openstack和webistrano兩個(gè)開源應(yīng)用相結(jié)合來(lái)實(shí)現(xiàn)網(wǎng)站應(yīng)用的部署,即,網(wǎng)站應(yīng)用部署可以基于openstackIAAS平臺(tái)管理系統(tǒng),這樣,預(yù)上線環(huán)境具體的就可以采用的網(wǎng)站應(yīng)用部署工具webistrano來(lái)實(shí)現(xiàn)。
[0041]將openstack和webistrano兩個(gè)開源應(yīng)用相結(jié)合后,構(gòu)成的網(wǎng)站應(yīng)用部署平臺(tái)如圖3所示,主要分為代理層、緩存層、應(yīng)用層以及存儲(chǔ)層;通過openstackagent組件可以實(shí)現(xiàn)webistrano調(diào)用openstack IAAS平臺(tái)管理系統(tǒng)的底層api進(jìn)行虛擬機(jī)的自動(dòng)化部署。
[0042]如圖4所示,在本發(fā)明實(shí)施例中,webistrano這一自動(dòng)化部署工具為基于cabistrano的ruby on rails的自動(dòng)化部署的web站點(diǎn),通過webistrano可以進(jìn)行網(wǎng)站應(yīng)用的自動(dòng)化部署;openstackagent組件為用于溝通webistrano與底層openstack的中間件,通過openstackagent組件可以實(shí)現(xiàn)webistrano調(diào)用底層openstack的api進(jìn)行虛擬機(jī)的自動(dòng)化部署;openstack IAAS平臺(tái)管理系統(tǒng)為基于openstack (G版本)搭建的IAAS平臺(tái),通過openstack IAAS平臺(tái)管理系統(tǒng)可以實(shí)現(xiàn)對(duì)底層硬件的虛擬化,并管理這些虛擬化資源;openstack webinterface組件屬于openstack IAAS平臺(tái)的一部分,通過這個(gè)openstack webinterface可以實(shí)現(xiàn)與底層平臺(tái)的交互通訊。
[0043]S12、校驗(yàn)并修正代碼至代碼運(yùn)行正確;
[0044]在預(yù)設(shè)了預(yù)上線環(huán)境后,在預(yù)設(shè)的預(yù)上線環(huán)境運(yùn)行網(wǎng)站應(yīng)用部署所需的代碼以進(jìn)行模擬網(wǎng)站應(yīng)用部署,就可以得知代碼是否正確,如果有錯(cuò)誤,可以在修改代碼后再次在預(yù)上線環(huán)境運(yùn)行代碼進(jìn)行進(jìn)一步的校驗(yàn),直至代碼完全正確。
[0045]通過對(duì)代碼的校驗(yàn)和修正,從而可以保證代碼用于正式的網(wǎng)站應(yīng)用部署時(shí)的正確性。
[0046]S13、將代碼同步至根據(jù)目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī);
[0047]在確認(rèn)了代碼的正確性后,就可以將代碼應(yīng)用于根據(jù)目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī)中了,具體的,可以采用將在預(yù)上線環(huán)境運(yùn)行代碼同步至目標(biāo)虛擬機(jī)的方式。
[0048]在實(shí)際應(yīng)用中,將代碼同步至根據(jù)目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī)的步驟具體可以如圖5所示,包括:
[0049]S21、判斷是否已預(yù)設(shè)目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)鏡像;
[0050]判斷是否已預(yù)設(shè)目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)鏡像是為了確定應(yīng)該由哪一個(gè)鏡像來(lái)生成目標(biāo)虛擬機(jī)。
[0051]在實(shí)際應(yīng)用中,判斷是否已預(yù)設(shè)所述目標(biāo)生產(chǎn)環(huán)境,具體可以包括:
[0052]預(yù)設(shè)預(yù)上線環(huán)境的虛擬機(jī)包括與已有的目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)相同的標(biāo)識(shí);通過識(shí)別預(yù)上線環(huán)境的虛擬機(jī)是否包括標(biāo)識(shí)判斷是否已預(yù)設(shè)目標(biāo)生產(chǎn)環(huán)境。也就是說,在預(yù)設(shè)預(yù)上線環(huán)境的時(shí)候,將預(yù)上線環(huán)境的虛擬機(jī)的標(biāo)識(shí)設(shè)置為已有的目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)相同,這樣,通過識(shí)別預(yù)上線環(huán)境的虛擬機(jī)是否包括標(biāo)識(shí)就可以得知是否已預(yù)設(shè)目標(biāo)生產(chǎn)環(huán)境。
[0053]S22、如果是,根據(jù)虛擬機(jī)鏡像生成目標(biāo)虛擬機(jī);
[0054]在確定了已預(yù)設(shè)了目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)鏡像后,就可以根據(jù)這一確定的虛擬機(jī)鏡像生成目標(biāo)虛擬機(jī)。
[0055]S23、如果否,根據(jù)預(yù)上線環(huán)境創(chuàng)建虛擬機(jī)鏡像,根據(jù)虛擬機(jī)鏡像生成目標(biāo)虛擬機(jī)。
[0056]如果確定沒有預(yù)設(shè)目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)鏡像,那么,此時(shí)就可以根據(jù)預(yù)上線環(huán)境創(chuàng)建虛擬機(jī)鏡像,根據(jù)虛擬機(jī)鏡像生成目標(biāo)虛擬機(jī),即,將預(yù)上線環(huán)境創(chuàng)建虛擬機(jī)鏡像作為目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)鏡像,并依此虛擬機(jī)鏡像來(lái)生成目標(biāo)虛擬機(jī)。
[0057]在實(shí)際應(yīng)用中,根據(jù)目標(biāo)生產(chǎn)環(huán)境通過openstack IAAS部署平臺(tái)而配置生成相應(yīng)配置的目標(biāo)虛擬機(jī)時(shí),配置項(xiàng)具體可以包括內(nèi)存、CPU個(gè)數(shù)和虛擬機(jī)數(shù)量等。
[0058]S24、啟動(dòng)目標(biāo)虛擬機(jī);
[0059]具體的,在生成目標(biāo)虛擬機(jī)后,可以自動(dòng)的執(zhí)行目標(biāo)虛擬機(jī)中的開機(jī)啟動(dòng)shell腳本,所述shell腳本預(yù)置也在預(yù)上線環(huán)境中的虛擬機(jī)內(nèi)。
[0060]S25、使用rsync工具將進(jìn)行模擬網(wǎng)站應(yīng)用部署的代碼同步到目標(biāo)虛擬機(jī)。
[0061]在實(shí)際應(yīng)用中,shell腳本主要使用rsync工具將預(yù)上線環(huán)境中所運(yùn)行的代碼同步到目標(biāo)虛擬機(jī)中,從而使得目標(biāo)虛擬機(jī)中的代碼和預(yù)上線環(huán)境中所運(yùn)行的代碼保持一致。
[0062]S14、將所述網(wǎng)站應(yīng)用的流量切換至所述目標(biāo)虛擬機(jī)。
[0063]本發(fā)明實(shí)施例中,可以通過openstackagent組件實(shí)現(xiàn)webistrano調(diào)用openstackIAAS平臺(tái)管理系統(tǒng)的底層api進(jìn)行虛擬機(jī)的自動(dòng)化部署;這樣,通過openstackagent組件中的nginx模塊進(jìn)行更新配置,這樣,進(jìn)行流量切換后,用戶的訪問流量就可以轉(zhuǎn)換至目標(biāo)虛擬機(jī)了。
[0064]本發(fā)明實(shí)時(shí)的具體流程可以如圖6所示,首先,網(wǎng)站應(yīng)用部署平臺(tái)設(shè)置了預(yù)上線環(huán)境的概念,即,在每一次對(duì)目標(biāo)生產(chǎn)環(huán)境部署前,首先將代碼在預(yù)上線環(huán)境這一模擬版本上進(jìn)行模擬運(yùn)行,以保證部署到目標(biāo)生產(chǎn)環(huán)境的代碼的正確性。在預(yù)上線環(huán)境可以使用原版的Webistrano進(jìn)行部署。
[0065]通過在預(yù)上線環(huán)境中模擬運(yùn)行代碼確定代碼沒有錯(cuò)誤后,進(jìn)入部署目標(biāo)生產(chǎn)環(huán)境的操作。網(wǎng)站應(yīng)用部署平臺(tái)判斷是否提供預(yù)上線環(huán)境虛擬機(jī)的標(biāo)識(shí),如果有,部網(wǎng)站應(yīng)用署平臺(tái)調(diào)用openstack底層的生成鏡像api將預(yù)上線環(huán)境的虛擬機(jī)做一個(gè)快照,并將此快照作為目標(biāo)生產(chǎn)環(huán)境的鏡像;如果沒有預(yù)上線環(huán)境虛擬機(jī)的標(biāo)識(shí),則使用預(yù)置好的鏡像作為生成目標(biāo)生產(chǎn)環(huán)境的鏡像。然后使用目標(biāo)生成生產(chǎn)環(huán)境的鏡像根據(jù)網(wǎng)站部署平臺(tái)中的配置生成相應(yīng)配置的目標(biāo)虛擬機(jī),配置項(xiàng)具體可以包括內(nèi)存、cpu個(gè)數(shù)和虛擬機(jī)數(shù)量等。生成目標(biāo)虛擬機(jī)完畢后,通過自動(dòng)執(zhí)行目標(biāo)虛擬機(jī)中的開機(jī)啟動(dòng)shell腳本(該腳本預(yù)置也在預(yù)上線環(huán)境的虛擬機(jī)中)。此段shell腳本主要使用rsync工具將預(yù)上線環(huán)境所運(yùn)行的代碼同步到目標(biāo)虛擬機(jī)中,從而使得目標(biāo)虛擬機(jī)中的代碼和預(yù)上線環(huán)境所運(yùn)行的代碼保持一致。最后代理層nginx會(huì)更新配置,將流量切換至新生成的目標(biāo)虛擬機(jī)上,至此,即完成了整個(gè)網(wǎng)站應(yīng)用的部署流程。[0066]綜上所述,在本發(fā)明實(shí)施例中,通過在預(yù)設(shè)的預(yù)上線環(huán)境運(yùn)行所述網(wǎng)站應(yīng)用部署所需的代碼以進(jìn)行模擬網(wǎng)站應(yīng)用部署,由于預(yù)上線環(huán)境包括了與所述網(wǎng)站應(yīng)用部署的目標(biāo)生產(chǎn)環(huán)境配置相同的虛擬機(jī)從而可以預(yù)先對(duì)代碼進(jìn)行校驗(yàn);這樣,在通過將代碼同步至根據(jù)目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī)后,以將網(wǎng)站應(yīng)用的流量切換至目標(biāo)虛擬機(jī)的方式實(shí)現(xiàn)網(wǎng)站應(yīng)用的實(shí)際部署。本發(fā)明實(shí)施例中的部署方式對(duì)于用戶來(lái)說只是修改了用戶的訪問流量的目標(biāo)設(shè)備,所以不需要暫停網(wǎng)站應(yīng)用,用戶的訪問并不受影響,由于通過本發(fā)明實(shí)施例,使得網(wǎng)站應(yīng)用的部署對(duì)于用戶來(lái)說是透明的,所以避免了由于網(wǎng)站應(yīng)用的部署所造成的用戶體驗(yàn)的影響。
[0067]此外,通過本發(fā)明實(shí)施例,在發(fā)布正式環(huán)境(B卩,目標(biāo)生產(chǎn)環(huán)境)的時(shí)候,可以配置需要生成的目標(biāo)生產(chǎn)環(huán)境虛擬機(jī)的個(gè)數(shù),從而實(shí)現(xiàn)了集群化部署,在用戶量增長(zhǎng)的情況下,可以通過更改部署時(shí)目標(biāo)生產(chǎn)環(huán)境虛擬機(jī)的個(gè)數(shù)來(lái)動(dòng)態(tài)的滿足用戶需求,實(shí)現(xiàn)彈性計(jì)算。
[0068]此外,通過本發(fā)明實(shí)施例,在整個(gè)網(wǎng)站應(yīng)用部署過程中,只需要工作人員點(diǎn)擊一下按鈕,就可以完成所有的網(wǎng)站應(yīng)用部署任務(wù),從而實(shí)現(xiàn)了網(wǎng)站應(yīng)用部署的自動(dòng)化。
[0069]此外,通過本發(fā)明實(shí)施例中的每一次部署都是使用鏡像動(dòng)態(tài)生成的目標(biāo)虛擬機(jī),保證了每次新部署網(wǎng)站應(yīng)用的時(shí)候都能夠快速的創(chuàng)建目標(biāo)生產(chǎn)環(huán)境,無(wú)需手動(dòng)安裝一些生產(chǎn)環(huán)境依賴的軟件。
[0070]本說明書中各個(gè)實(shí)施例采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似部分互相參見即可。對(duì)于實(shí)施例提供的裝置而言,由于其與實(shí)施例提供的方法相對(duì)應(yīng),所以描述的比較簡(jiǎn)單,相關(guān)之處參見方法部分說明即可。
[0071]對(duì)所提供的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所提供的原理和新穎特點(diǎn)相一致的最寬的范圍。
【權(quán)利要求】
1.一種網(wǎng)站應(yīng)用部署方法,其特征在于,包括步驟: 在預(yù)設(shè)的預(yù)上線環(huán)境運(yùn)行所述網(wǎng)站應(yīng)用部署所需的代碼以進(jìn)行模擬網(wǎng)站應(yīng)用部署;所述預(yù)上線環(huán)境包括與所述網(wǎng)站應(yīng)用部署的目標(biāo)生產(chǎn)環(huán)境配置相同的虛擬機(jī); 校驗(yàn)并修正所述代碼至所述代碼運(yùn)行正確; 將所述代碼同步至根據(jù)所述目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī); 將所述網(wǎng)站應(yīng)用的流量切換至所述目標(biāo)虛擬機(jī)。
2.根據(jù)權(quán)利要求1中所述網(wǎng)站應(yīng)用部署方法,其特征在于,所述網(wǎng)站應(yīng)用部署基于openstack IAAS平臺(tái)管理系統(tǒng); 采用的網(wǎng)站應(yīng)用部署工具為webistrano。
3.根據(jù)權(quán)利要求2所述網(wǎng)站應(yīng)用部署方法,其特征在于, 通過openstackagent組件實(shí)現(xiàn)所述webistrano調(diào)用所述openstack IAAS平臺(tái)管理系統(tǒng)的底層api進(jìn)行虛擬機(jī)的自動(dòng)化部署。
4.根據(jù)權(quán)利要求3中所述網(wǎng)站應(yīng)用部署方法,其特征在于,所述將所述代碼同步至根據(jù)所述目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī),包括步驟: 判斷是否已預(yù)設(shè)所述目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)鏡像; 如果是,根據(jù)所述虛擬機(jī)鏡像生成目標(biāo)虛擬機(jī); 如果否,根據(jù)所述預(yù)上線環(huán)境創(chuàng)建虛擬機(jī)鏡像,根據(jù)所述虛擬機(jī)鏡像生成目標(biāo)虛擬機(jī)。
5.根據(jù)權(quán)利要求4中所述網(wǎng)站應(yīng)用部署方法,其特征在于,所述將所述代碼同步至根據(jù)所述目標(biāo)生產(chǎn)環(huán)境生成的目標(biāo)虛擬機(jī),包括步驟: 啟動(dòng)所述目標(biāo)虛擬機(jī); 使用rsync工具將進(jìn)行模擬網(wǎng)站應(yīng)用部署的代碼同步到所述目標(biāo)虛擬機(jī)。
6.根據(jù)權(quán)利要求5中所述網(wǎng)站應(yīng)用部署方法,其特征在于,所述將所述網(wǎng)站應(yīng)用的流量切換至所述目標(biāo)虛擬機(jī),包括: 通過所述openstackagent組件中的nginx模塊進(jìn)行流量切換。
7.根據(jù)權(quán)利要求4所述網(wǎng)站應(yīng)用部署方法,其特征在于,所述判斷是否已預(yù)設(shè)所述目標(biāo)生產(chǎn)環(huán)境,包括: 預(yù)設(shè)所述預(yù)上線環(huán)境的虛擬機(jī)包括與已有的所述目標(biāo)生產(chǎn)環(huán)境的虛擬機(jī)相同的標(biāo)識(shí); 通過識(shí)別所述預(yù)上線環(huán)境的虛擬機(jī)是否包括標(biāo)識(shí)判斷是否已預(yù)設(shè)所述目標(biāo)生產(chǎn)環(huán)境。
【文檔編號(hào)】G06F9/44GK103677845SQ201310723665
【公開日】2014年3月26日 申請(qǐng)日期:2013年12月24日 優(yōu)先權(quán)日:2013年12月24日
【發(fā)明者】劉俊 申請(qǐng)人:廣聯(lián)達(dá)軟件股份有限公司