我正在嘗試爲Java應用程序的零停機時間部署構建非常輕量級的解決方案。爲了簡單起見,我們認爲我們有兩臺服務器。我的解決方案是使用:針對Java應用程序的零停機時間部署
在「前端」 - 一些負載平衡器(軟件) - 我在這裏考慮HAProxy。
在「後退」 - 兩臺服務器上,兩臺服務器都運行帶有已部署應用程序的Tomcat。
當我們要部署新版本
我們禁用與HAProxy的一臺服務器,所以只有一臺服務器(讓我們稱之爲服務器A,這是運行舊版本)會可用。
在其他服務器上部署新版本(我們稱之爲服務器B),運行生產單元測試(如果我們有它們:-),並使用HAProxy啓用服務器B,同時禁用服務器A.
現在我們再次只有一個服務器處於活動狀態(服務器B,新版本)。在服務器B上部署新版本,然後重新啓用它。
任何建議如何改善?如何自動化?
任何現成的解決方案,還是必須結束我自己的自定義腳本?
謝謝!