Хорошие практики при разработке приложения на Erlang (и Riak)? - PullRequest
18 голосов
/ 19 ноября 2011

Мы находимся в процессе знакомства с Erlang / OTP и Riak (Core, KV, Pipe и т. Д.) С целью разработки распределенного приложения с открытым исходным кодом по очереди. Наш проект будет иметь множество зависимостей: инструменты, такие как erlang_js, protobuffs и т. Д., Но также и сервисы, которые нам нужно запустить, такие как Riak KV.

В Python / Ruby / Node.js, если модули размещены в стандартном подкаталоге относительно вашего проекта, вы можете ссылаться на них, а затем упаковать их в выпуски. Вы можете запустить оболочку в каталоге проекта, поиграть с вашими модулями, выполнить тесты и т. Д. - все просто, если следовать хорошей практике.

Каковы наилучшие практики для организации среды разработки в Erlang / OTP со всеми достижимыми зависимостями (и легко обновляемыми до новейшей версии), доступом к оболочке для работающих узлов, тестированием, выпуском релизов и т. Д.?

1 Ответ

26 голосов
/ 19 ноября 2011

Проверьте арматуру: https://github.com/basho/rebar используется для упаковки, создания шаблонов и управления выпусками приложений Erlang / OTP. Там вы найдете целый учебник по его использованию.

Изучите этот учебник по OTP , прежде чем вы сможете переключиться на этот , который показывает вам выпуски и как они обрабатываются в Erlang. Используйте эту всю книгу в качестве справочного материала при разработке проекта и потому, что автор все еще постепенно добавляет более продвинутые материалы, которые могут вам понадобиться.

Вы также можете продолжать читать о Erlang Applications , а затем проверить эти быстрые ссылки ниже:

Erlang Упаковка, первый процесс
Видео по упаковке OTP от Chicago Boss Guys
Управление зависимостями Erlang
Ричард Джонс Советы и примеры по упаковке проектов Erlang с зависимостями
Инструмент Maven и его использование в упаковке проектов Erlang

Самое главное, воспринимайте rebar очень серьезно! Это очень важно для управления приложениями Erlang, которые имеют зависимости. Вы можете продолжать публиковать здесь свои вопросы на stackoverflow для любой помощи по мере вашего продвижения.

Прежде чем я забуду, ознакомьтесь со множеством материалов из Riak Community

EDIT

Кроме того, важно проверить системную документацию по при создании целевых систем , а также по использованию Reltool для обработки выпусков. Хорошая вещь с erlang состоит в том, что у него есть несколько вариантов того, как что-то сделать, при условии, что ваше приложение легко поддерживать таким образом. С целевыми системами вы узнаете, как встраивать виртуальную машину Erlang, как запускать приложения Erlang в Solaris, VxWorks и создавать приложения Erlang в качестве служб в Windows NT, используя erlsrv .

Обычно мы проверяем, что, поскольку операционная система загружает сервер, наше приложение запускается с него. До сих пор Solaris имеет больше настроек, чем любая другая ОС, что касается встраивания виртуальной машины Erlang / OTP. Вы всегда можете связаться с (или) встроенными виртуальными машинами Erlang, используя Escript , где по сценарию создается узел erlang, которому разрешено подключаться к встроенной виртуальной машине (поэтому они имеют для совместного использования одного и того же файла cookie), и встроенная виртуальная машина должна позволять временно созданному узлу подключаться, выполняя

net_kernel:allow(List_of_nodes)
. Вы должны обязательно вызывать этот метод, чтобы встроенная виртуальная машина разрешала подключения только с строго определенного числа узлов.
...