Fly.io is more exciting for me because it's edge app servers and it terminates web sockets. I've been envisioning a live-view like framework, or heck even a regular old rest api, where the client connects to the fly.io server with a single request then the app server makes a request to N number of back end processing servers using an efficient protocol like grpc.
The only missing piece for fly.io is data layer. The given redis is only for caching purpose. Once there is a managed distributed data store add-on, it's done. It's very likely liveview will need to hit database. Right now pubsub with redis adapter is the easiest solution for cross-region phoenix application (well, phoenix IS my application!)
That's a good thing actually since it means you never have cold starts (unlike Google Cloud Run). Their micro instances cost like $3-4 which isn't that much.
It should be an option in my opinion, as cold start time could vary a lot by which image and runtime you are running, if is a Java app or a statically linked Rust program.
I have a bunch of very small and simple services, which I run on a single VPN. Moving to fly.io would mean to pay various time more. I tried that, and the service is nice indeed, but not for me I guess.
- Google App Engine (PaaS)
- Google Cloud Run (serverless containers)
- Fly.io (serverless containers with a minimum of 1 container running per configured region)