2011-11-19 61 views
18

我們在漸漸熟悉使用Erlang/OTP和了Riak的過程(核心,KV,管,等等)鑑於發展又一個開源的分佈式應用程序。我們的項目將會有一堆依賴項:像erlang_js,protobuffs等工具,還有我們需要運行的服務,比如Riak KV。在Erlang(和Riak)開發應用程序時的最佳實踐?

在Python/Ruby的/ Node.js的,如果模塊被放置在一個標準的子目錄相對於你的項目,你可以參考他們,後來的版本將它們打包。你可以在項目目錄中啓動一個shell,使用你的模塊來玩,做測試等等,只要遵循良好的做法就可以輕鬆完成。

組織Erlang/OTP開發環境的最佳實踐是什麼?所有依賴關係都可以訪問(並且可以輕鬆更新到最新版本),對正在運行的節點進行shell訪問,測試,發佈等等?

回答

25

退房鋼筋:https://github.com/basho/rebar用於打包,模板化和管理Erlang/OTP應用程序的發佈。您將在那裏找到關於如何使用它的完整教程。

結賬this tutorial on OTP首先,你可以switch to this one它顯示你的發佈以及它們在Erlang中的處理方式。在您開發項目中使用此entire book as reference因爲筆者仍逐漸增加更多先進的東西,你可能需要。

您可能還需要繼續閱讀關於Erlang Applications,然後就看看下面這些快速鏈接:

Erlang Packaging, Process One
OTP Packaging Video by Chicago Boss Guys
Erlang Dependency Management
Richard Jones Advice and examples on Packaging Erlang Projects with Dependencies
Maven Tool and how it is used in packaging Erlang Projects

最重要的是,採取rebar很認真!管理具有依賴關係的Erlang應用程序非常重要。你可以繼續發佈你的問題在你的進展中的任何協助stackoverflow。

我忘記之前,請從Riak Community

編輯

此外,它的重要檢查出的東西很多對creating target systems,並檢查出系統文檔如何使用Reltool到處理版本。 erlang的好處在於它具有多種選擇,只要易於以這種方式維護應用程序即可。有了目標系統,您將學習如何使用erlsrv嵌入Erlang的虛擬機,如何在SolarisVxWorks運行二郎應用程序,以及創建二郎應用程序作爲Windows NT服務。

通常情況下,我們確保爲操作系統進行引導的服務器,我們的應用程序與它開始。關於嵌入Erlang/OTP虛擬機,Solaris到目前爲止擁有比其他操作系統更多的定製。您可以使用Escript與嵌入式Erlang虛擬機進行通信,其中由escript創建一個允許連接到嵌入式虛擬機的erlang節點(因此它們必須共享相同的cookie),並且嵌入式虛擬機必須已通過執行

net_kernel:allow(List_of_nodes)
允許臨時創建的節點進行連接,因此請確保調用此方法以使嵌入式VM僅允許來自已知嚴格指定數量的節點的連接。

+1

非常感謝!這是一個相當完整的圖片!如果需要,我會通讀所有這些內容併發布更多問題。 – matehat

相關問題