1

我正在爲處於活動開發中的多個分離服務設置自動部署環境。儘管我對自動化部署/配置管理方面感到滿意,但我正在尋找如何最好地構建部署環境以使開發人員更容易一些的策略。有些事情要考慮:開發人員環境中自動部署的解決方案?

  1. 開發人員通常構建Web應用程序,Web服務和後臺程序 - 所有這些相互交談通過HTTP,插座等
  2. 開發者可能不具備所有他們在本地機器上運行,但仍然需要能夠快速地做終端通過在環境指着他們的機器,結束測試

我與持續部署最大的擔憂是,我們有一個龐大的團隊,我不希望當開發人員在本地對這些遠程服務器進行工作時不斷重新啓動服務。另一方面,延遲部署到這個開發環境使集成測試變得更加困難。

你能推薦一種在過去這種情況下使用過的策略嗎?

回答

0

持續集成並不意味着持續部署。你可以編譯/單元測試/等代碼「連續」,而不需要部署它,只在夜間部署。無論如何,這通常是一個好主意 - 在夜間或按需部署 - 因爲人們可能在白天進行集成測試,並且不希望代碼庫從它們下面更換。

考慮一下,開發人員可以在本地測試多少軟件?如果很多,他們不應該不斷需要環境。如果不是很多,那麼設置mock/stubs會很好,所以可以在本地服務器上測試更多。然後,只有真正的集成測試需要部署的環境,並且不需要全天不斷更新。

+0

所有的優點,但我真的想要持續部署。開發人員可以在本地進行測試,但採用分離式服務方法,只要能夠開發用戶界面,就需要能夠插入環境。 – 2010-07-23 13:47:06

0

我建議設置一個CI服務器(Hudson?)並用它來控制所有部署到您的QA和生產服務器。這迫使您自動執行部署的所有方面,並確保開發人員不需要特意重新啓動系統。

我還建議您考慮將構建輸出發佈到像Nexus,Artifactory或Archiva這樣的存儲庫管理器。通過這種方式,部署腳本可以檢索以前版本的任何版本。使用資源庫管理器可以使您的QA團隊在部署到生產環境之前對其進行認證。

最後,考慮一種新興的部署自動化工具。諸如chef,puppet,ControlTier等工具可用於進一步版本控制您的基礎架構的配置。

0

我同意Mark在使用Hudson構建自動化方面的建議。我們看到成功的持續部署項目使用Nolio ASAP(http://www.noliosoft.com)在構建完成後自動部署應用程序。如前所述,廚師,傀儡等對中間件安裝和配置非常有用,但是當您需要不斷髮布新的應用程序版本時,像應用程序爲中心的Nolio ASAP等平臺更適合。

您應該擁有最佳的IT運營人員創建和批准應用程序發佈流程,然後爲開發人員提供一個接口,以便在批准的環境中運行這些流程。