5 ms·
How are you planning to deploy it? Getting the benefits from Elixir/Phoenix seems to require much more old fashioned thinking: long-lived, mutable servers with
by jelder 9y ago
How are you planning to deploy it? Getting the benefits from Elixir/Phoenix seems to require much more old fashioned thinking: long-lived, mutable servers with direct interconnects, so none of that immutable infrastructure, or platform-as-service stuff.
- auxbuss 9y agoSincere question: Why do you consider this "old fashioned thinking"? (I don't agree that your other assertions are correct, but I'm most interested in this one.)
- jelder 9y agoNot a perfect choice of terms I freely admit. In my own experience, I last used non-virtual, mutable, long-lived servers over 8 years ago. Since then it's been a progression further away from that style: PaaS, immutable infrastructure, Heroku, and currently a mix of AWS Lambda and Docker. I'm excited to try Elixir but from what I've read (e.g. https://medium.com/mint-digital/elixir-deployments-on-aws-ee787aa02a9d https://medium.com/mint-digital/elixir-deployments-on-aws-ee..., http://engineering.pivotal.io/post/how-to-set-up-an-elixir-cluster-on-amazon-ec2/ http://engineering.pivotal.io/post/how-to-set-up-an-elixir-c...), much of my recent experience in running production apps at scale won't apply to Elixir/Phoenix.
- brightball 9y agoYou can deploy it exactly the same way as anything else, it's just a matter of being willing to sacrifice some of the features if necessary. You don't necessarily even need each of the features on each project so it's entirely reasonable to deploy exactly like you would anything else. There's a Redis adapter for Phoenix channels that you can use in environments like Heroku where clustering might not be an option. If you want to use built in Mnesia database on an immutable or cluster, attach block storage and configure it to store to that disk so you can remount when you deploy your immutable image. Hot reloading is the only one where you NEED mutable servers.
- itbeho 9y agoYour needs might be different from mine, but I'm using Gatling for push-to-deploy on a couple of production Elixir apps. It includes the ability to do hot upgrades. Deployment couldn't be much easier than this. https://github.com/hashrocket/gatling https://github.com/hashrocket/gatling
- jesses 9y agohttps://gigalixir.com https://gigalixir.com is a platform-as-a-service designed just for Elixir. Disclaimer: I'm the founder.
- brightball 9y agoI might try moving my blog over to the Gigalixir free tier. Currently it's running on a Heroku hobby instance.
- jesses 9y agoLet me know if you have any issues. You can email me directly here (base64 encoded): amVzc2VAZ2lnYWxpeGlyLmNvbQ==