4 ms·
Elixir and Phoenix It's incredibly productive, you get the benefits of microservices with the development and deployment style of monoliths thanks to umbrella
by brightball 9y ago
Elixir and Phoenix
It's incredibly productive, you get the benefits of microservices with the development and deployment style of monoliths thanks to umbrella apps and there's not a single performance based concern I can think of that it can't handle.
Plus it simplifies infrastructure significantly by removing the need for much outside of Postgres.
- jelder 9y agoHow 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==
- tiffanyh 9y agoAnd this is a super important year for Elixir and Phoenix. Erlang/OTP 20.0 was just release last month. Elixir 1.5 was just released this week. Phoenix 1.3 is just about out the door (currently in Release Candidate phase) And maybe most importantly, the complete rewrite of Cowboy 2.0 is almost done. Cowboy 2.0 is also currently in Release Candidate phase.
- auxbuss 9y agoAnd rust (via rustler).
- amirouche 9y agowhat database(s) will you use?
- brightball 9y agoPostgreSQL, without hesitation.
- 6t6t6t6 9y agoI would love to use Elixir and Phoenix for my next personal projects, but I would not use it at work. Elixir and Phoenix developers are much more expensive and scarce than Rails ones. I would only start to use Elixir and Phoenix in my company if we were fully staffed and the rest of developers agreed on putting some extra effort (mostly during their time) to learn the new system.