axelson

axelson

Scenic Core Team

43) ElixirConf US 2018 – Docker and OTP: Friends or Foes? – Daniel Azuma

ElixirConf US 2018 – Docker and OTP: Friends or Foes? – Daniel Azuma (@dazuma)

Docker is the hot deployment technology across the industry, and many workloads are moving into cloud services. But for Elixir and other BEAM languages, there’s some hesitation. Will containers work with stateful processes? What about hot code upgrades?

This talk will survey the sources of friction, real or perceived, between Docker and OTP. You’ll discover techniques and tools that let your stateful Elixir applications thrive in a container-based cloud environment.

Audience: Intermediate, Advanced
Topics: deployment, docker

All talks are available in the ElixirConf US 2018 Talks List or via the elixirconf2018 tag

Most Liked

dazuma

dazuma

Some links related to the talk are at http://daniel-azuma.com/elixirconf2018

Some questions I got afterward that might be worth discussing since I don’t have a final answer to them include:

  1. How can we scale out a solution like what we did with the tank game? How well will Horde’s mechanisms handle thousands or millions of processes or what changes might be needed to the approach?

  2. What are the trade-offs of just using a database like Redis for the handoff? The current CRDT solution is extremely fast, but could Redis work better at larger scale? I don’t know, but I suspect since the usage would be so bursty, the contention might be its downfall. There’s also mnesia, which isn’t really designed for this kind of application but since it’s also in-OTP, it might be interesting to evaluate.

  3. Horde vs Swarm. I actually tried both for the demo, and ended up using Horde mostly because it handled shutdown a lot better for this case. Also because it adopted the OTP concepts of supervisor and registry and so was easier to describe and reason about, while Swarm implements an odd hybrid of the two. But Swarm has interesting capabilities as well, such as built-in handoff, and is currently much more mature.

I’d also love to hear how others have solved similar problems. The cloud/containers world is important, especially as our Elixir/OTP based systems need to interoperate with other platforms, and I really think our community needs to engage more and figure out our contribution to it.

13
Post #2
cohawk

cohawk

LibCluster, Swarm & Horde, dist_agent & other Raft implementations

The distributed systems libraries are starting to become scattered to where its hard to keep up.

Are there any plans for an official distributed Elixir OTP team to consolidate these efforts - maybe like the upcoming Phoenix Firenest?

Also a great talk and examples @dazuma - I enjoyed walking away with just as many questions as answers.

Where Next?

Popular in Talks Top

axelson
Let’s Talk Process Dictionary - @gregvaughn Well, the first rule of Fight Club, I mean: process dictionary is that we don’...
New
axelson
ElixirConf 2017 - Perhap: Applying Domain Driven Design and Reactive Architectures to Functional Programming - by @Version2beta ...
New
axelson
ElixirConf 2017 - Working with legacy databases in Ecto - @geo Often when starting an Elixir or Phoenix proj...
New
ShalokShalom
So, there is another Erlang VM on the way :hugs:
New
Lawrence_elixir
@voltone - Security advocate, BEAM enthusiast Learn you some ‘ssl’ for much security! Talk in three words: TLS, security, troubleshooti...
New
axelson
ElixirConf 2017 - Live APIs with GraphQL Subscriptions - @bruce and @benwilson512 APIs have gone live with G...
New
New
axelson
Consistent, Distributed Elixir - @keathley Elixir and Erlang provide powerful mechanisms for building systems that are alw...
New
lawik
A single packet to begin. The 1st of Goatcember. Marc Laines - A Nerves Car Also on YouTube.
New
axelson
ElixirConf US 2018 – Building Video Chat with Elixir & Phoenix – Anil Wadghule (@anildigital) In this t...
New

Other popular topics Top

hariharasudhan94
lets say i have a sample like a = 20; b = 10; if (a > b) do {:ok, "a"} end if (a < b) do {:ok, b} end if (a == b) do {:ok, "equa...
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 41989 114
New
Nvim
Anybody knows a comprehensive comparison of Django and Phoenix, thanks for the help. Where are they similar? Where do they differ the m...
New
Patoshizzle
After calling mix ecto.create I get this error: 17:00:32.162 [error] GenServer #PID<0.412.0> terminating ** (Postgrex.Error) FATAL...
New
jononomo
I am trying to figure out how Mix knows whether the environment is test, dev, or prod – where is this set? Thanks.
New
AngeloChecked
What learn first? Rust or Elixir Hi Elixir community! I’m here because i want learn a new language. I’m a junior developer and mainly i ...
New
jay1
Why is it that the mnesia database isn’t the most preferred database for use in Elixir/Phoenix?
New
sergio_101
I am VERY much an elixir newbie. I have taken one elixir course and one phoenix course on Udemy. During that course, I saw the instructor...
New
nobody
Hi! In PHP: $_SERVER[‘SERVER_ADDR’] - in Elixir? Searched the docs for ip address and the web, no good results. Thanks!
New

We're in Beta

About us Mission Statement