我想人們認爲Rails應用程序比部分PHP應用程序更難以部署,或者只是在某處放置代碼並指向Apache或其他任何地方。但是,如上所述,您現在可以使用Phusion Passenger來做到這一點。
我們使用Nginx + Passenger,但不是爲了簡化部署。 Capistrano是我們選擇的部署工具,除非你有一個非常簡單的應用程序,否則你肯定會想要像Capistrano這樣的東西。例如,對於我們的部署,我們做的事情擺:
- 運行任何數據庫遷移
- 生成發佈自動指出,根據所有提交的最後部署之間Git和這一個
- 通知不同的人通過電子郵件(不同的名單取決於部署到我們的舞臺環境或生產) - 我們通過與Capistrano集成的cap_gun來完成。
- 通知部署的New Relic的RPM,因此它可以在我們的RPM分析其標記
- 通知黽部署的,因此它報告任何異常
- 生產我們sitemap.xml的文件時,也能有這些數據,並ping谷歌告訴他們有一個新的
- 更新crontab文件(我存儲我們的git倉庫中的每個服務器的crontab文件,然後部署它看看是否有新版本和相應的更新等)。
- 沖洗/重啓memcached的
還有其他的方法除了Capistrano的,但它是一個經過驗證的工具,具有很大的靈活性,但很簡單的設置香草配置。
所以,我的看法是,一旦你進入任何超出最簡單的應用程序的應用程序,你就需要/想要做的事情,而不僅僅是更新代碼。一開始,如果你只需要代碼更新和Rails遷移,那麼你可以做更簡單的事情,例如Passenger和代碼同步,或者查看諸如Heroku或Engine Yard的工具,他們通過執行Git克隆進行部署(然後提供一些額外的能力)。
更多資源可以在http://rubyonrails.org/deploy –
找到我甚至使用capistrano來設置一個新的railsapp來自動部署。 所以我說「帽子設置:新鮮」,這將照顧一切,如設置testurl,設置本地gitrepository和我的源服務器,進行初始提交,設置新的虛擬主機等等。 。 –