在集群環境的共享驅動器上設置 Tomcat
我們有一個生產環境,在多個伺服器上執行外部負載平衡的 Tomcat 伺服器,服務 HTTP 請求並維護固定會話。
由於缺乏完整的建構和部署過程(不幸的是,我看不到在不久的將來會發生這種情況!),有一個 Ops 團隊,負責複製 JSP/類/靜態資源/屬性文件甚至更改 struts- config.xml(有時是 web.xml !)手動。我們不建立戰爭!
由於它是人工密集型工作,人為錯誤會產生很多問題,因為必須在多個環境中執行相同的步驟(在部署當天,可能至少有 10 台機器左右),這使得調試變得更加複雜。
我知道我們離理想的生產環境還很遠(甚至是實際的生產環境),但我只是在集思廣益,想如果我們可以在高速 SAN 上安裝(複製)Tomcat 並將其作為共享驅動器安裝在每個伺服器,以便至少更改將同時發送到所有節點。
請讓我知道您的想法,尤其是對這種方法的批評。
謝謝。
雖然可以在 Tomcat 部署中共享某些目錄(請參閱此問題),但共享您想要共享的目錄並不安全,而且如果您注意本地化 ./work 可能會奏效和 ./temp 目錄,如果您嘗試它,您會要求解決難以解決的問題,更不用說在您的基礎架構中引入單點故障。
作為一名開發/運營人員,我很幸運能夠與我的開發人員密切合作,並且我已經為許多非常複雜和混亂的應用程序提出了自動化部署。我在這方面的建議是,如果您可以讓您的團隊接受部署自動化的目標,那麼只要從小處著手,每次迭代都自動化一點,因為您的開發團隊和運維團隊已經習慣了流程和解決問題。
對於我在這裡對您的確切問題的建議,如果可以在您的生產機器上安裝一個共享驅動器,最好的解決方案可能是在共享驅動器上維護您的 tomcat 設置的規範映像,然後編寫一些(可能非常簡單)腳本在進行更改時更新每個應用伺服器上的全部或部分部署的 tomcat。這將更容易逐步推出更改(如果您這樣做),中止不起作用的更改,並驗證所有應用程序伺服器上的所有內容是否同步。
如果您的開發人員可以獲得對該共享驅動器的寫訪問權限,您甚至可以通過從他們那裡移除容易出錯的編輯過程並且只需要要求他們部署特定文件或目錄來幫助操作人員。一旦你得到了基礎設施和流程,那麼你就可以開始自動化了:開發人員可以編寫自動化腳本並將它們保存在共享驅動器上,供運維人員執行並從那裡建構。