簡體   English   中英

如何在客戶端升級/更新web java項目?

[英]How do you upgrade / update web java project at your clients?

假設我們正在開發一個新的客戶端/服務器Java Web應用程序。 我們最終發布了1.0版本並賣給了少數客戶。 客戶在自己的服務器上部署了我們的項目。 一段時間后,我們發現了一些錯誤,我們想更新我們的應用程序。

是否有任何框架/技術/模式/庫/服務器可以幫助開發可以自動更新的應用程序,包括以下步驟:

  • 復制新項目發布
  • 取消使用舊版本
  • 部署新版本
  • 更新數據庫

目前我們已經向客戶提供vpn,我們正在手動完成上述所有步驟。 是否可以將我們的客戶版本與我們的存儲庫同步?

您正在談論的技術是安裝程序。 並且存在應用程序安裝程序框架

但是,當您的應用程序將重要狀態存儲在數據庫中或其他任何情況時,自動遷移數據是棘手且有風險的......並且在通用安裝程序產品的上下文中幾乎不可能執行。 如果您的應用程序可以由您的客戶自定義,情況也是如此。 (自定義化總是有可能破壞您的自動遷移代碼。)

現在,如果您當前手動執行的步驟很簡單,並且不需要針對不同的客戶站點進行調整,則可以實現自動化。 但是,您需要確保有一個防彈機制來備份客戶當前的安裝和數據,並在必要時自動升級過程失敗時進行恢復。

對於DB部分,您可以使用liquibase Liquibase是一個管理數據庫遷移的maven插件/ lib(將數據庫升級到更新的版本)。 使用liquibase執行此操作的一種方法是部署一個特殊的servlet,該servlet將查詢包含當前db版本的模式表

如果您可以執行遠程部署 (例如:通過tomcat管理界面或任何其他界面),您始終可以設置一個自定義腳本來執行部署。 然后,您可以將此腳本提供給客戶端,以便他們可以按照自己的計划應用更新。

我建議不要在客戶可用時立即推出更新,因為他們(和您)可能不想立即更新它們。

JavaWebstart可以幫助部署客戶端,但如果數據庫也需要升級,我認為除非所有客戶端都關閉,否則它不能安全地完成。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM