2009-11-10 257 views
1

我有一個跨兩個Web服務器負載均衡的應用程序(很快就是三個),部署是一個真正的痛苦。首先,我必須執行數據庫端,但是會破壞正在運行的生產代碼 - 如果我先執行代碼,那麼數據庫端還沒有準備好,等等。負載均衡部署

我很好奇的是這裏的每個人都是如何部署到負載平衡的X服務器集羣的。由於從測試代碼發佈到每個服務器(多個服務和多個站點)大約需要10分鐘,我希望有人對最佳實踐有所瞭解。

如果這是錯誤的網站要求(meta絕對不適用 - 不知道如果serverfault做了,因爲我是一個開發部署)我願意重新詢問其他地方。

+0

你的問題不是負載平衡 - 它與數據庫版本控制。 – Jimmy 2009-11-10 00:20:14

+0

數據庫版本控制是什麼意思? – RubyHaus 2009-11-10 19:54:41

回答

2

我使用nant腳本和psexec來執行它們。

基本上在服務器場中有一個主服務器,它在本地複製應用程序和數據庫腳本,然後在服務器場中的每臺服務器上執行部署腳本,在本地複製代碼,如果需要則修改它,使應用程序脫機部署代碼並採取應用在線

通常情況下,應用程序是爲約20秒(5個節點)

而且,我還沒有嘗試過,但我聽到了很多關於MSDeploy。

希望這有助於

+0

有趣的,我會檢查這兩個。謝謝! – RubyHaus 2009-11-10 01:38:40

1

呀,如果你想與沒有停機時間,你應該看看HA(高可用性)的技術來做到這一點。看看Paul Bertucci的一本書 - 我認爲它叫做SQL Server High Availability或者其他的。否則,請打開「維護」頁面,關閉所有應用程序服務器,首先執行數據庫和一臺應用程序服務器,然後進入實時並離線執行另外兩臺應用程序服務器。

+0

我不知道這是否會起作用 - 數據庫服務器是Oracle,而且我沒有SQL的dbo訪問權限。我之前完成了維護工作,但這對後端處理沒有幫助。 – RubyHaus 2009-11-10 01:38:06

+0

噢,我認爲我在腦海中添加了「如何在沒有停機的情況下執行此操作」 - 對不起! 我不認爲有什麼「最佳做法」來做你現在正在做的事情。如果一家公司無法承擔在數據庫層次上對醫管局的投資,他們通常會提前發送電子郵件,並提出「即將推出」頁面。然後,他們不會回來,直到他們不僅部署,而且做了足夠的測試才能得到滿足。根據我的經驗,通常是深夜。 如果你想弄清楚如何更快地獲得從a點到b點的代碼,也許你可以給我們更多的細節? – 2009-11-10 01:54:15

+0

我認爲後面的快頁面和自動腳本的組合是我未來的明證。速度部分不是太糟糕,我只需要想出一個更好的機制,而不是手動完成所有這些東西。 – RubyHaus 2009-11-10 20:01:42