我是Erlang noob,我一直在檢查出Faxien + Sinan和Rebar,Erlang OTP的基本理念似乎是,在單個Erlang圖像實例上安裝應用程序和發行版。保持版本自包含的最佳做法是什麼?有沒有辦法打包發佈,以便您不必爲要部署到的計算機修改站點?如何將所有依賴關係收集到代碼庫中進行管理?Erlang發佈最佳實踐?
也許我正在反對穀物......我來自Java背景,「沒有預裝但JVM」的理念看起來非常不同。
我是Erlang noob,我一直在檢查出Faxien + Sinan和Rebar,Erlang OTP的基本理念似乎是,在單個Erlang圖像實例上安裝應用程序和發行版。保持版本自包含的最佳做法是什麼?有沒有辦法打包發佈,以便您不必爲要部署到的計算機修改站點?如何將所有依賴關係收集到代碼庫中進行管理?Erlang發佈最佳實踐?
也許我正在反對穀物......我來自Java背景,「沒有預裝但JVM」的理念看起來非常不同。
恕我直言,這不能用幾句話來回答。您應該閱讀所包含文檔的某些部分,尤其是「Erlang/OTP System Documentation」(otp-system-documentation-XYZpdf,其中XYZ是版本號),或者查看書籍「Erlang and OTP in Action」,因爲在本書中有「服務」的「一個」示例,從第一步開始使用不同的「部分」,使用Erlang/OTP概念並最終構建「發佈版」。
恕我直言,這是目前最好的書,因爲它不僅引入了Erlang,而且還顯示了OTP是什麼以及如何將OTP用於項目。這不僅僅是一個鬆散樣本的集合,而是一切都圍繞着一個項目而建立。
我將介紹,目前對我的作品進行定期(通常爲每天)版本少數情況下,對EC2的辦法:我建立了我的項目,螺紋鋼
make
。這將獲取我的依賴關係並構建一切。git pull
和一個rebar update-deps
。根據更改的情況,我可能會重新啓動節點,或者經常連接到正在運行的節點並重新加載更新的模塊。它有助於啓動並附加腳本作爲項目的一部分。查看如何打包webmachine這樣的項目可能會有幫助。
我不太瞭解標準的OTP發佈管理系統,除了看起來像很多工作。因爲這似乎與快速部署相反,我從來沒有給過它認真的嘗試 - 儘管我確定它對其他項目有意義。