簡體   English   中英

在服務器集群上連續部署

[英]Continuous deployment over a cluster of servers

我目前正在與處於過渡階段的初創公司合作。

我們有一個PHP Web應用程序,並利用與標准單元的持續集成和對詹金斯進行的回歸測試(硒)。 我們有一個開發服務器,它承載着新提交的代碼,還有一個暫存服務器,該暫存服務器保留了可用於部署到生產服務器的構建。 我們部署到生產服務器的方式是通過一個基本腳本,該腳本提取最新的svn副本並覆蓋htdocs目錄中的更改。 通過MySQL Workbench的同步功能可以應用任何SQL更改。

對於非常基本的環境,此設置可以正常工作,但是由於流量大,我們現在正從單服務器設置過渡到群集,我遇到了一個難題。

  • 我主要擔心的是,我們如何准確地將部署從單個服務器切換到服務器集群? 每個服務器都有自己的htdocs和SQL數據庫,在當前設置下,我需要在每個服務器上執行腳本,這聽起來像是一件令人討厭的事情。 我一直在研究puppet,它可以用來自動執行sysadmin任務,但是我不確定這是否是將新版本部署到集群的強大方法。

  • 我的第二個問題是與數據庫有關。 現在,我的假設是代碼更改將立即應用,但是由於我們將進行數據庫主/從復制,因此我擔心數據庫更改將花費更長的時間來傳播,從而在部署期間引入了不一致之處。 代碼和數據庫如何同時同步?

  • 我的第三個問題與數據庫更改的自動化有關。 有誰知道以任何方式可以自動執行更新數據庫模式的過程,而無需手動運行同步? 目前,我必須手動運行工作台同步工具,而實際上我正在尋找一種提交和忘記的方法。 我將其提交,數據庫更改將在開發人員和質量檢查設置之間自動同步。

我正在運行類似的場景,但是我在生產環境中使用的是Cloud Provider,以便不必關心數據庫,多服務器實例等的復制。(我使用的是pagodabox,但AWS也可以正常工作精細)。

我建議您為數據庫遷移創建真實的遷移,以便通過svn或其他方式跟蹤這些遷移。 在這種情況下,您還可以提供有關如何回滾的信息。 我正在使用https://github.com/doctrine/migrations ,但是主要是因為我使用主義作為ORM。

如果您具有遷移工具,則可以輕松地在部署腳本中添加命令以在部署后運行那些遷移。

我認為在部署期間數據庫同步不是大問題。 那可能取決於您使用的實際基礎架構。 寶塔或AWS等雲服務提供商會為您照料。

暫無
暫無

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

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