1. ERLANG IN A *NIX WORLD
How to get Erlang to Integrate With Your Environment
Wednesday, June 12, 13
2. Meta Goals
Make it easy to integrate into a standard unix environment
Make it easy to integrate into a continuous deployment system
Remove the need for a custom tool chain for Erlang
Wednesday, June 12, 13
3. Goals
How to build releases with Relx
How to integrate those releases under your system management
tools
How to build native packages (rpms, debs, etc for your releases)
Wednesday, June 12, 13
4. Tools We Will Use
Relx - Release Building
http://relx.org
Erlnixify - Erlang Node Shim
http://erlware.github.io/erlnixify/
Fpm - Native Package Creation Tool
https://github.com/jordansissel/fpm
Wednesday, June 12, 13
5. Basic Environment
A Unix Environment (either in a VM or native on your laptop)
Erlang
Ruby 1.9.3 (yea, yea)
Git
Wednesday, June 12, 13
6. Installing Dependencies
Install Gems -
gem install erlnixify
gem install fpm
Download the code
https://github.com/ericbmerritt/EUC2013
Wednesday, June 12, 13
7. Relx - Creating A Release
A tool to build releases
Convention over configuration
Absolutely minimal configuration
Talk tomorrow that will go into more detail
Wednesday, June 12, 13
8. Relx - Creating A Release
>relx
Starting relx build process ...
Resolving OTP Applications from directories:
/Users/emerrit/workspace/EUC2013/echo_get/ebin
/Users/emerrit/workspace/EUC2013/echo_get/deps
/usr/local/Cellar/erlang/R16B/lib/erlang/lib
Resolving available releases from directories:
/Users/emerrit/workspace/EUC2013/echo_get/ebin
/Users/emerrit/workspace/EUC2013/echo_get/deps
/usr/local/Cellar/erlang/R16B/lib/erlang/lib
Resolved echo_get-0.0.1
release successfully created!
Wednesday, June 12, 13
9. Erlnixify - Running Release
A simple ruby app
Traps Unix Signals and propagates them to the running Release
in an OTPish way
Monitors the running Release and crashes if the Release crashes
Wednesday, June 12, 13
10. FPM - Trivial Package Building
Can build packages most platforms (rpms, debs)
Can build packages based an a directory layout
Can have before/after scripts etc
Wednesday, June 12, 13
13. Taking Things a Step Further
Continuous Integration (Jenkins, etc)
Inotify - http://inotify.aiken.cz
Ansible, Puppet or Chef
Wednesday, June 12, 13
14. August 30th - 31st
http://erlangcamp.com
Wednesday, June 12, 13
15. October 11th - 12th
http://erlangcamp.com
Wednesday, June 12, 13