I'm so glad Fly exists. Every other edge focused thing out there I'm aware of are "serverless" which these days basically means they charge per request.
That's fine for a lot of use cases, but the unit economics of the per request pricing model means it's really hard to operate a predictably sustainable (i.e. profitable) business without also charging our customers on a usage basis, or enforcing limits on usage, neither of which is ideal for maximizing engagement as incentives are no longer aligned.
Fly just gives us compute at the edge for a predictable price per unit of actual compute resources as opposed to requests, and gives us freedom to serve as much traffic as we can min-max onto those resources, like we could with traditional cloud compute.
This provides much better unit economics for many kinds of applications, at the cost of having to manage the scaling ourselves. But because the option exists, we can make this tradeoff on a case-by-case basis, which is so much better than if all we had was "serverless" stuff at the edge and had to choose between just low latency across the globe vs good unit economics.
For a company that says it makes it super easy to deploy a container image and mentions that all you need to do "Write your code, package it into a Docker image, deploy it to Fly's platform"[0], they sure have a dearth of documentation on how to deploy an existing docker container.
I am not sure if I'm missing something or what, but here's where I looked:
* googled 'docker fly' and a blog post that references docker but as far as I can see doesn't have instructions on deploying docker images shows up[1].
* their getting started guide[2], called a 'speed run' which has all kinds of CLI commands but doesn't actually show how I'd pick a docker image.
* their quickstart docs[3], which outline how to deploy all manner of applications, except for, you guessed it, an existing docker image.
* scanned the menu of their docs, and didn't see anything.
I really want to like this service, as we have (at $CURJOB) an app packaged as a docker image that it'd be awesome to set up to run on Fly.io, especially with the multi-region postgresql.
What the heck am I missing? Can I just not read? Do I just need to install the CLI and all shall be made clear?
> Every other edge focused thing out there I'm aware of are "serverless" which these days basically means they charge per request.
Workers Unbound is $1 for ~6.6M requests (+ runtime at $0.0000015 per sec / $12.5 for 1M GB-sec). That's super cheap considering free egress, which brings me to...
> Fly just gives us compute at the edge for a predictable price per unit of actual compute resources as opposed to requests...
Fly.io may not meter requests anymore, but they continue to meter egress, even between your VMs in the same region [0]. Usage-based price model is everywhere, like it or not.
> it's really hard to operate a predictably sustainable (i.e. profitable) business [... with other providers]. Fly just gives us compute at the edge for a predictable price per unit of actual compute resources as opposed to requests, and gives us freedom to serve as much traffic as we can min-max onto those resources, like we could with traditional cloud compute
The praise on the subject of predictability is interesting, given perennial concerns about uncapped vs capped usage charges (with any cloud provider), but esp. in light of past Fly-specific comments that "putting work into features specifically to minimize how much people spend seems like a good way to fail a company".
Serverless pricing model doesn't have to be transferred to your customers.
If you know them well and their usage patterns, you can predict with confidence how much each customer will cost you. With granularity to the level of a feature or even a particular action.
This allows for extremely precise and safe unit economics planning. I couldn't be happier with this benefit from serverless.
In a server-based infra you have many fixed costs: servers themselves, unused capacity, and your time to maintain it, which is certainly expensive, since it competes with attention to the product or maybe sales and customer support.
They’ve got Chris McCord there, who has already improved their Elixir deployment story. I tweeted a few weeks ago about improving the default Rails deployment experience to not require DB provisioning and configuration of env vars like SECRET_BASE_KEY and they said it would likely ship within the next 3 months.
My hot take is they’re setting themselves up to ride the server-side rendered HTML renaissance we are experiencing with LiveView and Hotwire. It will become much more important to deploy applications geographically closer to customers to lower latency, which Fly makes sane for the rest of us.
We're betting the same, and Fly.io doesn't know it yet, but part of our solution will eventually be made possible (much easier) thanks to their architecture. :)
> We've had a free tier since we launched ten years ago (in 2020).
I’m not a Fly.io customer (although more and more I am thinking I should be), but I eagerly read every new blog post because I’m so entertained by their tone. These people are clearly having fun at work.
This is a sort of content-free comment, but I'll say it anyways because it's been gnawing at me for months --- there is a lot of content queued up for us to write about; just a freaking avalanche of stuff we've been working on. I keep looking for places to break it off and start writing about it, and the work keeps growing and foiling our attempts.
I also like the frankness and simplicity of their communication style.
No fancy buzzwords, to the point and speaks to things we all know are true but are typically not addressed or are wrapped up in spin. The first and last paragraphs are great examples.
The authenticity of it leaves me with a strong sense of trust and respect.
Really enjoying watching Fly develop. Not sure if I have read the strategy right, but my read is that they are going for an edge 'OS' which is compatible with the way software is already built for the centralised deployment model, where other players are going with a strategy of inventing a new 'OS' and saying, pretty much, 'all this edge goodness is available, but you have to rewrite your software to run on our OS first'.
I'm so glad to be seeing someone do this, because for a while it was looking like nobody would - and as long as nobody is doing it, nobody would have to.
Now with Fly increasing in popularity, you have to expect that others, Cloudflare in particular, must be seriously looking at integrating more 'centralised deployment' tools like postgres into their edge platform too (if, to be fair, they didn't already have this on their roadmap), providing more options and competition.
> Even for our free services, we require a credit card number. We know that's the worst and it gives you heartburn. It's not because we plan to charge you.
> But here's what happens if you give people freemium full access to a hosting platform: lots and lots of free VMs mining for cryptocurrencies.
> We could tell you we want to prevent crypto mining because we care about the planet, and that would be true. We also have a capitalism nerve that hurts when people spend our money gambling. Your credit card number is the thin plastic line between us and chaos.
I don't really have another alternative to offer here, but i appreciate the transparency and honesty of saying this, regardless of whether they're right or not.
I wish more companies out there actually explained their reasoning behind decisions, instead of essentially just going like: "We're doing this because of undisclosed reasons, please accept that this is how things are going to be."
Of course, in many cases you can come up with a few feasible reasons for why companies make many of their decisions, but being given first hand context for these things feels nice!
To the Fly.io team here, other than the "daily storage-based snapshots of each of your provisioned volumes"[0], is there a plan to offer something similar to Heroku WAL based restore system [1] where you can (from the control panel) restore a db to a moment in time?
Also do you have any plans for a managed upgrading/patching of Postgres, again similar to Heroku?
For me personally the fully managed nature of Postgress on Heroku is brilliant and what I would love to see on Fly.io. It seems that on Fly its a little more hands on or am I missing something?
We will be able to do a WAL backup / point in time restore feature when we ship object storage.
Managed upgrades are almost in. If you run `fly image show` it'll tell you if you need one, then `fly image update` will upgrade your Postgres. We don't do this automatically yet. It won't be difficult though.
I tried to deploy an application I currently have running on Digital Ocean App Platform (their Heroku competitor) also on fly.io. The app is using Python/Django and Postgres, ideal to test.
I must say the deployment experience was great, stuff just worked, brilliant.
One question in case someone tried that: How can you customize the postgres config? I want to enable pg_stat_statements, and one needs to add `shared_preload_libraries = 'pg_stat_statements'` to the config for this. One could also make this the default maybe? It is the default on most cloud providers (AWS RDS, Digital Ocean).
> Fly Postgres clusters are just regular Fly applications. If you need to customize Postgres in any way, you may fork this repo and deploy using normal Fly deployment procedures. You won't be able to use fly postgres commands with custom clusters. But it's a great way to experiment and potentially contribute back useful features!
As a founder, there is no company the same age as mine I am more jealous of than fly.io. Looking forward to moving one of our products over to fly as soon as time allows :)
Oh goodness I love KubeSail. Before Fly.io, I really wanted to build a self hosted alternative to Google Photos. I think what you're doing is incredibly valuable.
I’ve been using Fly for my new startup that offers notifications as a service [1], and the whole setup is super easy and efficient.
Since fly deploys at the edge closer to the users, our response times for notifications are 20ms on average which is mind blowing since I haven’t spent more than 1 hour on infrastructure setup.
Recently, I gave Fly an honest go for a new multi-container project that seemed like a good fit. After digging in, I found that the pg clusters had some sort of system wide bug and couldn’t be attached to any of my apps.
It was a bummer. Everything seemed great, I just literally couldn’t use it.
I’d love to hear others experiences with the PG features. I could see it replacing Digital ocean for my use cases (if it works reliably)
I'm sad this bug burned you. We had some brittle infrastructure for talking into a Postgres cluster, and it was a bit of a fire drill to rip it out and simplify. You would have a better experience if you tried today!
We know this because we have metrics on how many people created and then destroyed Postgres DBs without successfully connecting an app to them. When we show this to investors we'll explain that the improvement was a big win for our "go to market efforts". But you should know it was really just a bug fix for something we disappointed you with.
For comparison, note also that ElephantSQL offers 20MB databases on their free tier with 5 concurrent connections. They charge about $20/mo for the tier that Fly is offering here for free.
I was not aware of the other portions of the free compute tier from Fly.io, was looking into Oracle Cloud. (Ask HN: What cool stuff do you run free-tier? Sep 2021https://news.ycombinator.com/item?id=28652736)
The jumps in prices for Postgres seem pretty high. The next step up from $7 is $28(4x). After that it’s $154(5.5x), and the next step up from that is $1266(8x).
If I outgrow the $154 plan I have to jump to a ~$1300 plan.
Not quite, but pricing is a little complicated AND we haven't shipped multi-shared CPU VMs yet.
Postgres prices are a function of the underlying resources. There are a bunch of steps between $7 and $28, you can put any size volume you want on your Postgres cluster and run 512MB or 1GB of RAM. 1GB RAM + 10GB volumes would be $14.40, for example.
Dedicated CPU VM types are much more powerful than the shared CPU. So the jump from $27 to $154 gets you, like, 20x the CPU power. I would like to have shared-cpu-2x, 4x, and 8x to give us a better cost gradient. So far it hasn't been an issue, though, people seem to want the extra CPU for a beefier DB.
I'm having trouble understanding the purpose of these edge services.
Granted, I've only handled small - medium sized infrastructures, and never really experienced the issues at scale, but if I were to get to that point, wouldn't it be easier to just hire a Infrastructure Engineer who could deal with the replication / sharding, not to mention having that engineer also deal with site reliability and dev ops?
If a user wants to hit my service, and then that service has to hit fly.io's postgres, isn't that an increase in latency? sure I could probably have it pretty darn close, but 20-100ms is still 20-100ms. I could manage my own (or hire someone), and have the db live in the same container (if i have a big enough box), or have it within the same data center.
And if it is the case that I do need to replicate across data centers, at that point, I should have the financial capabilities to hire an infra engineer.
Can anyone enlighten me why I would ever need this?
Hiring a (good) DevOps or infrastructure engineer is harder and more expensive than you might think.
That said, you can go very far with stateless apps at the edge with regional read replicas and a single write instance that's half way across the globe.
I had not heard of fly.io but i really appreciate free for side projects! I have a docker setup for .NET core psql app on digital ocean so will be fun to see if i can get a that working with you. Also pricing at a quick glance seems good. Are you running your own servers or using another cloud as the basis?
We run our own servers. It took a lot of work but it's really making life easier now. I'm not sure we could offer a free tier like this on top of another cloud.
Free tier of CloudFlare Pages/functions runs the app at the edge by default. For Fly.io, this scaling has to be manually configured for both the app and the DB. Are there any plans to offer it by default for the free tier? It is hard to evaluate the benefits of having the data center near the end user when it is not offered out of the box, especially since all the Fly.io blog posts talk about how great their service is for HTML-over-the-wire UIs like Phoenix live view and Rails Hotwire.
You can squeeze a hell of a lot more perf out of general purpose compute that is maybe an extra 15 ms away than one-shot workers lacking any in-RAM persistence, or ability to do much more than limited local k/v lookups. The equation is totally different.
Many workers I've seen (or written) start by reaching out over the Internet to another backend. There goes most of your edge benefit almost immediately.
We'd like to automate this! We've made it nearly transparent for Rails apps, and almost as transparent for Phoenix apps, but there's a lot of work to do. Right now with Rails you:
1. Provision your DB
2. Add regions
3. Add our Ruby gem to your Rails app
4. Deploy Rails
5. Set the same regions for the Rails app
And it just works. Phoenix is close but we haven't quite polished up the Hex library yet.
I think being transparent about regions is a feature! We can definitely automate most of those steps away, but the region you're running in will never be obfuscated. CDNs are _notorious_ for placing content and features where it's cheapest for them and I think that's gross.
Whether we can make it free or not is an open question. Ultimately there's a cost to storing a bunch of redundant data. We have ideas for suspending and resuming read replicas, it's just complicated!
At the moment we're a pretty good place to deploy your full stack app for free. And we're a very good place to cheaply run a full stack app in multiple regions.
This is huge! Kudos to the team for their commitment.
But, is there a reason why the minimum size of a storage that can be provisioned is 1GB? Last I checked, a provisioned storage cannot be shared by multiple apps, so I had to always create an overprovisioned storage when creating a small app, leading to a waste of money. Is it possible to share a PostgreSQL instance instead?
This reminds me of the days where every popular PHP+MySQL application had an option for a table prefix, so multiple applications could live in the one databse provided by your classic hosting provider.
We are going to migrate to Fly.io very soon. We are very excited about the prospect of Elixir, Phoenix and Liveview running close to our users with NONE of the javascript headaches. I've hit the eject button on javascript and won't be coming back.
This free tier of database will make it easier for everyone to test the waters at Fly.
IMO, small projects most often do not need a database. It is much simpler to serialize to a binary encoding and read/write to disk. I have several small projects, even some with > 100GB of data, that use this approach and it is very nice. I even have login/out without storing user data at all (yes, it is possible).
..The primary exception to this being if you absolutely have to normalize your data (with key constraints), or need the transactional guarantees of a database.
Someone give this writer a raise :D "We could tell you we want to prevent crypto mining because we care about the planet, and that would be true. We also have a capitalism nerve that hurts when people spend our money gambling. Your credit card number is the thin plastic line between us and chaos."
> We could tell you we want to prevent crypto mining because we care about the planet, and that would be true. We also have a capitalism nerve that hurts when people spend our money gambling. Your credit card number is the thin plastic line between us and chaos.
Could a payments platform like Stripe build a one-click "Freemium powered by Stripe" button ala OpenID, so that these services may free-tier in a friction-free way?
The real problem here is just abuse, and Stripe has abuse detection products. We have a lot of 2022 goals, but any list we've made in the last quarter would have included "get rid of the credit card prompt" in the top 3. So, yeah, something's going to happen here. We hate the fucking credit card prompt.
This article is about providing IaaS for free, and isn't that anti-competitive? The big cloud providers and Heroku do it, and I think it makes it a bit harder for OVH, vultr, hetzner and others who don't provide freebies like this.
Curious as to the motivation for this. I've never heard of this company, but the pricing page says the cheapest PG cluster is $6.88 per month. Is that enough to keep their target customers from using their service?
It's an attempt to reduce friction. Developers try services like ours out for fun before they use them in anger. Putting a price on the fun stuff keeps people from trying it. It's not that $6.88/mo is too much, it's that >$0/mo is too much for developers who are used to their side projects being subsidized by monopolies or VCs.
People spend a lot of money on infrastructure when they use it in anger. Free apps cost us ~$0.50/mo. If we can sift through 1,000 free users and find one who converts to $25k per month, we're delighted.
I just deployed a side-project to fly.io. I cannot really say anything about the multi-region capabilities since it is single-region so far, but I must say the domain setup and certificates is really smooths
One genuine question from someone with no context into their product: does Fly lock me in by barring access to WAL replication? This is something Heroku does that is extremely annoying as you'll grow and grow with them and one day you realize migrating the data will be a massive hassle.
We do not! You have full administrative access to your postgres. You can create offsite replicas, or even fork the Postgres app we use and deploy over your Fly.io installed postgres: https://github.com/fly-apps/postgres-ha
RDS preventing external streaming replicas is the most annoying thing ever.
You can run a bare Postgres (or any other db for that matter) app on fly with any settings you want. It won’t be wrapped in their nice cli command but it will work.
Fly's developer experience is really sweet.
Do you have plans to open up your API for provisioning on the fly?
We've use-cases which require dynamic provisioning of new deployments as well as mutating existing deployments based on APIs we offer to our customers.
Very cool, I've always recommended Heroku's free postgres to people looking for a good hosted db to start with for small projects - nice to have competition in this space. A flat 3gb is very generous compared to 1gb/10k rows that Heroku offers.
Including free storage in the free plan is a good strategy. Aside from small projects, I bet it'll make it much easier for people looking to host their production workloads to try before buy. Love this!
> Even for our free services, we require a credit card number. We know that's the worst and it gives you heartburn. It's not because we plan to charge you.
> But here's what happens if you give people freemium full access to a hosting platform: lots and lots of free VMs mining for cryptocurrencies.
You could also permit people to make a cryptocurrency bond deposit to get a free account, which is forfeit if their account gets terminated by you for abuse. Payment cards are strongly linked to government ID in the USA, sadly, which means that presently someone has to effectively dox themselves to you to get a free account.
PS: Please increase the contrast of your body copy. Light grey on white is hard to read even with good eyesight.
AWS has some of the most secure data centers on the planet, so I'd hesitate to draw comparisons, but we're mostly at Equinix, which is no slouch on physical security.
AND you actually get sole control of all the data, all without the need for a credit card!
Seriously though, who is this for? Any backend hosting platform offers a database. It's just a standard at this point. For people hosting static gihub pages (and storing all the database connection credentials in frontend js?!), don't make me laugh. Or you've already got your own vm? Then literally just install postgres right there.
It brings them, more or less, to feature-parity with Heroku. If you cared about the differentiators for Fly (which, at a glance, seem to be better support for global reach and Docker, and less fiddling with Postgres) but were kept away by their lack of database on the free tier, now you probably want to give it a spin.
If you don't care for Heroku-style deployments, because you're happy managing your own infra, then this is not for you.
We're different, but only because we were builtin 2020 instead of 2008. Notably:
1. You get your own Postgres proces and disk, no shared database instances
2. Private networking is baked in. Your app talks to postgres over an encrypted private network
3. You can provision persistent disks and run basically anything you want
4. We support arbitrary TCP and UDP services, not just HTTP.
Though as part of the signup I'm asked for a credit card. So it's not really "free". It's for credit card users only that need to trust they won't charge you.
I believe they address this on the last sentence of the blog as a measure to prevent abuse on the free-tier they ask for credit card info, they specifically complain about cypto mining
Sure, if you want to install it on a machine that you are already paying for and managing, and then operate the thing yourself. That's obviously a very different product than any [IPS]aaS.
Tangentially related: I really dig this “soft” serif font that seems to be making the rounds (including on fly.io). I can't figure out if I like it because it is making the rounds, or if it's just easy on the eyes. Either way, I dig it.
You might find this overview of Windsor [1] interesting then. It was a classic typeface that many others (including Mackinac, used on Fly.io) were inspired by.
Hey, just letting you know that almost all your comments are shadowbanned, in error it seems. You can use the contact link at the bottom of this page to contact HN staff to sort it out.
lewisl9029|4 years ago
That's fine for a lot of use cases, but the unit economics of the per request pricing model means it's really hard to operate a predictably sustainable (i.e. profitable) business without also charging our customers on a usage basis, or enforcing limits on usage, neither of which is ideal for maximizing engagement as incentives are no longer aligned.
Fly just gives us compute at the edge for a predictable price per unit of actual compute resources as opposed to requests, and gives us freedom to serve as much traffic as we can min-max onto those resources, like we could with traditional cloud compute.
This provides much better unit economics for many kinds of applications, at the cost of having to manage the scaling ourselves. But because the option exists, we can make this tradeoff on a case-by-case basis, which is so much better than if all we had was "serverless" stuff at the edge and had to choose between just low latency across the globe vs good unit economics.
mooreds|4 years ago
I am not sure if I'm missing something or what, but here's where I looked:
I really want to like this service, as we have (at $CURJOB) an app packaged as a docker image that it'd be awesome to set up to run on Fly.io, especially with the multi-region postgresql.What the heck am I missing? Can I just not read? Do I just need to install the CLI and all shall be made clear?
0: https://fly.io/docs/introduction/
1: https://fly.io/blog/docker-without-docker/
2: https://fly.io/docs/speedrun/
3: https://fly.io/docs/getting-started/
ignoramous|4 years ago
Workers Unbound is $1 for ~6.6M requests (+ runtime at $0.0000015 per sec / $12.5 for 1M GB-sec). That's super cheap considering free egress, which brings me to...
> Fly just gives us compute at the edge for a predictable price per unit of actual compute resources as opposed to requests...
Fly.io may not meter requests anymore, but they continue to meter egress, even between your VMs in the same region [0]. Usage-based price model is everywhere, like it or not.
[0] https://community.fly.io/t/do-traffic-over-6pn-within-the-sa...
leerob|4 years ago
cxr|4 years ago
The praise on the subject of predictability is interesting, given perennial concerns about uncapped vs capped usage charges (with any cloud provider), but esp. in light of past Fly-specific comments that "putting work into features specifically to minimize how much people spend seems like a good way to fail a company".
<https://news.ycombinator.com/item?id=24699221>
rmbyrro|4 years ago
If you know them well and their usage patterns, you can predict with confidence how much each customer will cost you. With granularity to the level of a feature or even a particular action.
This allows for extremely precise and safe unit economics planning. I couldn't be happier with this benefit from serverless.
In a server-based infra you have many fixed costs: servers themselves, unused capacity, and your time to maintain it, which is certainly expensive, since it competes with attention to the product or maybe sales and customer support.
bradgessler|4 years ago
They’ve got Chris McCord there, who has already improved their Elixir deployment story. I tweeted a few weeks ago about improving the default Rails deployment experience to not require DB provisioning and configuration of env vars like SECRET_BASE_KEY and they said it would likely ship within the next 3 months.
My hot take is they’re setting themselves up to ride the server-side rendered HTML renaissance we are experiencing with LiveView and Hotwire. It will become much more important to deploy applications geographically closer to customers to lower latency, which Fly makes sane for the rest of us.
atonse|4 years ago
But we aren't yet ready for that piece.
cultofmetatron|4 years ago
Fly.io was still very beta when My startup was launching. if we were creating out deployment now, fly.io would be top of my list.
keewee7|4 years ago
Is some shady ISP colocation as safe as highly secured AWS and Azure data centers?
gingerlime|4 years ago
Would love to understand better how to deploy Rails with fly and still benefit from multi-region/failover/scaling
p.s. horrible nitpick, but I think it’s SECRET_KEY_BASE :)
mrkurt|4 years ago
tylerchr|4 years ago
I’m not a Fly.io customer (although more and more I am thinking I should be), but I eagerly read every new blog post because I’m so entertained by their tone. These people are clearly having fun at work.
tptacek|4 years ago
vlahmot|4 years ago
No fancy buzzwords, to the point and speaks to things we all know are true but are typically not addressed or are wrapped up in spin. The first and last paragraphs are great examples.
The authenticity of it leaves me with a strong sense of trust and respect.
awb|4 years ago
2010?
davnicwil|4 years ago
I'm so glad to be seeing someone do this, because for a while it was looking like nobody would - and as long as nobody is doing it, nobody would have to.
Now with Fly increasing in popularity, you have to expect that others, Cloudflare in particular, must be seriously looking at integrating more 'centralised deployment' tools like postgres into their edge platform too (if, to be fair, they didn't already have this on their roadmap), providing more options and competition.
KronisLV|4 years ago
> Even for our free services, we require a credit card number. We know that's the worst and it gives you heartburn. It's not because we plan to charge you.
> But here's what happens if you give people freemium full access to a hosting platform: lots and lots of free VMs mining for cryptocurrencies.
> We could tell you we want to prevent crypto mining because we care about the planet, and that would be true. We also have a capitalism nerve that hurts when people spend our money gambling. Your credit card number is the thin plastic line between us and chaos.
I don't really have another alternative to offer here, but i appreciate the transparency and honesty of saying this, regardless of whether they're right or not.
I wish more companies out there actually explained their reasoning behind decisions, instead of essentially just going like: "We're doing this because of undisclosed reasons, please accept that this is how things are going to be."
Of course, in many cases you can come up with a few feasible reasons for why companies make many of their decisions, but being given first hand context for these things feels nice!
sascha_sl|4 years ago
tluyben2|4 years ago
gscho|4 years ago
hannofcart|4 years ago
Very earnest.
samwillis|4 years ago
Also do you have any plans for a managed upgrading/patching of Postgres, again similar to Heroku?
For me personally the fully managed nature of Postgress on Heroku is brilliant and what I would love to see on Fly.io. It seems that on Fly its a little more hands on or am I missing something?
0: https://fly.io/docs/getting-started/multi-region-databases/#...
1: https://devcenter.heroku.com/articles/heroku-postgres-data-s...
mrkurt|4 years ago
We will be able to do a WAL backup / point in time restore feature when we ship object storage.
Managed upgrades are almost in. If you run `fly image show` it'll tell you if you need one, then `fly image update` will upgrade your Postgres. We don't do this automatically yet. It won't be difficult though.
theomega|4 years ago
I must say the deployment experience was great, stuff just worked, brilliant.
One question in case someone tried that: How can you customize the postgres config? I want to enable pg_stat_statements, and one needs to add `shared_preload_libraries = 'pg_stat_statements'` to the config for this. One could also make this the default maybe? It is the default on most cloud providers (AWS RDS, Digital Ocean).
iudqnolq|4 years ago
Check this out:
> Fly Postgres clusters are just regular Fly applications. If you need to customize Postgres in any way, you may fork this repo and deploy using normal Fly deployment procedures. You won't be able to use fly postgres commands with custom clusters. But it's a great way to experiment and potentially contribute back useful features!
https://github.com/fly-apps/postgres-ha
erulabs|4 years ago
mrkurt|4 years ago
unknown|4 years ago
[deleted]
aceelric|4 years ago
Since fly deploys at the edge closer to the users, our response times for notifications are 20ms on average which is mind blowing since I haven’t spent more than 1 hour on infrastructure setup.
1: https://usenative.com
afandian|4 years ago
hstaab|4 years ago
It was a bummer. Everything seemed great, I just literally couldn’t use it.
I’d love to hear others experiences with the PG features. I could see it replacing Digital ocean for my use cases (if it works reliably)
mrkurt|4 years ago
We know this because we have metrics on how many people created and then destroyed Postgres DBs without successfully connecting an app to them. When we show this to investors we'll explain that the improvement was a big win for our "go to market efforts". But you should know it was really just a bug fix for something we disappointed you with.
sneak|4 years ago
https://www.elephantsql.com/plans.html
password4321|4 years ago
https://www.cockroachlabs.com/pricing - 5GB, 250M "request units"/month (distributed, PostgreSQL-ish https://www.cockroachlabs.com/docs/stable/postgresql-compati...)
I was not aware of the other portions of the free compute tier from Fly.io, was looking into Oracle Cloud. (Ask HN: What cool stuff do you run free-tier? Sep 2021 https://news.ycombinator.com/item?id=28652736)
asaddhamani|4 years ago
If I outgrow the $154 plan I have to jump to a ~$1300 plan.
Is this right?
mrkurt|4 years ago
Postgres prices are a function of the underlying resources. There are a bunch of steps between $7 and $28, you can put any size volume you want on your Postgres cluster and run 512MB or 1GB of RAM. 1GB RAM + 10GB volumes would be $14.40, for example.
Dedicated CPU VM types are much more powerful than the shared CPU. So the jump from $27 to $154 gets you, like, 20x the CPU power. I would like to have shared-cpu-2x, 4x, and 8x to give us a better cost gradient. So far it hasn't been an issue, though, people seem to want the extra CPU for a beefier DB.
shroompasta|4 years ago
Granted, I've only handled small - medium sized infrastructures, and never really experienced the issues at scale, but if I were to get to that point, wouldn't it be easier to just hire a Infrastructure Engineer who could deal with the replication / sharding, not to mention having that engineer also deal with site reliability and dev ops?
If a user wants to hit my service, and then that service has to hit fly.io's postgres, isn't that an increase in latency? sure I could probably have it pretty darn close, but 20-100ms is still 20-100ms. I could manage my own (or hire someone), and have the db live in the same container (if i have a big enough box), or have it within the same data center.
And if it is the case that I do need to replicate across data centers, at that point, I should have the financial capabilities to hire an infra engineer.
Can anyone enlighten me why I would ever need this?
anurag|4 years ago
That said, you can go very far with stateless apps at the edge with regional read replicas and a single write instance that's half way across the globe.
mrkurt|4 years ago
You can replicate across datacenters on Fly.io for free. No infra engineer required. And very little code change required: https://fly.io/blog/run-ordinary-rails-apps-globally/
radiKal07|4 years ago
quickthrower2|4 years ago
mrkurt|4 years ago
melony|4 years ago
dmw_ng|4 years ago
Many workers I've seen (or written) start by reaching out over the Internet to another backend. There goes most of your edge benefit almost immediately.
mrkurt|4 years ago
1. Provision your DB
2. Add regions
3. Add our Ruby gem to your Rails app
4. Deploy Rails
5. Set the same regions for the Rails app
And it just works. Phoenix is close but we haven't quite polished up the Hex library yet.
I think being transparent about regions is a feature! We can definitely automate most of those steps away, but the region you're running in will never be obfuscated. CDNs are _notorious_ for placing content and features where it's cheapest for them and I think that's gross.
Whether we can make it free or not is an open question. Ultimately there's a cost to storing a bunch of redundant data. We have ideas for suspending and resuming read replicas, it's just complicated!
At the moment we're a pretty good place to deploy your full stack app for free. And we're a very good place to cheaply run a full stack app in multiple regions.
o_m|4 years ago
grncdr|4 years ago
stapled_socks|4 years ago
Is it because you need to be able to defer responsibility to a legal entity of the EU?
xpressvideoz|4 years ago
But, is there a reason why the minimum size of a storage that can be provisioned is 1GB? Last I checked, a provisioned storage cannot be shared by multiple apps, so I had to always create an overprovisioned storage when creating a small app, leading to a waste of money. Is it possible to share a PostgreSQL instance instead?
breakingcups|4 years ago
mrkurt|4 years ago
sergiotapia|4 years ago
This free tier of database will make it easier for everyone to test the waters at Fly.
rkwasny|4 years ago
Where do you store user uploaded content?
mrkurt|4 years ago
errantmind|4 years ago
..The primary exception to this being if you absolutely have to normalize your data (with key constraints), or need the transactional guarantees of a database.
tschellenbach|4 years ago
ignoramous|4 years ago
Could a payments platform like Stripe build a one-click "Freemium powered by Stripe" button ala OpenID, so that these services may free-tier in a friction-free way?
tptacek|4 years ago
benatkin|4 years ago
This article is about providing IaaS for free, and isn't that anti-competitive? The big cloud providers and Heroku do it, and I think it makes it a bit harder for OVH, vultr, hetzner and others who don't provide freebies like this.
bachmeier|4 years ago
mrkurt|4 years ago
People spend a lot of money on infrastructure when they use it in anger. Free apps cost us ~$0.50/mo. If we can sift through 1,000 free users and find one who converts to $25k per month, we're delighted.
divan|4 years ago
https://www.edgedb.com/docs/guides/deployment/fly_io
t_christensen|4 years ago
yewenjie|4 years ago
https://fly.io/docs/about/pricing/
hellbannedguy|4 years ago
[deleted]
forgotmypw17|4 years ago
mrkurt|4 years ago
yakkomajuri|4 years ago
One genuine question from someone with no context into their product: does Fly lock me in by barring access to WAL replication? This is something Heroku does that is extremely annoying as you'll grow and grow with them and one day you realize migrating the data will be a massive hassle.
mrkurt|4 years ago
RDS preventing external streaming replicas is the most annoying thing ever.
kasey_junk|4 years ago
hbagdi|4 years ago
mrkurt|4 years ago
rubyist5eva|4 years ago
robertlagrant|4 years ago
unknown|4 years ago
[deleted]
sanketsaurav|4 years ago
sneak|4 years ago
> But here's what happens if you give people freemium full access to a hosting platform: lots and lots of free VMs mining for cryptocurrencies.
You could also permit people to make a cryptocurrency bond deposit to get a free account, which is forfeit if their account gets terminated by you for abuse. Payment cards are strongly linked to government ID in the USA, sadly, which means that presently someone has to effectively dox themselves to you to get a free account.
PS: Please increase the contrast of your body copy. Light grey on white is hard to read even with good eyesight.
gkop|4 years ago
indigodaddy|4 years ago
mrkurt|4 years ago
unknown|4 years ago
[deleted]
aitchnyu|4 years ago
jmtucu|4 years ago
Hmmm
toyg|4 years ago
dimitrisnl|4 years ago
ewuhic|4 years ago
sandGorgon|4 years ago
Even vercel doesn't have a database layer. Fly.io again gives VM - not an managed app layer.
dragonwriter|4 years ago
Are we not counting the major public clouds as “app deployment platforms” now?
digianarchist|4 years ago
detaro|4 years ago
keewee7|4 years ago
Is our business data as safe in some shitty ISP colocation as it is in highly secured AWS and Azure data centers?
tptacek|4 years ago
bruce343434|4 years ago
Seriously though, who is this for? Any backend hosting platform offers a database. It's just a standard at this point. For people hosting static gihub pages (and storing all the database connection credentials in frontend js?!), don't make me laugh. Or you've already got your own vm? Then literally just install postgres right there.
toyg|4 years ago
It brings them, more or less, to feature-parity with Heroku. If you cared about the differentiators for Fly (which, at a glance, seem to be better support for global reach and Docker, and less fiddling with Postgres) but were kept away by their lack of database on the free tier, now you probably want to give it a spin.
If you don't care for Heroku-style deployments, because you're happy managing your own infra, then this is not for you.
mrkurt|4 years ago
"fly launch" on a Phoenix app, for example, gets your entire app + DB deployed in about 60s for free.
grammarnazzzi|4 years ago
I hate it when time travelers pollute my news feed.
jamiegreen|4 years ago
mrkurt|4 years ago
1. You get your own Postgres proces and disk, no shared database instances 2. Private networking is baked in. Your app talks to postgres over an encrypted private network 3. You can provision persistent disks and run basically anything you want 4. We support arbitrary TCP and UDP services, not just HTTP.
We're also substantially cheaper.
tshanmu|4 years ago
unknown|4 years ago
[deleted]
junon|4 years ago
mrkurt|4 years ago
kulor|4 years ago
hungryforcodes|4 years ago
danvillalon|4 years ago
hungryforcodes|4 years ago
webmobdev|4 years ago
Kalanos|4 years ago
ithrow|4 years ago
yjftsjthsd-h|4 years ago
JadoJodo|4 years ago
rosszurowski|4 years ago
[1]: https://fontreviewjournal.com/windsor/
tyingq|4 years ago
powerlogic31|4 years ago
Thanks for the free services.
mrkurt|4 years ago
breakingcups|4 years ago
flythrow|4 years ago
[deleted]
penjelly|4 years ago
ericcholis|4 years ago
toomuchtodo|4 years ago
robjan|4 years ago
Jamie9912|4 years ago
Hmm.. not sure if I want to install something to use this.
tptacek|4 years ago
https://github.com/superfly/flyctl