<FromGitter>
<konung> HI. ⏎ Just exploring Crystal and its web frameworks and considering them for an internal app. I have a more general question about deployment / scalability. ⏎ ⏎ 1) What is the typical process for deploying Amber? Do you run it somehow behind apache / nginx? Or just by itself? ⏎ 2) How do you scale? Are there any solutions for load balancing? ... [https://gitter.im/
<FromGitter>
<drujensen> @konung We work closely with the other framework teams and share what we can so no concerns about flame wars. ;-). I deploy exactly like I would a rails app. I currently use Docker for my deployments. I use Nginx and have all static assets delivered that way but you can use a CDN if you need large assets on the edges. I also place two instances behind a LB. This is a fairly normal deployment structure. You
<FromGitter>
... could go down the kubernetes path if you wish and allow it to scale on its own. Just depends on your app. You will find that you will not need 1/20th the resources that a rails app would and your performance will be outstanding no matter which Crystal framework you decide to use.
<FromGitter>
<drujensen> If you go down the docker path, I haven't tried this yet but I recommend looking at reducing the deployed image size using 2 stage builds. Someone wrote a really good article on how to do that
<FromGitter>
<drujensen> I haven't tried this with Amber yet but seems like you could get this to work
<FromGitter>
<Blacksmoke16> if its not an actual prod/legit project can maybe try https://github.com/Blacksmoke16/athena, would be nice to get some feedback on it. Otherwise if its more than a pet project or something serious id go with a more well established framework :p
<FromGitter>
<Blacksmoke16> +1 for docker as well
<FromGitter>
<konung> @Blacksmoke16 Athena looks like Rack. Right? I think I need something a bit more kitchen-sinky for my needs :D
<FromGitter>
<anamba> @konung i use docker in dev but not prod. i tend to deploy multiple small apps for different customers to a single server, so i want to isolate them from each other completely. i'm not confident in docker's ability to do that securely. so in production, i use apache 2.4 + passenger 6 (for process management), with a git post-receive hook on the server that runs a deploy script customized for that project. so i guess
<FromGitter>
... overall kinda old school, but it's secure. i have been running my ruby projects in a very similar setup for about a decade, so it's battle-tested.