The thing that stateless containers and kubernetes do is handle that base case of “when a thing is wrong, replace it and get back to a good state.” The thing it does not easily let you do is “and then start iterating to get better and better at not losing all your state and recuperating fast”. The idea is that you should be able to plug in invariants and still bail out in bad cases, but also have the option of just keeping things running when they go right: no cache to warm, no synchronization to deal with, no sessions to re-negotiate, no reinstantiation, fewer feature flags to handle, and near-instant deploys rather than having them take a long time.
We’re isolating ourselves from a whole class of worthwhile optimizations, of ways of structuring our workflows, of conceptualizing software and configuration changes.
He’s trying to reach for Erlang and Elixir here - the update-in-place deployment model.
Josh Beckman
Insight
This widget generates “insights” about a post - you can read about how it works.