一種應(yīng)用部署方法及裝置的制造方法
【專利摘要】本發(fā)明的實施例提供一種應(yīng)用部署方法及裝置,涉及軟件技術(shù)領(lǐng)域,可以識別出影響應(yīng)用運行結(jié)果的配置項,從而提高構(gòu)建出的生產(chǎn)環(huán)境的可靠性,降低應(yīng)用部署失敗的風(fēng)險。該方法包括:獲取第一配置項,該第一配置項為開發(fā)環(huán)境在運行應(yīng)用的可執(zhí)行代碼之前與運行該應(yīng)用的可執(zhí)行代碼之后發(fā)生變化的數(shù)據(jù);獲取第二配置項,該第二配置項為運行該可執(zhí)行代碼之前的開發(fā)環(huán)境與初始生產(chǎn)環(huán)境之間不相同的數(shù)據(jù);這樣,根據(jù)該第一配置項和該第二配置項,可修正該初始生產(chǎn)環(huán)境的配置項內(nèi)容,得到可靠性更高的修正生產(chǎn)環(huán)境;那么,將該應(yīng)用部署至該修正生產(chǎn)環(huán)境中后,可提高應(yīng)用部署的成功率。
【專利說明】
一種應(yīng)用部署方法及裝置
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及軟件技術(shù)領(lǐng)域,尤其涉及一種應(yīng)用部署方法及裝置。
【背景技術(shù)】
[0002] -個應(yīng)用從開發(fā)到成功部署上線,首先需要經(jīng)歷源代碼的編寫階段,進而,需要在 開發(fā)環(huán)境(即開發(fā)人員所使用的環(huán)境)中對源代碼進行編譯、安裝、調(diào)試和運行,當(dāng)可執(zhí)行代 碼在開發(fā)環(huán)境中成功運行后,可以通過現(xiàn)有的自動構(gòu)建系統(tǒng)構(gòu)建部署應(yīng)用的生產(chǎn)環(huán)境(即 應(yīng)用長期實際運行的環(huán)境),最終,在構(gòu)建的生產(chǎn)環(huán)境中對可執(zhí)行代碼進行測試和運行,得 到可以成功運行的應(yīng)用。
[0003] 其中,開發(fā)環(huán)境和生產(chǎn)環(huán)境之間可能存在規(guī)模差異、部署區(qū)域差異等,例如,開發(fā) 環(huán)境可能只有很少幾臺設(shè)備組成,而生產(chǎn)環(huán)境則可能由幾千臺設(shè)備組成;開發(fā)環(huán)境中可能 包含開發(fā)語言的一個或多個運行庫,而生產(chǎn)環(huán)境中則可能沒有應(yīng)用運行所需的運行庫。
[0004] 正是由于這些差異,導(dǎo)致可以成功在開發(fā)環(huán)境中運行的應(yīng)用卻可能無法在生產(chǎn)環(huán) 境中成功運行,因此,在構(gòu)建部署應(yīng)用的生產(chǎn)環(huán)境時,還需要設(shè)置影響應(yīng)用運行結(jié)果的配置 項(Configuration Item),從而構(gòu)建出更加可靠的生產(chǎn)環(huán)境。
[0005] 然而,這些配置項都需要開發(fā)人員手動地配置,一旦開發(fā)人員對配置項的識別未 能納入自動構(gòu)建系統(tǒng),或者被自動構(gòu)建系統(tǒng)錯誤地納入,就會導(dǎo)致最終構(gòu)建出的生產(chǎn)環(huán)境 出現(xiàn)錯誤,使應(yīng)用在生產(chǎn)環(huán)境中部署失敗。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明提供一種應(yīng)用部署方法及裝置,可以識別出影響應(yīng)用運行結(jié)果的配置項, 從而提高構(gòu)建出的生產(chǎn)環(huán)境的可靠性,降低應(yīng)用部署失敗的風(fēng)險。
[0007] 為達到上述目的,本發(fā)明的實施例采用如下技術(shù)方案:
[0008] 第一方面,本發(fā)明提供一種應(yīng)用部署方法,包括:獲取第一配置項,該第一配置項 為開發(fā)環(huán)境在運行應(yīng)用的可執(zhí)行代碼之前與運行該應(yīng)用的可執(zhí)行代碼之后發(fā)生變化的數(shù) 據(jù);獲取第二配置項,該第二配置項為運行該可執(zhí)行代碼之前的開發(fā)環(huán)境與初始生產(chǎn)環(huán)境 之間不相同的數(shù)據(jù);這樣,根據(jù)該第一配置項和該第二配置項,可修正該初始生產(chǎn)環(huán)境的配 置項內(nèi)容,得到可靠性更高的修正生產(chǎn)環(huán)境;那么,將該應(yīng)用部署至該修正生產(chǎn)環(huán)境中后, 可提高應(yīng)用部署的成功率。
[0009] 另外,本次應(yīng)用部署時得到的修正生產(chǎn)環(huán)境,可以作為下一次應(yīng)用部署時的初始 生產(chǎn)環(huán)境,進而通過再次獲取第一配置項和第一配置項,又可以得到下一次應(yīng)用部署時的 配置項,從而實現(xiàn)有效的反饋調(diào)節(jié)機制以重復(fù)部署應(yīng)用。
[0010] 在一種可能的設(shè)計中,獲取第一配置項,包括:在該開發(fā)環(huán)境中運行該應(yīng)用的可執(zhí) 行代碼之前,保存該開發(fā)環(huán)境的第一快照信息;在該開發(fā)環(huán)境中成功運行該應(yīng)用的可執(zhí)行 代碼之后,保存該開發(fā)環(huán)境的第二快照信息;根據(jù)該第二快照信息中與該第一快照信息不 同的部分,確定該第一配置項。
[0011] 其中,根據(jù)該第二快照信息中與該第一快照信息不同的部分,確定該第一配置項, 包括:將該第二快照信息中與該第一快照信息不同的差別數(shù)據(jù)作為第一配置項。
[0012] 或者,根據(jù)所述第二快照信息中與所述第一快照信息不同的差別數(shù)據(jù),在預(yù)設(shè)的 配置字典中查找與所述差別數(shù)據(jù)對應(yīng)的替換數(shù)據(jù),所述配置字典中存儲有所述差別數(shù)據(jù)與 差別內(nèi)容之間的映射關(guān)系;將查找到的與所述差別數(shù)據(jù)對應(yīng)的替換數(shù)據(jù)作為第一配置項。
[0013] 在一種可能的設(shè)計中,獲取第二配置項,包括:在該初始生產(chǎn)環(huán)境中運行該應(yīng)用的 可執(zhí)行代碼之前,保存該初始生產(chǎn)環(huán)境的第三快照信息;根據(jù)該第三快照信息中與該第一 快照信息不同的部分,確定該第二配置項。
[0014] 這樣,應(yīng)用部署裝置通過兩次快照對比,識別出影響應(yīng)用運行結(jié)果的第一配置項 和第二配置項,以便于后續(xù)為應(yīng)用構(gòu)建出更加可靠的修正生產(chǎn)環(huán)境。
[0015] 在一種可能的設(shè)計中,根據(jù)該第一配置項和該第二配置項修正該初始生產(chǎn)環(huán)境的 配置項內(nèi)容,得到修正生產(chǎn)環(huán)境,包括:若該第一配置項和該第二配置項中沒有公共配置 項,則將該第一配置項復(fù)制到該配置項內(nèi)容中,得到修正生產(chǎn)環(huán)境,該公共配置項為該第一 配置項和該第二配置項的交集。
[0016] 或者,根據(jù)該第一配置項和該第二配置項修正該初始生產(chǎn)環(huán)境的配置項內(nèi)容,得 到修正生產(chǎn)環(huán)境,包括:若該第一配置項和該第二配置項中沒有公共配置項,則在預(yù)設(shè)的配 置字典中查找與該第一配置項對應(yīng)的替換配置項,該公共配置項為該第一配置項和該第二 配置項的交集;將查找到的與該第一配置項對應(yīng)的替換配置項復(fù)制到該配置項內(nèi)容中,得 到修正生產(chǎn)環(huán)境。
[0017] 相應(yīng)的,若該第一配置項和該第二配置項中包含公共配置項,則還包括:將該第一 配置項中除該公共配置項外的配置項,復(fù)制到該初始生產(chǎn)環(huán)境的配置項內(nèi)容中,得到修正 生產(chǎn)環(huán)境。
[0018] 在一種可能的設(shè)計中,在將該第一配置項中除該公共配置項外的配置項,復(fù)制到 該初始生產(chǎn)環(huán)境的配置項內(nèi)容中之后,還包括:在預(yù)設(shè)的配置字典中查找與該公共配置項 對應(yīng)的替換配置項;將查找到的與該公共配置項對應(yīng)的替換配置項復(fù)制到該配置項內(nèi)容 中,得到修正生產(chǎn)環(huán)境。
[0019] 在一種可能的設(shè)計中,在根據(jù)該第一配置項和該第二配置項修正該初始生產(chǎn)環(huán)境 的配置項內(nèi)容之后,還包括:對該修正生產(chǎn)環(huán)境進行測試;若測試結(jié)果不符合預(yù)設(shè)的測試結(jié) 果,由于預(yù)先存儲有初始生產(chǎn)環(huán)境(即上一次成功部署應(yīng)用時構(gòu)建出的修正生產(chǎn)環(huán)境)的快 照,因此,可將上述修正生產(chǎn)環(huán)境還原至初始生產(chǎn)環(huán)境,以便于開發(fā)人員在上一次成功部署 應(yīng)用時構(gòu)建出的修正生產(chǎn)環(huán)境的基礎(chǔ)上,進行修改和調(diào)試。
[0020] 第二方面,本發(fā)明實施例提供一種應(yīng)用部署裝置,包括:獲取單元,用于獲取第一 配置項以及第二配置項,其中,該第一配置項為開發(fā)環(huán)境在運行應(yīng)用的可執(zhí)行代碼之前與 運行該應(yīng)用的可執(zhí)行代碼之后發(fā)生變化的數(shù)據(jù),該第二配置項為運行該可執(zhí)行代碼之前的 開發(fā)環(huán)境與初始生產(chǎn)環(huán)境之間不相同的數(shù)據(jù);環(huán)境構(gòu)建單元,用于根據(jù)該第一配置項和該 第二配置項修正該初始生產(chǎn)環(huán)境的配置項內(nèi)容,得到修正生產(chǎn)環(huán)境;部署單元,用于將該應(yīng) 用部署至該修正生產(chǎn)環(huán)境中。
[0021] 在一種可能的設(shè)計中,該裝置還包括:快照單元,用于在該開發(fā)環(huán)境中運行該應(yīng)用 的可執(zhí)行代碼之前,保存該開發(fā)環(huán)境的第一快照信息;以及,在該開發(fā)環(huán)境中成功運行該應(yīng) 用的可執(zhí)行代碼之后,保存該開發(fā)環(huán)境的第二快照信息;對比單元,用于根據(jù)該第二快照信 息中與該第一快照信息不同的部分,確定該第一配置項。
[0022] 在一種可能的設(shè)計中,該對比單元,具體用于將該第二快照信息中與該第一快照 信息不同的差別數(shù)據(jù),以及該差別數(shù)據(jù)的內(nèi)容作為第一配置項。
[0023] 或者,該對比單元,具體用于根據(jù)該第二快照信息中與該第一快照信息不同的差 別數(shù)據(jù),在預(yù)設(shè)的配置字典中查找與該差別數(shù)據(jù)對應(yīng)的替換數(shù)據(jù),該配置字典中存儲有該 差別數(shù)據(jù)與替換數(shù)據(jù)之間的映射關(guān)系;將查找到的與該差別數(shù)據(jù)對應(yīng)的替換數(shù)據(jù)作為第一 配置項。
[0024] 在一種可能的設(shè)計中,該快照單元,還用于在該初始生產(chǎn)環(huán)境中運行該應(yīng)用的可 執(zhí)行代碼之前,保存該初始生產(chǎn)環(huán)境的第三快照信息;該對比單元,還用于根據(jù)該第三快照 信息中與該第一快照信息不同的部分,確定該第二配置項。
[0025] 在一種可能的設(shè)計中,該環(huán)境構(gòu)建單元,具體用于若該第一配置項和該第二配置 項中沒有公共配置項,則將該第一配置項復(fù)制到該配置項內(nèi)容中,得到修正生產(chǎn)環(huán)境,該公 共配置項為該第一配置項和該第二配置項的交集。
[0026] 在一種可能的設(shè)計中,該環(huán)境構(gòu)建單元,具體用于若該第一配置項和該第二配置 項中沒有公共配置項,則在預(yù)設(shè)的配置字典中查找與該第一配置項對應(yīng)的替換配置項,該 公共配置項為該第一配置項和該第二配置項的交集;以及,將查找到的與該第一配置項對 應(yīng)的替換配置項復(fù)制到該配置項內(nèi)容中,得到修正生產(chǎn)環(huán)境。
[0027] 在一種可能的設(shè)計中,該環(huán)境構(gòu)建單元,還用于若該第一配置項和該第二配置項 中包含公共配置項,則將該第一配置項中除該公共配置項外的配置項,復(fù)制到該初始生產(chǎn) 環(huán)境的配置項內(nèi)容中,得到修正生產(chǎn)環(huán)境。
[0028] 在一種可能的設(shè)計中,該環(huán)境構(gòu)建單元,還用于在預(yù)設(shè)的配置字典中查找與該公 共配置項對應(yīng)的替換配置項;將查找到的與該公共配置項對應(yīng)的替換配置項復(fù)制到該配置 項內(nèi)容中,得到修正生產(chǎn)環(huán)境。
[0029] 在一種可能的設(shè)計中,該裝置還包括:測試單元,用于對該修正生產(chǎn)環(huán)境進行測 試;回滾單元,用于若測試結(jié)果不符合預(yù)設(shè)的測試結(jié)果,則將該修正生產(chǎn)環(huán)境還原至該初始 生產(chǎn)環(huán)境。
[0030] 第三方面,本發(fā)明實施例提供了一種應(yīng)用管理設(shè)備,該應(yīng)用管理設(shè)備具有實現(xiàn)上 述方法中應(yīng)用部署裝置行為的功能。所述功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相 應(yīng)的軟件實現(xiàn)。所述硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊。
[0031] 在一個可能的設(shè)計中,應(yīng)用管理設(shè)備的結(jié)構(gòu)中包括處理器和存儲器,所述存儲器 用于存儲支持應(yīng)用管理設(shè)備執(zhí)行上述方法的應(yīng)用程序代碼,所述處理器被配置為用于執(zhí)行 所述存儲器中存儲的應(yīng)用程序。所述應(yīng)用管理設(shè)備還可以包括通信接口,用于管理設(shè)備與 其他設(shè)備或通信網(wǎng)絡(luò)通信。
[0032] 第四方面,本發(fā)明實施例提供了一種計算機存儲介質(zhì),用于儲存為上述應(yīng)用部署 裝置所用的計算機軟件指令,其包含用于執(zhí)行上述方面為管理設(shè)備所設(shè)計的程序。
[0033] 本發(fā)明中,應(yīng)用部署裝置的名字對設(shè)備本身不構(gòu)成限定,在實際實現(xiàn)中,這些設(shè)備 可以以其他名稱出現(xiàn)。只要各個設(shè)備的功能和本發(fā)明類似,屬于本發(fā)明權(quán)利要求及其等同 技術(shù)的范圍之內(nèi)。
[0034] 另外,第二方面至第四方面中任一種設(shè)計方式所帶來的技術(shù)效果可參見第一方面 中不同設(shè)計方式所帶來的技術(shù)效果,此處不再贅述。
[0035] 本發(fā)明的這些方面或其他方面在以下實施例的描述中會更加簡明易懂。
【附圖說明】
[0036] 為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn) 有技術(shù)描述中所需要使用的附圖作簡單地介紹。
[0037] 圖1為本發(fā)明實施例提供的一種應(yīng)用部署裝置的結(jié)構(gòu)示意圖;
[0038] 圖2為本發(fā)明實施例提供的一種應(yīng)用部署裝置的原理示意圖;
[0039] 圖3為本發(fā)明實施例提供的一種應(yīng)用部署方法的流程示意圖;
[0040] 圖4為本發(fā)明實施例提供的一種應(yīng)用管理設(shè)備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0041] 下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完 整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。
[0042] 另外,術(shù)語"第一"、"第二"僅用于描述目的,而不能理解為指示或暗示相對重要性 或者隱含指明所指示的技術(shù)特征的數(shù)量。由此,限定有"第一"、"第二"的特征可以明示或者 隱含地包括一個或者更多個該特征。在本發(fā)明的描述中,除非另有說明,"多個"的含義是兩 個或兩個以上。
[0043]本發(fā)明的實施例提供一種應(yīng)用部署方法,可應(yīng)用于基于DevOps(開發(fā)運維一體化, 是一組過程、方法與系統(tǒng)的統(tǒng)稱)技術(shù)的應(yīng)用開發(fā)和部署過程中。
[0044] 具體的,一個互聯(lián)網(wǎng)應(yīng)用可以使用多種開發(fā)語言和開發(fā)方式完成源代碼的編寫和 開發(fā),同時,為了使應(yīng)用能夠正確運行,還需要設(shè)置應(yīng)用所在運行環(huán)境的配置項內(nèi)容,例如, 應(yīng)用的修改腳本等。
[0045] 但是,應(yīng)用的開發(fā)環(huán)境和生產(chǎn)環(huán)境之間可能存在規(guī)模差異、部署區(qū)域差異等,因 此,開發(fā)人員在開發(fā)環(huán)境中成功運行應(yīng)用后,并不能保證可以在實際投產(chǎn)的生產(chǎn)環(huán)境中成 功運行該應(yīng)用,因此,在構(gòu)建生產(chǎn)環(huán)境時通常由開發(fā)人員提前識別和設(shè)置配置項內(nèi)容中會 影響應(yīng)用運行結(jié)果的配置項,這種人工部署和調(diào)測不僅會導(dǎo)致重復(fù)投入問題,而且,對于應(yīng) 用版本更新頻率較快,應(yīng)用部署規(guī)模較大的應(yīng)用場景,還會增加應(yīng)用部署失敗的風(fēng)險。
[0046] 對此,本發(fā)明實施例提供的應(yīng)用部署方法及裝置,可以通過對比應(yīng)用在開發(fā)前后 的運行環(huán)境,自動識別出影響應(yīng)用運行結(jié)果的配置項,從而構(gòu)建出更加可靠的生產(chǎn)環(huán)境,在 部署應(yīng)用的過程中形成有效的反饋調(diào)節(jié)機制,從而降低應(yīng)用部署失敗的風(fēng)險。
[0047] 其中,本發(fā)明實施例提供的應(yīng)用部署方法,可應(yīng)用在圖1所示的應(yīng)用部署裝置100 中,該應(yīng)用部署裝置100包括快照單元11、與快照單元11相連的對比單元12,與對比單元12 相連的環(huán)境構(gòu)建單元02,以及與環(huán)境構(gòu)建單元02相連的部署單元03,其中,該環(huán)境構(gòu)建單元 02還可以與存儲有各個版本的應(yīng)用的版本庫04相連。
[0048] 具體的,如圖2所示,快照單元11可以在開發(fā)前,即運行應(yīng)用的可執(zhí)行代碼之前,保 存開發(fā)環(huán)境的第一快照信息,并在開發(fā)后,即成功運行應(yīng)用的可執(zhí)行代碼之后,保存開發(fā)環(huán) 境的第二快照信息,此時,對比單元12用于對快照單元11中存儲的第一快照信息和第二快 照信息進行對比,識別出應(yīng)用在開發(fā)環(huán)境中成功運行所需的第一配置項,進而,在部署準備 階段,快照單元11還可以保存初始生產(chǎn)環(huán)境的第三快照信息;而對比單元12可用于比較第 一快照信息與第三快照信息之間的不同信息,識別出應(yīng)用在初始生產(chǎn)環(huán)境中成功運行所需 的第二配置項,并將第一配置項和第二配置項輸出到環(huán)境構(gòu)建單元02,這樣,在部署階段, 環(huán)境構(gòu)建單元02根據(jù)第一配置項和第二配置項設(shè)置初始生產(chǎn)環(huán)境中的配置項內(nèi)容,并從版 本庫04中得到應(yīng)用軟件,執(zhí)行自動構(gòu)建功能,得到修正后的修正生產(chǎn)環(huán)境,最后,部署單元 03將應(yīng)用部署到修正生產(chǎn)環(huán)境上,完成應(yīng)用部署。
[0049] 可以看出,如果開發(fā)環(huán)境和初始生產(chǎn)環(huán)境一致,可直接在初始生產(chǎn)環(huán)境的配置項 內(nèi)容中設(shè)置上述第一配置項,得到修正生產(chǎn)環(huán)境,這樣便可以使應(yīng)用在修正生產(chǎn)環(huán)境中成 功運行;當(dāng)開發(fā)環(huán)境和初始生產(chǎn)環(huán)境不一致時,需要在初始生產(chǎn)環(huán)境的配置項內(nèi)容中同時 設(shè)置上述第一配置項和第二配置項,得到修正生產(chǎn)環(huán)境,從而將應(yīng)用部署到上述修正生產(chǎn) 環(huán)境中,使應(yīng)用可以成功運行。
[0050] 其中,快照單元11和對比單元12也可以由獲取單元01代替,此時,獲取單元01用于 向環(huán)境構(gòu)建單元02提供影響應(yīng)用運行結(jié)果的配置項,例如,上述第一配置項和第二配置項。
[0051] 另外,本次應(yīng)用部署時得到的修正生產(chǎn)環(huán)境,可以作為下一次應(yīng)用部署時的初始 生產(chǎn)環(huán)境,進而通過快照單元11和對比單元12,又可以得到下一次應(yīng)用部署時的各個配置 項,從而實現(xiàn)有效的反饋調(diào)節(jié)機制以重復(fù)部署應(yīng)用。
[0052] 進一步地,仍如圖1所示,應(yīng)用部署裝置100還可以包括測試單元05和回滾單元06, 其中,測試單元05,可用于對構(gòu)建的修正生產(chǎn)環(huán)境進行測試,以驗證修正生產(chǎn)環(huán)境是否正 常;此時,用于若測試結(jié)果不正常,由于快照單元11內(nèi)存儲有初始生產(chǎn)環(huán)境(即上一次成功 部署應(yīng)用時構(gòu)建出的修正生產(chǎn)環(huán)境)的快照,因此,回滾單元06可用于將修正生產(chǎn)環(huán)境還原 至初始生產(chǎn)環(huán)境,以便于開發(fā)人員在上一次成功部署應(yīng)用時構(gòu)建出的修正生產(chǎn)環(huán)境的基礎(chǔ) 上,進行修改和調(diào)試。
[0053]需要說明的是,在本發(fā)明實例中,上述應(yīng)用部署裝置100中的各個功能單元,例如, 快照單元11、對比單元12以及環(huán)境構(gòu)建單元02等,可以以邏輯功能模塊的形式集成在一個 實體設(shè)備中,又或者,上述各個功能單元可以以邏輯功能模塊的形式分別設(shè)置在一個或多 個實體設(shè)備中,此時,應(yīng)用部署裝置100以系統(tǒng)的形式實現(xiàn)上述應(yīng)用部署方法,本發(fā)明實施 例對此不做限定。
[0054]進一步地,為了更清楚地介紹本發(fā)明實施例提供的應(yīng)用部署方法,下文中均以邏 輯功能模塊作為執(zhí)行主體進行說明,本領(lǐng)域技術(shù)人員可以理解,邏輯功能模塊在具體實現(xiàn) 時需依賴于其所在的實體設(shè)備上的硬件資源。
[0055] 基于圖1以及圖2所示的應(yīng)用部署裝置,本發(fā)明實施例提供一種應(yīng)用部署方法,如 圖3所示,該應(yīng)用部署方法包括:
[0056] 101、在開發(fā)環(huán)境內(nèi)運行應(yīng)用的可執(zhí)行代碼之前,應(yīng)用部署裝置保存開發(fā)環(huán)境的第 一快照信息。
[0057] 102、在開發(fā)環(huán)境內(nèi)成功運行該應(yīng)用的可執(zhí)行代碼之后,應(yīng)用部署裝置保存該開發(fā) 環(huán)境的第二快照信息。
[0058] 103、應(yīng)用部署裝置比較第一快照信息與第二快照信息,根據(jù)第二快照信息中與第 一快照信息不同的部分,確定第一配置項。
[0059] 104、在初始生產(chǎn)環(huán)境中運行該應(yīng)用的可執(zhí)行代碼之前,應(yīng)用部署裝置保存該初始 生產(chǎn)環(huán)境的第三快照信息。
[0060] 105、應(yīng)用部署裝置比較第一快照信息與第三快照信息,根據(jù)第三快照信息中與第 一快照信息不同的部分,確定第二配置項。
[0061] 106、應(yīng)用部署裝置判斷第一配置項和第二配置項中是否含有公共配置項,該公共 配置項為第一配置項和第二配置項的交集。
[0062] 107a、若包括公共配置項,則應(yīng)用部署裝置將第一配置項中除公共配置項外的配 置項,復(fù)制到初始生產(chǎn)環(huán)境的配置項內(nèi)容中。
[0063] 108a、(可選的)應(yīng)用部署裝置在預(yù)設(shè)的配置字典中查找與該公共配置項對應(yīng)的替 換配置項;并將查找到的與該公共配置項對應(yīng)的替換配置項也復(fù)制到上述配置項內(nèi)容中, 得到修正生產(chǎn)環(huán)境。
[0064] 107b、若不包括公共配置項,則應(yīng)用部署裝置將第一配置項復(fù)制到初始生產(chǎn)環(huán)境 的配置項內(nèi)容中,得到修正生產(chǎn)環(huán)境。或者,
[0065] 108b、若不包括公共配置項,則應(yīng)用部署裝置在預(yù)設(shè)的配置字典中查找與第一配 置項對應(yīng)的替換配置項;并將查找到的與第一配置項對應(yīng)的替換配置項復(fù)制到上述配置項 內(nèi)容中,得到修正生產(chǎn)環(huán)境。
[0066] 109、應(yīng)用部署裝置將應(yīng)用部署至上述修正生產(chǎn)環(huán)境中。
[0067] 110、應(yīng)用部署裝置對上述修正生產(chǎn)環(huán)境進行測試。
[0068] 111、若測試結(jié)果不符合預(yù)設(shè)的測試結(jié)果,則應(yīng)用部署裝置將上述修正生產(chǎn)環(huán)境還 原至初始生產(chǎn)環(huán)境。
[0069] 其中,開發(fā)環(huán)境,指的是應(yīng)用的開發(fā)人員在進行源代碼編譯以及測試過程中所使 用的環(huán)境,例如,開發(fā)應(yīng)用A使用的測試服務(wù)器或測試手機等。
[0070] 在步驟101中,在開發(fā)環(huán)境內(nèi)運行應(yīng)用的可執(zhí)行代碼之前,快照單元11可以對此時 的開發(fā)環(huán)境進行快照,得到開發(fā)環(huán)境的第一快照信息。
[0071] 例如,當(dāng)開發(fā)人員使用計算機編寫和運行網(wǎng)頁服務(wù)這一應(yīng)用的可執(zhí)行代碼時,這 臺計算機便可以作為開發(fā)環(huán)境,在該計算機上運行網(wǎng)頁服務(wù)的可執(zhí)行代碼之前,快照單元 11可以通過文件備份、數(shù)據(jù)庫備份技術(shù)等數(shù)據(jù)復(fù)制手段,將開發(fā)環(huán)境(即該計算機)的全部 信息完整地保存下來,得到第一快照信息。
[0072]再例如,當(dāng)開發(fā)人員使用計算機編寫手機APP(Application,應(yīng)用)時,開發(fā)人員使 用的計算機不被認為是所述開發(fā)環(huán)境,只有使用的測試手機是開發(fā)環(huán)境,在該測試手機上 運行手機APP的可執(zhí)行代碼之前,快照單元11可以通過手機系統(tǒng)備份、文件備份、內(nèi)存導(dǎo)出 等數(shù)據(jù)復(fù)制手段,將開發(fā)環(huán)境(即該測試手機)的全部信息完整地保存下來,得到第一快照 信息。
[0073]進而,開發(fā)人員可以在開發(fā)環(huán)境內(nèi)對應(yīng)用的源代碼進行編寫、編譯、調(diào)試等,當(dāng)該 應(yīng)用在開發(fā)環(huán)境內(nèi)成功運行后,在步驟102中,快照單元11可以對此時的開發(fā)環(huán)境再次進行 快照,得到開發(fā)環(huán)境的第二快照信息。
[0074]例如,當(dāng)上述網(wǎng)頁服務(wù)或手機APP可成功在開發(fā)環(huán)境內(nèi)運行時,類似的,快照單元 11可以通過文件備份、數(shù)據(jù)庫備份、內(nèi)存導(dǎo)出技術(shù)等數(shù)據(jù)復(fù)制手段,將此時計算機(或手機) 的全部信息完整地保存下來,得到第二快照信息。
[0075] 那么,在步驟103中,對比單元12可進一步比較上述第一快照信息與第二快照信 息,找到第二快照信息中與第一快照信息不同的數(shù)據(jù)(即差別數(shù)據(jù)),例如,經(jīng)過比較后可發(fā) 現(xiàn)第二快照信息中的參數(shù)發(fā)生了增減,或參數(shù)的數(shù)值發(fā)生變化,又或者,是某個文件(例如, 可執(zhí)行代碼、庫文件等)發(fā)生增刪,進而,根據(jù)第二快照信息中與第一快照信息不同的數(shù)據(jù), 確定第一配置項,即該應(yīng)用在開發(fā)環(huán)境中成功運行所需的配置項。
[0076] 例如,如表1所示,通過對比第一快照信息與第二快照信息,可確定參數(shù)A、B在成功 運行應(yīng)用前后的取值發(fā)生了改變,并且,在成功運行應(yīng)用后還增加了文件C,此時,不在步驟 103中,可將第二快照信息中參數(shù)A、B、文件C以及參數(shù)A、B、文件C的取值這些差別數(shù)據(jù)作為 第一配置項,也就是說,要想成功運行該應(yīng)用,需要改變開發(fā)環(huán)境中參數(shù)A、B的取值,并增加 文件C。
[0077] 表 1
[0079] 又或者,對比單元12在比較上述第一快照信息與第二快照信息之后,可確定出第 一快照信息與第二快照信息中發(fā)生變化的數(shù)據(jù)(即差別數(shù)據(jù)),例如上述參數(shù)A和B的取值改 變,且第二快照信息中新增加了文件C,此時,參數(shù)A、B、C為上述差別數(shù)據(jù),那么,對比單元12 可進一步在預(yù)設(shè)的配置字典中,根據(jù)上述差別數(shù)據(jù)的標識和/或類型,查找與該差別數(shù)據(jù)對 應(yīng)的替換數(shù)據(jù),例如,上述參數(shù)A的替換數(shù)據(jù)為1110;進而,將查找到的與上述差別數(shù)據(jù)對應(yīng) 的替換數(shù)據(jù)作為第一配置項。
[0080] 其中,上述配置字典中預(yù)先存儲有至少一個數(shù)據(jù)(例如任意參數(shù)、配置項、文件或 程序),以及每個數(shù)據(jù)在生產(chǎn)環(huán)境中對應(yīng)的替換數(shù)據(jù)或替換配置的取值規(guī)則,即存儲有每個 數(shù)據(jù)與該數(shù)據(jù)的替換數(shù)據(jù)之間的映射關(guān)系,例如,配置項Y的替換配置項為配置項M;參數(shù)A 指示的是內(nèi)存大小,該配置字典中可以存儲參數(shù)A的取值規(guī)則為:將第二快照信息中參數(shù)A 的取值乘以5作為第一配置項中參數(shù)A的取值,即在生產(chǎn)環(huán)境中運行該應(yīng)用時內(nèi)存的大小可 以設(shè)置為第二快照信息中參數(shù)A的取值的5倍。
[0081] 由于應(yīng)用實際運行的環(huán)境(即生產(chǎn)環(huán)境),通常與開發(fā)環(huán)境存在許多差異,因此,若 想要應(yīng)用在生產(chǎn)環(huán)境中成功運行,不僅需要在生產(chǎn)環(huán)境中安裝應(yīng)用的可執(zhí)行代碼,還需要 對應(yīng)用運行的生產(chǎn)環(huán)境的配置項內(nèi)容進行相應(yīng)的設(shè)置,也就是說,當(dāng)應(yīng)用成功在開發(fā)環(huán)境 中運行后,還需為應(yīng)用構(gòu)建可靠的生產(chǎn)環(huán)境,這一階段可稱為應(yīng)用的部署準備階段。
[0082] 其中,本發(fā)明實施例中將構(gòu)建前的生產(chǎn)環(huán)境稱為初始生產(chǎn)環(huán)境,將構(gòu)建后形成的 生產(chǎn)環(huán)境稱為修正生產(chǎn)環(huán)境。
[0083] 具體的,在部署準備階段,如步驟104中所述,在初始生產(chǎn)環(huán)境中運行該應(yīng)用的可 執(zhí)行代碼之前,快照單元11可以保存該初始生產(chǎn)環(huán)境的第三快照信息。
[0084] 進而,在步驟105中,對比單元12比較上述第三快照信息與步驟101中存儲的第一 快照信息,也就是說,通過第一快照信息和第三快照信息對比開發(fā)前的開發(fā)環(huán)境與初始生 產(chǎn)環(huán)境之間的差異。例如,經(jīng)過比較后可發(fā)現(xiàn)第三快照信息中的參數(shù)發(fā)生了增減,或參數(shù)的 數(shù)值發(fā)生變化,又或者,是某個文件(例如,可執(zhí)行代碼、庫文件等)發(fā)生增刪等。
[0085]可以理解的是,如果第一快照信息和第三快照信息完全相同,則說明該初始生產(chǎn) 環(huán)境與未運行該應(yīng)用前的開發(fā)環(huán)境相同,此時,為了使應(yīng)用可以在初始生產(chǎn)環(huán)境中成功運 行,僅需要按照步驟103中得到的第一配置項對初始生產(chǎn)環(huán)境的配置項內(nèi)容進行修改,即可 構(gòu)建出修正生產(chǎn)環(huán)境。
[0086]例如,當(dāng)?shù)谝豢煺招畔⒑偷谌煺招畔⑼耆嗤瑫r,可將表1內(nèi)第二快照信息中參 數(shù)A、B、以及文件C的取值,覆蓋第三快照信息中相應(yīng)的參數(shù)A、B、以及文件C的取值,即可構(gòu) 建出修正生產(chǎn)環(huán)境。
[0087]然而,開發(fā)環(huán)境與初始生產(chǎn)環(huán)境一般是不相同的,例如,開發(fā)環(huán)境中可能只有一臺 設(shè)備,而初始生產(chǎn)環(huán)境則可能是幾千臺設(shè)備組成,此時,與步驟103類似的,對比單元12可根 據(jù)第三快照信息中與第一快照信息不同的部分,確定第二配置項,即應(yīng)用在初始生產(chǎn)環(huán)境 中成功運行時需要保留的配置參數(shù)。
[0088]例如,可以直接將第三快照信息中與第一快照信息不同的部分,即發(fā)生變化的差 異數(shù)據(jù)作為第二配置項。
[0089] 例如,如表2所示,通過對比第一快照信息與第三快照信息,可確定參數(shù)A的取值發(fā) 生了改變,也就是說,初始生產(chǎn)環(huán)境與開發(fā)前的開發(fā)環(huán)境相比,參數(shù)A可反映初始生產(chǎn)環(huán)境 的固有屬性的參數(shù),即參數(shù)A是應(yīng)用在初始生產(chǎn)環(huán)境中成功運行所必需的,例如,當(dāng)參數(shù)A為 IP地址信息時,第一快照信息與第三快照信息中的IP地址信息不同,如果單一的將第一快 照信息中的IP地址信息復(fù)制到第三快照信息中,將導(dǎo)致應(yīng)用無法在初始生產(chǎn)環(huán)境中正常運 行。
[0090] 此時,可將第三快照信息中參數(shù)A的取值作為第二配置項,也就是說,要想在初始 生產(chǎn)環(huán)境中成功運行該應(yīng)用,需要保留第三快照信息中的參數(shù)A。
[0091] 表2
[0093]又或者,對比單元12在比較上述第一快照信息與第三快照信息之后,可確定出第 三快照信息與第一快照信息中發(fā)生變化的差別數(shù)據(jù),例如上述參數(shù)A,那么,由于上述配置 字典中存儲有參數(shù)A在生產(chǎn)環(huán)境中對應(yīng)的替換數(shù)據(jù)或替換數(shù)據(jù)的取值規(guī)則,因此,對比單元 12可進一步在上述配置字典中查找與該差別數(shù)據(jù)對應(yīng)的替換數(shù)據(jù);進而,將查找到的與差 別數(shù)據(jù)對應(yīng)的替換數(shù)據(jù)作為第二配置項。
[0094] 這樣,經(jīng)過上述步驟101-105,應(yīng)用部署裝置可通過兩次快照對比,識別出影響應(yīng) 用運行結(jié)果的第一配置項和第二配置項,以便于后續(xù)環(huán)境構(gòu)建單元02為應(yīng)用構(gòu)建出更加可 靠的修正生產(chǎn)環(huán)境。
[0095] 進一步地,在步驟106中,環(huán)境構(gòu)建單元02根據(jù)對比單元12得到的第一配置項和第 二配置項,判斷該第一配置項和第二配置項中是否有相同的配置項(本發(fā)明實施例中稱為 公共配置項),即該公共配置項為第一配置項和第二配置項的交集。
[0096] 例如,在表1和表2所指示的第一配置項和第二配置項中,由于參數(shù)A是第一配置項 和第二配置項的交集,因此,參數(shù)A可作為上述公共配置項。
[0097] 進而,若第一配置項和第二配置項中包括公共配置項,則執(zhí)行上述步驟107a-108a;若第一配置項和第二配置項中不包括公共配置項,則執(zhí)行上述步驟107b或108b。
[0098] 具體的,在步驟107a中,若第一配置項和第二配置項中包括上述公共配置項,例如 上述參數(shù)A,那么,環(huán)境構(gòu)建單元02可以保留初始生產(chǎn)環(huán)境的配置項內(nèi)容中的參數(shù)A,即第三 快照信息中的參數(shù)A,并將第一配置項中除了該公共配置項外的其他配置項,例如,上述第 二快照中的參數(shù)B、文件C以及參數(shù)B、文件C的取值,復(fù)制到初始生產(chǎn)環(huán)境的配置項內(nèi)容中, 從而構(gòu)建出修正生產(chǎn)環(huán)境。
[0099] 進一步,可選的,對于第一配置項和第二配置項中共同的公共配置項,在步驟108a 中,環(huán)境構(gòu)建單元02也可以在上述配置字典中查找與該公共配置項對應(yīng)的替換配置;并將 查找到的與該公共配置項對應(yīng)的替換配置也復(fù)制到上述配置項內(nèi)容中,得到修正生產(chǎn)環(huán) 境。
[0?00]相應(yīng)的,若第一配置項和第二配置項中不包括上述公共配置項,則在步驟107b中, 環(huán)境構(gòu)建單元02可直接將第一配置項復(fù)制到初始生產(chǎn)環(huán)境的配置項內(nèi)容中,從而構(gòu)建出修 正生產(chǎn)環(huán)境。
[0101] 又或者,若第一配置項和第二配置項中不包括上述公共配置項,在步驟108b中,環(huán) 境構(gòu)建單元02可以在上述配置字典中查找與第一配置項對應(yīng)的替換配置;并將查找到的與 第一配置項對應(yīng)的替換配置復(fù)制到上述配置項內(nèi)容中,得到修正生產(chǎn)環(huán)境。
[0102] 最后,在步驟109中,部署單元03可以從版本庫04中獲取上述應(yīng)用的源代碼進行編 譯得到可執(zhí)行代碼,并將該可執(zhí)行代碼部署至上述構(gòu)建出的修正生產(chǎn)環(huán)境中,實現(xiàn)應(yīng)用的 自動部署上線功能。
[0103] 進一步可選的,應(yīng)用部署裝置還可以設(shè)置測試單元05對上述修正生產(chǎn)環(huán)境進行測 試,例如,在上述修正生產(chǎn)環(huán)境中試運行上述應(yīng)用的可執(zhí)行代碼,以檢測步驟中構(gòu)建出的修 正生產(chǎn)環(huán)境是否正常。
[0104] 進而,在步驟111中,若上述測試結(jié)果不符合預(yù)設(shè)的測試結(jié)果,還可以設(shè)置回滾單 元06將上述修正生產(chǎn)環(huán)境還原至初始生產(chǎn)環(huán)境,由于該初始生產(chǎn)環(huán)境即為上一次成功部署 應(yīng)用時構(gòu)建出的修正生產(chǎn)環(huán)境,因此,還原至初始生產(chǎn)環(huán)境后方便開發(fā)人員在上一次成功 部署應(yīng)用時的修正生產(chǎn)環(huán)境的基礎(chǔ)上,進行修改和調(diào)試。
[0105] 至此,本發(fā)明提供一種應(yīng)用部署方法,可獲取到成功運行應(yīng)用時需要設(shè)置的第一 配置項和第二配置項,其中,該第一配置項為開發(fā)環(huán)境在運行應(yīng)用的可執(zhí)行代碼之前與運 行所述應(yīng)用的可執(zhí)行代碼之后發(fā)生變化的數(shù)據(jù),該第二配置項為運行所述可執(zhí)行代碼之前 的開發(fā)環(huán)境與初始生產(chǎn)環(huán)境之間不相同的數(shù)據(jù);這樣,應(yīng)用部署裝置根據(jù)該第一配置項和 第二配置項修正初始生產(chǎn)環(huán)境的配置項內(nèi)容,可構(gòu)建出可靠性更高的修正生產(chǎn)環(huán)境,那么, 將應(yīng)用部署至該修正生產(chǎn)環(huán)境中后,可提高應(yīng)用部署的成功率。
[0106] 另外,本發(fā)明實施例提供的上述應(yīng)用部署裝置100,可應(yīng)用在任一種可實現(xiàn)應(yīng)用部 署的應(yīng)用管理設(shè)備中,如圖4所示,為本發(fā)明實施例提供的一種應(yīng)用管理設(shè)備200的結(jié)構(gòu)示 意圖,本發(fā)明實施例提供的應(yīng)用管理設(shè)備200可以用于實施上述圖4所示的本發(fā)明各實施例 實現(xiàn)的方法,為了便于說明,僅示出了與本發(fā)明實施例相關(guān)的部分,具體技術(shù)細節(jié)未揭示 的,請參照圖4所示的本發(fā)明各實施例。
[0107] 其中,應(yīng)用管理設(shè)備200包括至少一個處理器11,通信總線12,存儲器13以及至少 一個通信接口 14。
[0108] 示例性的,圖1中對比單元12、環(huán)境構(gòu)建單元02、測試單元05以及回滾單元06的各 項功能,可以由上述處理器11執(zhí)行;而快照單元11內(nèi)存儲的快照信息可存儲在存儲器13內(nèi)。
[0109] 處理器11可以是一個通用中央處理器(CPU),微處理器,特定應(yīng)用集成電路 (application-specific integrated circuit,ASIC),或一個或多個用于控制本發(fā)明方案 程序執(zhí)行的集成電路。
[0110] 通信總線12可包括一通路,在上述組件之間傳送信息。所述通信接口 14,使用任何 收發(fā)器一類的裝置,用于與其他設(shè)備或通信網(wǎng)絡(luò)通信,如以太網(wǎng),無線接入網(wǎng)(RAN),無線局 域網(wǎng)(Wireless Local Area Networks,WLAN)等。
[0111] 存儲器13可以是只讀存儲器(read-only memory,R0M)或可存儲靜態(tài)信息和指令 的其他類型的靜態(tài)存儲設(shè)備,隨機存取存儲器(random access memory,RAM)或者可存儲信 息和指令的其他類型的動態(tài)存儲設(shè)備,也可以是電可擦可編程只讀存儲器(Electrically Erasable Programmable Read-Only Memory,EEPR0M)、只讀光盤(Compact Disc Read-Only Memory,⑶-ROM)或其他光盤存儲、光碟存儲(包括壓縮光碟、激光碟、光碟、數(shù)字通用 光碟、藍光光碟等)、磁盤存儲介質(zhì)或者其他磁存儲設(shè)備、或者能夠用于攜帶或存儲具有指 令或數(shù)據(jù)結(jié)構(gòu)形式的期望的程序代碼并能夠由計算機存取的任何其他介質(zhì),但不限于此。 存儲器可以是獨立存在,通過通信總線與處理器相連接。存儲器也可以和處理器集成在一 起。
[0112] 其中,所述存儲器13用于存儲執(zhí)行本發(fā)明方案的應(yīng)用程序代碼,并由處理器11來 控制執(zhí)行。所述處理器11用于執(zhí)行所述存儲器13中存儲的應(yīng)用程序代碼。
[0113] 在具體實現(xiàn)中,作為一種實施例,處理器11可以包括一個或多個CPU,例如圖4中的 CPU0和CPU1。
[0114] 在具體實現(xiàn)中,作為一種實施例,應(yīng)用管理設(shè)備200可以包括多個處理器,例如圖4 中的處理器11和處理器18。這些處理器中的每一個可以是一個單核(Single-CPU)處理器, 也可以是一個多核(multi-CPU)處理器。這里的處理器可以指一個或多個設(shè)備、電路、和/或 用于處理數(shù)據(jù)(例如計算機程序指令)的處理核。
[0115]在具體實現(xiàn)中,作為一種實施例,應(yīng)用管理設(shè)備200還可以包括輸出設(shè)備15和輸入 設(shè)備16。輸出設(shè)備15和處理器11通信,可以以多種方式來顯示信息。例如,輸出設(shè)備15可以 是液晶顯不器(liquid crystal display,LCD),發(fā)光二級管(light emitting diode,LED) 顯示設(shè)備,陰極射線管(cathode ray tube,CRT)顯示設(shè)備,或投影儀(projector)等。輸入 設(shè)備16和處理器11通信,可以以多種方式接受用戶的輸入。例如,輸入設(shè)備16可以是鼠標、 鍵盤、觸摸屏設(shè)備或傳感設(shè)備等。
[0116]上述的應(yīng)用管理設(shè)備200可以是一個通用計算機設(shè)備或者是一個專用計算機設(shè) 備。在具體實現(xiàn)中,應(yīng)用管理設(shè)備200可以是臺式機、便攜式電腦、網(wǎng)絡(luò)服務(wù)器、掌上電腦 (Personal Digital Assistant,PDA)、移動手機、平板電腦、無線終端設(shè)備、通信設(shè)備、嵌入 式設(shè)備或有圖4中類似結(jié)構(gòu)的設(shè)備。本發(fā)明實施例不限定應(yīng)用管理設(shè)備200的類型。
[0117]需要說明的是,由于圖1中快照單元11、對比單元12以及環(huán)境構(gòu)建單元02等各個功 能單元,可以以邏輯功能模塊的形式分別設(shè)置在一個或多個實體設(shè)備中,因此,可以設(shè)置多 個如圖4所示的應(yīng)用管理設(shè)備200分別實現(xiàn)圖1中部署裝置100內(nèi)各個功能單元的功能。
[0118] 例如,可以設(shè)置第一應(yīng)用管理設(shè)備執(zhí)行快照單元11的相應(yīng)功能,設(shè)置第二應(yīng)用管 理設(shè)備執(zhí)行對比單元12的相應(yīng)功能,設(shè)置第三應(yīng)用管理設(shè)備執(zhí)行環(huán)境構(gòu)建單元02的相應(yīng)功 能,并設(shè)置第四應(yīng)用管理設(shè)備執(zhí)行測試單元05和回滾單元06的相應(yīng)功能,本發(fā)明實施例對 此不做限定。
[0119] 至此,本發(fā)明提供一種應(yīng)用管理設(shè)備,可獲取到成功運行應(yīng)用時需要設(shè)置的第一 配置項和第二配置項,其中,該第一配置項為開發(fā)環(huán)境在運行應(yīng)用的可執(zhí)行代碼之前與運 行所述應(yīng)用的可執(zhí)行代碼之后發(fā)生變化的數(shù)據(jù),該第二配置項為運行所述可執(zhí)行代碼之前 的開發(fā)環(huán)境與初始生產(chǎn)環(huán)境之間不相同的數(shù)據(jù);這樣,應(yīng)用部署裝置根據(jù)該第一配置項和 第二配置項修正初始生產(chǎn)環(huán)境的配置項內(nèi)容,可構(gòu)建出可靠性更高的修正生產(chǎn)環(huán)境,那么, 將應(yīng)用部署至該修正生產(chǎn)環(huán)境中后,可提高應(yīng)用部署的成功率。
[0120] 所屬領(lǐng)域的技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能 模塊的劃分進行舉例說明,實際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模 塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功 能。上述描述的系統(tǒng),裝置和單元的具體工作過程,可以參考前述方法實施例中的對應(yīng)過 程,在此不再贅述。
[0121] 在本申請所提供的幾個實施例中,應(yīng)該理解到,所揭露的系統(tǒng),裝置和方法,可以 通過其它的方式實現(xiàn)。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模塊或 單元的劃分,僅僅為一種邏輯功能劃分,實際實現(xiàn)時可以有另外的劃分方式,例如多個單元 或組件可以結(jié)合或者可以集成到另一個系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點,所 顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的 間接耦合或通信連接,可以是電性,機械或其它的形式。
[0122] 所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯 示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個 網(wǎng)絡(luò)單元上??梢愿鶕?jù)實際的需要選擇其中的部分或者全部單元來實現(xiàn)本實施例方案的目 的。
[0123] 另外,在本發(fā)明各個實施例中的各功能單元可以集成在一個處理單元中,也可以 是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單 元既可以采用硬件的形式實現(xiàn),也可以采用軟件功能單元的形式實現(xiàn)。
[0124] 所述集成的單元如果以軟件功能單元的形式實現(xiàn)并作為獨立的產(chǎn)品銷售或使用 時,可以存儲在一個計算機可讀取存儲介質(zhì)中?;谶@樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上 或者說對現(xiàn)有技術(shù)做出貢獻的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式 體現(xiàn)出來,該計算機軟件產(chǎn)品存儲在一個存儲介質(zhì)中,包括若干指令用以使得一臺計算機 設(shè)備(可以是個人計算機,服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個 實施例所述方法的全部或部分步驟。而前述的存儲介質(zhì)包括:U盤、移動硬盤、只讀存儲器 (ROM,Read_Only Memory)、隨機存取存儲器(RAM,Random Access Memory)、磁碟或者光盤 等各種可以存儲程序代碼的介質(zhì)。
[0125]以上所述,僅為本發(fā)明的【具體實施方式】,但本發(fā)明的保護范圍并不局限于此,任何 熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵 蓋在本發(fā)明的保護范圍之內(nèi)。因此,本發(fā)明的保護范圍應(yīng)以所述權(quán)利要求的保護范圍為準。
【主權(quán)項】
1. 一種應(yīng)用部署方法,其特征在于,包括: 獲取第一配置項,所述第一配置項為開發(fā)環(huán)境在運行應(yīng)用的可執(zhí)行代碼之前與運行所 述應(yīng)用的可執(zhí)行代碼之后發(fā)生變化的數(shù)據(jù); 獲取第二配置項,所述第二配置項為運行所述可執(zhí)行代碼之前的開發(fā)環(huán)境與初始生產(chǎn) 環(huán)境之間不相同的數(shù)據(jù); 根據(jù)所述第一配置項和所述第二配置項修正所述初始生產(chǎn)環(huán)境的配置項內(nèi)容,得到修 正生產(chǎn)環(huán)境; 將所述應(yīng)用部署至所述修正生產(chǎn)環(huán)境中。2. 根據(jù)權(quán)利要求1所述的方法,其特征在于,獲取第一配置項,包括: 在所述開發(fā)環(huán)境中運行所述應(yīng)用的可執(zhí)行代碼之前,保存所述開發(fā)環(huán)境的第一快照信 息; 在所述開發(fā)環(huán)境中成功運行所述應(yīng)用的可執(zhí)行代碼之后,保存所述開發(fā)環(huán)境的第二快 照信息; 根據(jù)所述第二快照信息中與所述第一快照信息不同的部分,確定所述第一配置項。3. 根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述第二快照信息中與所述第一快照 信息不同的部分,確定所述第一配置項,包括: 將所述第二快照信息中與所述第一快照信息不同的差別數(shù)據(jù)作為第一配置項。4. 根據(jù)權(quán)利要求2所述的方法,其特征在于,根據(jù)所述第二快照信息中與所述第一快照 信息不同的部分,確定所述第一配置項,包括: 根據(jù)所述第二快照信息中與所述第一快照信息不同的差別數(shù)據(jù),在預(yù)設(shè)的配置字典中 查找與所述差別數(shù)據(jù)對應(yīng)的替換數(shù)據(jù),所述配置字典中存儲有所述差別數(shù)據(jù)與差別內(nèi)容之 間的映射關(guān)系; 將查找到的與所述差別數(shù)據(jù)對應(yīng)的替換數(shù)據(jù)作為第一配置項。5. 根據(jù)權(quán)利要求2-4中任一項所述的方法,其特征在于,獲取第二配置項,包括: 在所述初始生產(chǎn)環(huán)境中運行所述應(yīng)用的可執(zhí)行代碼之前,保存所述初始生產(chǎn)環(huán)境的第 二快照?目息; 根據(jù)所述第三快照信息中與所述第一快照信息不同的部分,確定所述第二配置項。6. 根據(jù)權(quán)利要求1-5中任一項所述的方法,其特征在于,根據(jù)所述第一配置項和所述第 二配置項修正所述初始生產(chǎn)環(huán)境的配置項內(nèi)容,得到修正生產(chǎn)環(huán)境,包括: 若所述第一配置項和所述第二配置項中沒有公共配置項,則將所述第一配置項復(fù)制到 所述配置項內(nèi)容中,得到修正生產(chǎn)環(huán)境,所述公共配置項為所述第一配置項和所述第二配 置項的交集。7. 根據(jù)權(quán)利要求1-5中任一項所述的方法,其特征在于,根據(jù)所述第一配置項和所述第 二配置項修正所述初始生產(chǎn)環(huán)境的配置項內(nèi)容,得到修正生產(chǎn)環(huán)境,包括: 若所述第一配置項和所述第二配置項中沒有公共配置項,則在預(yù)設(shè)的配置字典中查找 與所述第一配置項對應(yīng)的替換配置項,所述公共配置項為所述第一配置項和所述第二配置 項的交集,所述配置字典中存儲有所述第一配置項與替換配置項之間的對應(yīng)關(guān)系; 將查找到的與所述第一配置項對應(yīng)的替換配置項復(fù)制到所述配置項內(nèi)容中,得到修正 生產(chǎn)環(huán)境。8. 根據(jù)權(quán)利要求6或7所述的方法,其特征在于,若所述第一配置項和所述第二配置項 中包含公共配置項,則還包括: 將所述第一配置項中除所述公共配置項外的配置項,復(fù)制到所述初始生產(chǎn)環(huán)境的配置 項內(nèi)容中,得到修正生產(chǎn)環(huán)境。9. 根據(jù)權(quán)利要求8所述的方法,其特征在于,在將所述第一配置項中除所述公共配置項 外的配置項,復(fù)制到所述初始生產(chǎn)環(huán)境的配置項內(nèi)容中之后,還包括: 在預(yù)設(shè)的配置字典中查找與所述公共配置項對應(yīng)的替換配置項,所述配置字典中存儲 有所述公共配置項與替換配置項之間的對應(yīng)關(guān)系; 將查找到的與所述公共配置項對應(yīng)的替換配置項復(fù)制到所述配置項內(nèi)容中,得到修正 生產(chǎn)環(huán)境。10. 根據(jù)權(quán)利要求1-5中任一項所述的方法,其特征在于,在根據(jù)所述第一配置項和所 述第二配置項修正所述初始生產(chǎn)環(huán)境的配置項內(nèi)容之后,還包括: 對所述修正生產(chǎn)環(huán)境進行測試; 若測試結(jié)果不符合預(yù)設(shè)的測試結(jié)果,則將所述修正生產(chǎn)環(huán)境還原至所述初始生產(chǎn)環(huán) 境。11. 一種應(yīng)用部署裝置,其特征在于,包括: 獲取單元,用于獲取第一配置項以及第二配置項,其中,所述第一配置項為開發(fā)環(huán)境在 運行應(yīng)用的可執(zhí)行代碼之前與運行所述應(yīng)用的可執(zhí)行代碼之后發(fā)生變化的數(shù)據(jù),所述第二 配置項為運行所述可執(zhí)行代碼之前的開發(fā)環(huán)境與初始生產(chǎn)環(huán)境之間不相同的數(shù)據(jù); 環(huán)境構(gòu)建單元,用于根據(jù)所述第一配置項和所述第二配置項修正所述初始生產(chǎn)環(huán)境的 配置項內(nèi)容,得到修正生產(chǎn)環(huán)境; 部署單元,用于將所述應(yīng)用部署至所述修正生產(chǎn)環(huán)境中。12. 根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述裝置還包括: 快照單元,用于在所述開發(fā)環(huán)境中運行所述應(yīng)用的可執(zhí)行代碼之前,保存所述開發(fā)環(huán) 境的第一快照信息;以及,在所述開發(fā)環(huán)境中成功運行所述應(yīng)用的可執(zhí)行代碼之后,保存所 述開發(fā)環(huán)境的第二快照信息; 對比單元,用于根據(jù)所述第二快照信息中與所述第一快照信息不同的部分,確定所述 第一配置項。13. 根據(jù)權(quán)利要求12所述的裝置,其特征在于, 所述對比單元,具體用于將所述第二快照信息中與所述第一快照信息不同的差別數(shù)據(jù) 作為第一配置項。14. 根據(jù)權(quán)利要求12所述的裝置,其特征在于, 所述對比單元,具體用于根據(jù)所述第二快照信息中與所述第一快照信息不同的差別數(shù) 據(jù),在預(yù)設(shè)的配置字典中查找與所述差別數(shù)據(jù)對應(yīng)的替換數(shù)據(jù),所述配置字典中存儲有所 述差別數(shù)據(jù)與差別內(nèi)容之間的映射關(guān)系;將查找到的與所述差別數(shù)據(jù)對應(yīng)的替換數(shù)據(jù)作為 第一配置項。15. 根據(jù)權(quán)利要求12-14中任一項所述的裝置,其特征在于, 所述快照單元,還用于在所述初始生產(chǎn)環(huán)境中運行所述應(yīng)用的可執(zhí)行代碼之前,保存 所述初始生產(chǎn)環(huán)境的第三快照信息; 所述對比單元,還用于根據(jù)所述第三快照信息中與所述第一快照信息不同的部分,確 定所述第二配置項。16. 根據(jù)權(quán)利要求11-15中任一項所述的裝置,其特征在于, 所述環(huán)境構(gòu)建單元,具體用于若所述第一配置項和所述第二配置項中沒有公共配置 項,則將所述第一配置項復(fù)制到所述配置項內(nèi)容中,得到修正生產(chǎn)環(huán)境,所述公共配置項為 所述第一配置項和所述第二配置項的交集。17. 根據(jù)權(quán)利要求11-15中任一項所述的裝置,其特征在于, 所述環(huán)境構(gòu)建單元,具體用于若所述第一配置項和所述第二配置項中沒有公共配置 項,則在預(yù)設(shè)的配置字典中查找與所述第一配置項對應(yīng)的替換配置項,所述公共配置項為 所述第一配置項和所述第二配置項的交集,所述配置字典中存儲有所述第一配置項與替換 配置項之間的對應(yīng)關(guān)系;將查找到的與所述第一配置項對應(yīng)的替換配置項復(fù)制到所述配置 項內(nèi)容中,得到修正生產(chǎn)環(huán)境。18. 根據(jù)權(quán)利要求16或17所述的裝置,其特征在于, 所述環(huán)境構(gòu)建單元,還用于若所述第一配置項和所述第二配置項中包含公共配置項, 則將所述第一配置項中除所述公共配置項外的配置項,復(fù)制到所述初始生產(chǎn)環(huán)境的配置項 內(nèi)容中,得到修正生產(chǎn)環(huán)境。19. 根據(jù)權(quán)利要求18所述的裝置,其特征在于, 所述環(huán)境構(gòu)建單元,還用于在預(yù)設(shè)的配置字典中查找與所述公共配置項對應(yīng)的替換配 置項,所述配置字典中存儲有所述公共配置項與替換配置項之間的對應(yīng)關(guān)系;將查找到的 與所述公共配置項對應(yīng)的替換配置項復(fù)制到所述配置項內(nèi)容中,得到修正生產(chǎn)環(huán)境。20. 根據(jù)權(quán)利要求11-19中任一項所述的裝置,其特征在于,所述裝置還包括: 測試單元,用于對所述修正生產(chǎn)環(huán)境進行測試; 回滾單元,用于若測試結(jié)果不符合預(yù)設(shè)的測試結(jié)果,則將所述修正生產(chǎn)環(huán)境還原至所 述初始生產(chǎn)環(huán)境。
【文檔編號】G06F9/445GK106095501SQ201610408133
【公開日】2016年11月9日
【申請日】2016年6月12日
【發(fā)明人】俞前
【申請人】華為軟件技術(shù)有限公司