Integrating OS package management and Erlang
Erlang supports hot code loading at the language level as a differentiating language feature, but it can be confusing to use in practice. OTP provides a high level interface via the concept of releases, but the OTP model is geared towards environments where changes are large and infrequent due to low risk tolerance (substantial QA), and deployed to a relatively small amount of static nodes. For the typical startup, code changes are small and frequent, risk tolerance to changes is high but fast rollback is essential (i.e., there is essentially no QA), and the number of nodes is large (and on EC2, dynamic).
In this talk I describe an alternative high level interface to hot code loading which leverages the OS package management system (e.g., rpm, deb). In addition to being a better fit for the typical startup, it has advantages in a heterogenous environment where Erlang is one of many interacting and dependent technologies deployed, by creating a uniform method for treating code distribution, dependency specification, and provisioning.
Paul Mineiro Entrepreneur and cloud computing expert
Paul is a relative newcomer to Erlang: his first serious use of Erlang started in 2007. Prior to that he has a decade of experience attacking problems for which earlier exposure to Erlang would have been highly beneficial, including search, content monetization, content optimization, and bioinformatics. Most recently he co-founded N54, Inc., a startup heavily leveraging Erlang and focusing on ad ranking, ad targeting, and purchase cycle prediction problems.
N54 uses Amazon EC2 for production serving, and Erlang greatly simplifies
the development of services which adapt dynamically to a volatile set of