I am really torn between Serverless and Elixir/Phoenix. I know that Serverless is inferior, but I do realize its ease of use, particularly because I’m the sole person on my project. My dream target is 50k monthly users and I have never before maintained a backend for an application of this scale
I would thus like to hear experiences maintaining a large-scale backend (not just Elixir) and compare it with Serverless solely on the basis of maintenance effort. Here are some points I have considered, but there definitely is more that I don’t yet know about. After all, database & infrastructure maintenance is a full-time job.
- Database security (solved with managed databases)
- Server security (solved with some app platform, containerized app?)
- Server & database scaling (is it possible to scale without stopping Elixir?)
- Software Updates (is it possible to update without stopping Elixir?)
- Probably more…
I look forward to hearing your experiences
While you may face technical challenges at that scale (depends on how active those 50k users are), you will definitely face marketing and sales challenges getting there.
A lot of the technical ones can be handed off to vendors (via platforms like Gigalixir, etc) but the marketing ones aren’t as easy to offload. Focus on delivering just enough technology that you can figure out how to run the BUSINESS part of the operation and learn how to get people to use your service.
What maintenance? Logflare is me and a half time contractor, it’s doing 2000 requests a second and when I don’t mess with things I don’t have to worry about it.
The thing you need to worry about with serverless is your budget…
Edit: All of our downtime has been because of GCP or Cloudflare or me just being dumb (forgetting to roll the Postgres database for planned maintenance on Cloud SQL).
Yeah, I already read that post. It’s quite unfortunate, but actually, that very post made me consider serverless again; op says they want to stay serverless for as long as possible, which is also my situation. But it’s hard for me to judge if I don’t know what it’s like maintaining a backend mysel.
Now, having no downtime is really nice. So upgrading Elixir or the codebase does not cause downtime either? Thanks for your answer!
Not when you use Gigalixir. You get rolling deploys with a click of a button automatically. And with Gigalixir it’s super easy to pop into your instance and get into iex if you need to do that on production for some reason.
I have a relatively complex site built with Phoenix/Elixir that is handling 250k uniques per month. It’s running via gigalixir on one replica of pretty small size. Extremely fast response times (< 50ms) with a very simple architecture and every request hitting a postgres db. No maintenance at all, it just works. Elixir/Phoenix is a beast.
That’s great to hear. I may have been scared by the Serverless marketing then ^^