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