Doubts about deploying a Phoenix App on Fly.io

I am considering to use Fly.io to deploy my Phoenix Apps, but reading their docs I got caught by surprise with this:

The platform works out which region an application should be running in based on the incoming connection from a client. It then starts the application in that region and completes the connection.

I read it like that my application will be put asleep when is inactive for some period of time and then awaken when it receives traffic again.

So, in my understanding this kind off Heroku behaviour or am I misunderstanding the sentence?


Another doubt that I have is if I can deploy more then 1 app per VM, because it’s not clear from their getting started docs for Elixir:

1 Like

That blurb is describing our autoscaling feature. Most Phoenix apps don’t use that. When you enable autoscaling, we start and stop VMs for you. It’s not really magic, more like an autoscaling group on AWS.

In our environment, containers are VMs. Docker isn’t secure in multi tenant environments, so we extract containers and run them in Firecracker VMs. They still act like “containers” though.

You can run multiple processes per VM if you want. They are not like servers you SSH into and manage individually, though. You need to install a supervisor and let it start mutltiple processes.

Our Postgres clusters are Fly apps that run multiple processes per VM: GitHub - fly-apps/postgres-ha: Postgres + Stolon for HA clusters as Fly apps.

5 Likes

Thanks for the clarification, and I as I hoped it was not like an Heroku thing, otherwise I would not be to keen on fly.io.

Do you mean Elixir Supervisor?

Is there a GDPR policy in place? I couldnt find anything although I didnt look super hard.

1 Like

Well, even if they have a GDPR policy, once they are a US company they can be forced by US laws to handle all the data they have about their customers, no matter which location in the world it’s stored. At least is what @lawik states in this video:

So, fundamentally if this is the case then the only way I see at a glance is for cloud providers to have completely separated companies in Europe and US, aka to be completely legal independent of each other, and then how could they provide a global service without muddling the legal waters?

Maybe would be best for @AstonJ to separate this post into a new thread, because I anticipate that it will derail this topic :slight_smile:

1 Like

My fly instances, on the free tier even, don’t get rebooted for weeks. I guess they will reserved the right to do that to balance out loads but in reality it just haven’t happened. From a continuous uptime perspective, fly is much, much better than heroku.

1 Like