0

我幾乎準備好啓動我的導軌應用程序,我一直在使用單個linode盒進行測試。我的git repo目前也託管在同一個盒子裏,它還包括應用程序和數據庫。我想將它們分成3個實體 - 數據庫服務器和應用程序服務器(可以輕鬆添加更多選項)以及託管在bitbucket上的回購站。設置連續部署環境以實現高效縮放

理想情況下,我希望能夠將代碼提交給bitbucket,然後設置post-commit hook push POSTS到應用程序服務器以從回購中提取新更改並自動開始提供服務。我花了很多時間閱讀關於木偶,廚師,乘客等的內容,我非常不知所措。我的設置工作正常,但我知道在時間到時它不能很好地擴展,所以我需要進行切換。我想幫助的是確定除了我已經設置的工具以外,我應該使用哪些工具以使工藝儘可能平滑。

感謝

回答

0

廚師路線是最好的,但對於學習曲線陡峭。你會考慮使用EC2嗎?如果是這樣,這個寶石可以幫助您提供(這與廚師,木偶類似)並部署到EC2。你可以設置不同的角色,也可以使用Capistrano。 https://github.com/wr0ngway/rubber

對我個人而言,我有我的發展和舞臺環境的流浪箱。廚師可以用一個命令幫助我配置/安裝軟件,包括我的生產服務器。在我的開發環境中,我可以使用Capitrano上的git repo在bitbucket上將代碼部署到分段和生產環境中。

1

我要做的第一件事就是把git倉庫移到GitHub(或BitBucket,儘管我覺得它比較低劣)。

除非你的應用程序將是一個粉碎命中,一個生產Linode將爲您服務就好了。請記住,您可以升級到較大的實例,而不會破壞設置中的任何內容。

在你有任何用戶之前,我不建議花費時間將應用分成多個服務器,特別是如果你還不熟悉你提到的基本工具。

您也可以將您的應用移動到Heroku。有一個實例作爲臨時服務器,另一個作爲生產。它將無限期地擴展,您不需要擔心自動配置和安全性。你的應用程序將啓動並運行得非常快,這是最重要的。

如果您使用非自動化的手動程序在Linode上設置生產服務器,那也不會那麼糟糕。在這個過程中你會學到很多東西。這取決於你,雖然我建議默認從Heroku開始。如果隨着時間的推移,你在Heroku上發現了一些限制你應用程序的功能,那麼當你的應用程序正在成熟和(有希望)盈利時,它可能會及時,所以現在是時候捲起袖子和管理自己的硬件。

我也不建議在每次推送到存儲庫時進行部署。你一定需要至少確保所有的測試都通過了(你正在寫測試吧?)。持續集成服務器可以在您推入回購站時自動爲您運行它們。我可以爲此推薦Semaphore

請注意,如果您使用的是Heroku,則部署只需從您的終端進行一次git推送。