Friday, December 21, 2018

why does 12 factor recommend not to daemonize processes?

最近在研究 Erlang/Elixir ,又發現了以前自己總是不小心忽略的東西 supervisor 。

然後就查了一下 12 factor app。為什麼會想查 12 factor app ?印象中,我好像不知道在哪裡看過一篇文章,提到,許多 Erlang 的設計,後來都被 12 factor app 所採用,意思大概是說,Erlang 真的就是分散式系統設計的先趨。

結果,12 factor app 裡頭也有一條 rule  有提到 process supervisor 的相關概念。但是,我覺得說明最清楚的,反而是 stackoverflow 上,對下列問題的解答:
「為什麼 12 factor app 不推荐我們 daemonize processes?」

答案是:
重點不在於不要使用 daemonize processes 這個解法。重點在於: process management framework 其實 *nix 早就有了,沒事不要自己做。要善用現有的工具,這個才是 DevOps 的精神。