I do have fun bashing Go, but I also use it. It's too practical not to. And the Go team, above all other of the latest wave of language that are ready for production, got that 100% right. I just can't overstate how simple Go makes setup, deployment, and updates. And how complex Elixir is in comparison.
I wish Elixir et al. could have a zero dependency, zero external configuration, and single/xcopy file deployment too.
For me, the ultimate test is can I copy my application to a flash drive, walk it to a new clean system, and "paste" it to that new system. Go really does let me do that.
> But i didn't find any mature libraries like Phoenix.
Yup. But then I tend not to need larger frameworks with my Go apps. Like you allude to, Go apps tend to be less monolithic.
That used to be the case for erlang deployments that looked pretty similar, and Exrm looks like it does the same thing:
https://hexdocs.pm/exrm/extra-deployment.html
There are five stages to creating and deploying a first release. The first is just generating it, the next three are for moving the release to a new place and the third is just decompressing it.
Live upgrades/downgrades seem pretty similar: https://hexdocs.pm/exrm/extra-upgrades-and-downgrades.html