2011-11-19 17 views
18

Estamos en el proceso de familiarizarnos con Erlang/OTP y Riak (Core, KV, Pipe, etc.) a fin de desarrollar una aplicación distribuida de código abierto. Nuestro proyecto va a tener un conjunto de dependencias: herramientas como erlang_js, protobuffs, etc., pero también servicios que debemos ejecutar, como Riak KV.¿Buenas prácticas al desarrollar una aplicación en Erlang (y Riak)?

En Python/Ruby/Node.js, si los módulos se colocan en un subdirectorio estándar relativo a su proyecto, puede hacer referencia a ellos y luego empaquetarlos en versiones. Puede iniciar un shell en el directorio del proyecto, jugar con sus módulos, hacer pruebas, etc., todo de manera sencilla si se siguen las buenas prácticas.

¿Cuáles son las mejores prácticas para organizar un entorno de desarrollo en Erlang/OTP, con todas las dependencias accesibles (y fácilmente actualizable a la última versión), acceso shell a nodos en ejecución, pruebas, lanzamientos, etc.?

Respuesta

25

Salida barras de refuerzo: https://github.com/basho/rebar utilizados para el envasado, de plantillas y la gestión de versiones de aplicaciones Erlang/OTP. Encontrarás un tutorial completo sobre cómo usarlo.

Echa un vistazo this tutorial on OTP primero, antes de switch to this one que muestra las versiones y cómo se manejan en Erlang. Use este entire book as reference mientras desarrolla su proyecto y porque el autor aún está agregando progresivamente más elementos avanzados que pueda necesitar.

También es posible que desee seguir leyendo sobre Erlang Applications y luego se echa un vistazo a estos enlaces rápidos a continuación:

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

Lo más importante es tener rebar muy en serio ! Es muy importante en la administración de aplicaciones Erlang que tienen dependencias. Puede seguir publicando sus preguntas aquí en stackoverflow para cualquier ayuda a medida que avanza.

Antes de que me olvide, lo echa un vistazo a un montón de cosas desde el EDITAR Riak Community



Además, es importante revisar la documentación del sistema de creating target systems y también cómo utilizar Reltool a manejar comunicados. Lo bueno de erlang es que tiene varias opciones de cómo hacer algo, siempre y cuando sea fácil de mantener su aplicación de esa manera. Con los sistemas de destino, aprenderá cómo integrar la máquina virtual Erlang, cómo ejecutar las aplicaciones Erlang en Solaris, VxWorks, y crear aplicaciones Erlang como servicios en Windows NT usando erlsrv.

Normalmente, nos aseguramos de que como un sistema operativo está arrancando un servidor, nuestra aplicación comienza con él. Solaris hasta ahora tiene más personalizaciones que cualquier otro sistema operativo en lo que respecta a la incorporación de máquinas virtuales Erlang/OTP.Siempre puede comunicarse con (an) máquinas virtuales Erlang incorporadas usando Escript donde el escript crea un nodo erlang que puede conectarse a la máquina virtual incorporada (por lo que deben compartir la misma cookie) y la máquina virtual integrada debe han permitido que el Nodo creado temporalmente se conecte al ejecutar

net_kernel:allow(List_of_nodes)
, asegúrese de llamar a este método para hacer que su VM incorporada permita conexiones solo desde un número conocido y estrictamente especificado de Nodos.

+1

¡Muchas gracias! ¡Esa es una imagen bastante completa! Leeré todo esto y publicaré más preguntas si es necesario. – matehat

Cuestiones relacionadas