在Erlang(和Riak)中开发应用程序的良好做法?

问题描述 投票:19回答:1

我们熟悉Erlang / OTP和Riak(Core,KV,Pipe等),试图依次构建开源分布式应用程序。我们的项目将具有大量依赖关系:erlang_js,protobuffs等工具,以及我们需要运行的服务,例如Riak KV。

在Python / Ruby / Node.js中,如果将模块放置在相对于项目的标准子目录中,则可以引用它们,然后将它们打包在发行版中。您可以在项目目录中启动外壳程序,使用模块,进行测试等,只要遵循良好实践,就可以轻松完成所有工作。

在Erlang / OTP中组织开发环境,所有依赖关系都可以到达(并且可以轻松地更新到最新版本),对运行节点的shell访问,测试,发布等的最佳实践是什么?

erlang otp riak
1个回答
27
投票

签出钢筋: 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 OneOTP Packaging Video by Chicago Boss GuysErlang Dependency ManagementRichard Jones Advice and examples on Packaging Erlang Projects with DependenciesMaven Tool and how it is used in packaging Erlang Projects

最重要的是,非常重视rebar!在管理具有依赖关系的Erlang应用程序中,这非常重要。您可以继续在stackoverflow上将您的问题发布在此处,以在进行过程中获得任何帮助。在我忘记之前,请从[Riak Community

中检出很多东西

编辑同样,重要的是要查看creating target systems上的系统文档以及如何使用Reltool来处理发行版。 erlang的好处在于,它可以通过多种方式进行操作,只要它可以轻松地维护应用程序即可。在目标系统上,您将学习如何嵌入Erlang VM,如何在SolarisVxWorks上运行Erlang应用程序以及如何使用erlsrv在Windows NT上将Erlang应用程序创建为服务。通常,我们确保在操作系统引导服务器时,我们的应用程序以此启动。到目前为止,在嵌入Erlang / OTP VM方面,Solaris比任何其他OS都有更多的自定义项。您始终可以使用Escript与嵌入式Erlang VM进行通信,其中escript会创建一个erlang节点,该节点可以连接到嵌入式VM(因此它们必须共享相同的cookie),并且如果嵌入式VM必须通过执行

net_kernel:allow(List_of_nodes)
允许临时创建的节点进行连接,则请确保调用此方法,以使嵌入式VM仅允许来自已知严格指定数量的节点的连接。
© www.soinside.com 2019 - 2024. All rights reserved.