2011-11-19 20 views
18

Chúng tôi đang trong quá trình làm quen với Erlang/OTP và Riak (Core, KV, Pipe, vv) theo quan điểm phát triển một ứng dụng phân phối mã nguồn mở lần lượt. Dự án của chúng tôi sẽ có một loạt các phụ thuộc: các công cụ như erlang_js, protobuffs, v.v., mà còn các dịch vụ mà chúng ta cần phải chạy, chẳng hạn như Riak KV.Thực hành tốt khi phát triển một ứng dụng trong Erlang (và Riak)?

Trong Python/Ruby/Node.js, nếu mô-đun được đặt trong thư mục con chuẩn tương ứng với dự án của bạn, bạn có thể tham chiếu chúng và sau đó đóng gói chúng trong bản phát hành. Bạn có thể kích hoạt một trình bao trong thư mục của dự án, chơi với các mô-đun của bạn, thực hiện các kiểm tra và cứ như vậy, tất cả chỉ dễ dàng nếu các thực hành tốt được theo sau.

Các phương pháp hay nhất để tổ chức môi trường phát triển trong Erlang/OTP, với tất cả các phụ thuộc có thể truy cập (và dễ cập nhật lên phiên bản mới nhất), truy cập shell để chạy các nút, kiểm tra, tạo bản phát hành, v.v.

Trả lời

25

Kiểm tra cốt thép: https://github.com/basho/rebar được sử dụng để đóng gói, dán tem và quản lý bản phát hành của ứng dụng Erlang/OTP. Bạn sẽ tìm thấy có một hướng dẫn toàn bộ về cách sử dụng nó.

Kiểm tra this tutorial on OTP trước tiên, trước khi bạn có thể switch to this one hiển thị cho bạn các bản phát hành và cách chúng được xử lý trong Erlang. Sử dụng entire book as reference khi bạn phát triển dự án của mình và vì tác giả vẫn đang dần bổ sung thêm nhiều nội dung nâng cao mà bạn có thể cần.

Bạn cũng có thể muốn tiếp tục đọc về Erlang Applications và sau đó làm kiểm tra các liên kết nhanh dưới đây:

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

Quan trọng nhất, hãy rebar rất nghiêm túc ! Nó rất quan trọng trong việc quản lý các ứng dụng Erlang có phụ thuộc. Bạn có thể tiếp tục Đăng câu hỏi của bạn ở đây trên stackoverflow cho bất kỳ sự trợ giúp nào khi bạn tiến bộ.

Trước khi tôi quên, làm kiểm tra rất nhiều thứ từ Riak Community

EDIT

Ngoài ra, quan trọng của nó để kiểm tra các tài liệu hệ thống trên creating target systems và cũng làm thế nào để sử dụng Reltool để xử lý các bản phát hành. Điều tốt với erlang là nó có một số tùy chọn làm thế nào để làm điều gì đó, miễn là nó dễ dàng để duy trì ứng dụng của bạn theo cách đó. Với hệ thống đích, bạn sẽ tìm hiểu cách nhúng Erlang VM, cách chạy ứng dụng Erlang trên Solaris, VxWorks và tạo ứng dụng Erlang làm Dịch vụ trên Windows NT sử dụng erlsrv.

Thông thường, chúng tôi đảm bảo rằng khi hệ điều hành khởi động Máy chủ, ứng dụng của chúng tôi sẽ bắt đầu với nó. Solaris cho đến nay có nhiều tùy chỉnh hơn bất kỳ hệ điều hành nào khác liên quan đến việc nhúng Erlang/OTP VM.Bạn luôn có thể giao tiếp với (a) các máy ảo Erlang được nhúng bằng cách sử dụng Escript trong đó bằng escript tạo một nút erlang được phép kết nối với máy ảo nhúng (vì vậy chúng phải chia sẻ cùng một cookie) và máy ảo được nhúng phải đã cho phép Node được tạo tạm thời kết nối bằng cách thực hiện

net_kernel:allow(List_of_nodes)
, bạn hãy đảm bảo gọi phương thức này để làm cho máy ảo nhúng của bạn chỉ cho phép các kết nối từ một số Nút được chỉ định nghiêm ngặt đã biết.

+1

Cảm ơn rất nhiều! Đó là một bức tranh khá hoàn chỉnh! Tôi sẽ đọc qua tất cả những điều này và đăng thêm câu hỏi nếu cần. – matehat