Deployment Services Question(s)
Hi. I am considering using railway to host an app instead of running on DO and had some questions that I could not find answers to in the docs immediately.
1. It appears that railway handles SSL termination and my app can just speak plain http. Is that correct?
2. It looks like railway doesn't do any sort of load balancing across multiple instances of a service. Is that corret?
3. If 2 is correct, are the deployments blue/green in some fashion, or is there some amount of downtime on every deployment?
4. Is there an established pattern for running multiple instances of an app if the popularity gets to a point where that would be warranted (is it just deal with configuring an nginx myself as a load balancer)?
5. If I want to use go 1.19 or 1.20, am I currently restricted to using a dockerfile setup that I maintain myself?
Thanks in advance.
14 Replies
Project ID:
N/A
1. Yes, it appears that railway handles SSL termination and your app can just speak plain http. 2. Yes, it looks like railway doesn't do any sort of load balancing across multiple instances of a service. 3. No, there is no blue/green deployment, so there will be some amount of downtime on every deployment. 4.
β οΈ experimental feature
N/A
gopher!
1. correct
2. correct
3. theres a small chance of downtime between deployments but its very minimal with the health check path test
4. theres no horizantal scaling with railway yet, so you could just spin up multiple instances and load balance them with cloudflare / caddy / nginx
5. correct
Ok. Thanks for the quick reply π
i too use a dockerfile so i can run 1.20
another thing to keep in mind is theres no persistent storage yet, so youll want to keep files in a bucket or data in a database, but im sure you know that already π
yeah, i am used to treating the apps as basically just having
/tmp
and putting static assets somewhere else. Will have to figure out where that would be, but not unexpectedcloudflare r2 is a great option
Thanks. I recall reading about that when it was released. Will have to look into the details of that.
no problem, if you have any other question you can just ask them in this same thread
question came up: if i want to ship metrics and logs off to something like grafana cloud, it seems Iβd need to run an extra service with the agent. Or have it run in each container, or something. Are there any established patterns for this sort of thing?
I am unfamiliar with doing this sort of thing and I haven't seen mentions of recommended ways to do logging and metrics, so it would probably just come down to rolling your own solution whether that be in every container, a service in the same project or a single separate project for the aggregator
Is there any internal networking within a project? Or would everything have to be accessible on the public internet?
Not at the moment unfortunately, it's marked as planned
https://feedback.railway.app/feature-requests/p/internal-networking
And with the new edge network it shouldn't be too far away, but of course no eta
https://discord.com/channels/713503345364697088/820082368273973289/1081398121331961947