Release Upgrades (AKA relups) are still a topic shrouded in mistery to a lot of Erlang users. One of the superior features of the Erlang VM is the ability of hot-code loading which is invaluable when you run code in production and need to apply fixes without downtime. Many will simply overwrite the .beam files in disk and then load them by hand, this is an error prone process that doesn't scale well in large clusters, another option is load balancer draining which is also annoying.
A rebar3 plugin will be presented which aims at easing the developer burden of generating and working with release upgrades.
Relups give us a structured way of applying code changes to a running release, we are now starting to have the right tools for the job so let's all make release upgrades great again!
Talk objectives:
Target audience:
After 5 years of college Luis started working at a company and spent 15 years implementing in C thread pools, shared memory synchronization primitives, network communication and supervising processes, in all this time never once he had heard about Erlang. One day he decided to pick up Fred's book and after reading the first pages he thought: "wow, all this time I've implementing the poor man's version of OTP", after that the more and more he learned about the language and OTP the more it made sense to him that this was the right way of building highly scalable concurrent systems. Then along came Miniclip (his current employer) where Luis came to appreciate the value of Erlang while developing and maintaining large systems, he's currently the tech lead of one of Miniclip's flagship products: 8 Ball Pool which is played by millions of people every day. On a personal level Luis is a husband, a father of a 3 year old and he plays a mean game of Rocket League when he's inspired. GitHub:
lrascao