<div dir="ltr">On Fri, Apr 20, 2018 at 3:57 PM Raimo Niskanen <<a href="mailto:raimo%2Berlang-questions@erix.ericsson.se">raimo+erlang-questions@erix.ericsson.se</a>> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello list!<br>
<br>
I am working on the task to get Erlang Distribution over TLS to be easy to<br>
use and flexible. :-/<br>
<br></blockquote><br></div><div class="gmail_quote">You know what I am going to say:<br><br></div><div class="gmail_quote">"What are NOT part of this task?"<br><br></div><div class="gmail_quote">I have a general toxic reaction to words such as "easy to use" and "flexible" because the former can hide important details in the name of easy, but then make more intricate setups impossible; and the latter often risks making the core of the system bad as a sacrifice for being able to do anything.<br><br></div><div class="gmail_quote">For cloud services, the general rules are:<br><br></div><div class="gmail_quote">* Machines are brought up and down at a whim, they usually change IP addresses, some times also networks.<br></div><div class="gmail_quote">* Machines can have stable DNS names where the underlying IP change, so be prepared for that setting.<br></div><div class="gmail_quote">* Some systems don't have stable DNS either<br></div><div class="gmail_quote">* The network, cluster size, etc are all dynamic and will scale up and down depending on load.<br></div><div class="gmail_quote">* The network is highly unreliable. Weekly disconnects are commonplace for any point-to-point connection. In larger clusters, assume daily TCP disconnects.<br></div><div class="gmail_quote">* The network is likely to deliberately fault-inject to verify the system is robust under noise (Chaos-monkey strategies).<br></div><div class="gmail_quote"><br></div><div class="gmail_quote">In this setting, the lure of having TLS would be that you don't have to build a virtual network which also encrypts. Rather, you can just have the Erlang nodes connect by TLS. It also simplifies the notion of connecting "into" the cluster from the outside.<br><br></div><div class="gmail_quote">The Erlang distribution protocol is quite the contrary to the typical cloud network though:<br><br></div><div class="gmail_quote">* Assumes a mostly stable static network<br></div><div class="gmail_quote">* Assumes a few static machines<br></div><div class="gmail_quote">* Assigns names to everything, in a somewhat static way<br></div><div class="gmail_quote">* Assumes you know every node "beforehand" in many situations<br><br></div><div class="gmail_quote">I feel this is the impedance mismatch which is present. Hence my original pet-peeve: define the scope :)<br><br></div><div class="gmail_quote">My own solution would definitely be "screw you, TLS, here is my own public key registry, vault, and libsodium/enacl :)"<br></div><div class="gmail_quote"><br></div></div>