Hacker News new | ask | show | jobs
by MuffinFlavored 1296 days ago
> You can spin up a Postgres database, or a whole cluster, with just a couple of commands. Sign up for Fly.io and launch a full-stack app in minutes!

What is the HackerNews opinion on: who is their actual customer?

Obviously lots of companies pay for managed databases. It's not an uncrowded market for a reason.

But like... pricing wise... it seems so expensive? What is the HackerNews take on the valuable proposition specifically for hosted databases? Is the answer basically 1:1 with anything cloud hosting related?

5 comments

Our pricing is a rorschach test.

If you come from Heroku, we seem too cheap: https://community.fly.io/t/comparison-of-prices-to-heroku/89...

If you are most familiar with AWS, we seem pretty close to what you're used to. But very cheap for egress.

If you are a DigitalOcean user, VMs seem pretty ok, but bandwidth seems more expensive.

If you are a CloudFlare user, you think everything else is too expensive until they try to sell you an Enterprise plan.

If you're a happy user of Hetzner or OVH, you pay something close to the same price as we do for servers. And might be surprised at our prices. Because we also want to have reasonable margins.

People really like us when they have an app that seems valuable to them, they don't want to think hard about running servers, but they do know they can "eject" and run the rest of their infra too: https://community.fly.io/t/startup-credit-program/6709/3?u=k...

Fly.io's pricing seems fair. It's not amazingly cheap, but there aren't a lot of PaaS offerings out there and most are very expensive and have complicated pricing compared to Fly.io - even Digital Ocean's AppPlatform is more expensive.

I am curious about the freemium model for PaaS systems. I've always wondered what percent of compute ends up being free and if the paid prices have to be higher to subsidize the free tier. Would it be better for the paying customers if the service was 30% cheaper and there was no free tier? Of course, I might be incredibly far off on how much the free tier customers cost.

I think for people that think Fly.io is expensive, it just feels like what Fly.io does should be table stakes rather than a premium service in 2022 - and yet it's so hard to find! Heroku is 15 years old and Fly.io feels like the first platform I've used since that just gets it.

I would say that a collaboration between you and Neon (https://neon.tech/) would be pretty cool. While your site does link to Neon as a recommendation, Neon's datacenters often aren't that proximal to Fly.io's - Ohio isn't that close to Chicago, Virginia, or New Jersey. Maybe that'll get better in the future.

I'd always love it if Fly.io were cheaper, but more than that I'm glad that Fly.io seems to really get what customers need.

> If you are a CloudFlare user, you think everything else is too expensive until they try to sell you an Enterprise plan.

tbf, Cloudflare's Enterprise plan includes usage, too. Just like Fly's own plans: https://fly.io/plans

Besides, the Cloudflare platform is way more reliable and their products actually make it to GA :)

> If you are most familiar with AWS, we seem pretty close to what you're used to. But very cheap for egress.

But then why not just use AWS App Runner and keep everything in AWS? No egress costs and you get the best support in the industry on legitimately enterprise-grade infra. Don't like AWS? Ok, GCP has Google Cloud Run.

Why would I ever choose Fly when the competition already has a Fly-alike with global infra spend 1000x yours?

Last I checked, a 4 vCPU/16GB RAM/1TB storage configuration costs around $80 USD per month at VPS hosts like Hetzner. It's $762 USD per month on RDS.

There are trade-offs of course (https://onlineornot.com/self-hosting-vs-managed-services-dec...) between the two options.

I've been hoping fly.io builds a strong automated middle ground for a while now!

A few years ago I managed a 10TB Postgres cluster backing a moderately high traffic site. I no longer even give the briefest of blinks at any of the fully managed database prices that used to make my eyes water.
Because you feel like you got good value for your 10TB DB or because you feel like you got fleeced? Not sure I understand your undertone.

Cheers

I think the implication is, “I used to manage my own DB instance and I’m now willing to pay anything even vaguely reasonable to not have to do that again.”
Correct!
Am I reading https://instances.vantage.sh/rds/?min_vcpus=4&cost_duration=... wrong. It seams you can get that as a db.t4g.xlarge for ~$188/month.

Still more than 2x the cost, but not nearly $760

Yeah, tack on another $115 or so for the 1TB of storage. And as a sibling comment mentions, on-demand pricing means it isn't really an apples-to-apples comparison. In almost every case other than a hobby project it feels like the convenience of RDS vastly outweighs the savings of ~$250 you'd get by self-hosting.
> for ~$188/month.

Note that this is still the on-demand price.

Although it's still not Apple to Apple, no one (sane) would useRDS 24x7 without RI. That probably brings you down another 50 bucks or so.

$188 without storage and bandwidth.
The t4g instances are also burstable so running your database with 4 cores under load would either get you throttled or produce more charges.
> who is their actual customer?

Anyone who wants a managed database + to run Docker contains on VMs without having to do much ops work or deal with the complexities of the big clouds.

> But like... pricing wise... it seems so expensive?

It's quite a bit cheaper than Heroku who run a similar service and have bootloads of customers.

> Anyone who wants a managed database + to run Docker contains on VMs without having to do much ops work or deal with the complexities of the big clouds.

At what cost though? Why not run a VM that runs Postgres? It might take a week to set up in terms of automated backups, cluster, failover, etc. (ok, maybe a few more weeks) but hosted DB costing 5x the underlying VPS is insane?

By all means, if you have a database stack you're comfortable managing yourself, use it! We did Fly Postgres because we more or less had to, not because we want to own the storage stack on Fly.io. We want, in fact, the exact opposite thing. If you've got a database stack you enjoy managing, and extra time on your hands, spin it up for other Fly.io customers as a product! We'll love you for it.
Many companies have nobody who can do that work competently, and would rather focus on development. If you've ever had a random IT person "set up a database server", only to discover it barely has any memory or CPU allocated, it's configured with the slowest storage options possible, and it has no backups or monitoring, well... that's what you're paying for.
In actuality I think the number of people I have worked with in ~20 years that I would trust to set up a production database to the same level to which I trust RDS… is maybe like 2 people. Those skills are RARE and hilariously underestimated. “Just run a Postgres VM” is so far from the mark I can’t even explain.
You know a week of an engineer is multiple thousands of dollars right?
I can understand the flawed line of thinking that leads to not taking salaries and time into consideration when making comments like "why not just do it yourself?", but it's interesting how rampant it is. I've worked with people who are like, "To avoid paying some company $999/year, I'm going to invest $1,500 of my time setting up a free version running on hardware that has a smaller recurring cost (but still does have a cost). And let's just not worry about how much of my time might be required to support this once it's up an running."
The opinions scale.

My last gig had an MSSQL database component that pushed $700,000 a year.

It wasn't _that_ big but it was pushing the upper published limits of what you could do with an MSSQL RDS. One day replication stopped working, and amazon business support of whatever couldn't resolve it.

I've been around the block and have continuously come to the conclusion that it's usually better to have the skills to run them yourself, and then it's just a balance of whether or not you're time or cash poor.

It also depends a lot on your scale. My last company was paying $50/month for a hosted database (4gb RAM), we upgraded to one with 8GB RAM for $200/month that was likely to be sufficient for the foreseeable future. That was expensive for what we were getting, but it certainly wasn’t worth our time or effort to build out our own.
Why spend a few hundred dollars when you can spend tens of thousands!
Any company that has an engineer is going to most likely have them full-time. They either work on standing up a database and keeping it alive some of the time, or they watch their business go from $100/mo -> $1k/mo -> $10k/mo for a PaaS database, no?
That is assuming you're successful (or at least have a busy storage tier.)

I think the people who are doing this calculation wrong are mostly confusing and conflating those two outcomes. Just because your database servers are very busy, does not mean your product achieved some commercial success. You can't just pay extra for the full-service treatment and expect to receive a commensurate output in value,

(and the people who won't pay for a real person to own their databases full-time are likely in a circular Venn diagram with people who won't pay attention to optimizing their database queries, so your point can probably stand unmodified... except there is an important case where the PaaS provides value, and it's nearest to the starting point of practically everyone.)

If you look at every dollar spent on IT/databases as a sunk cost which cannot be recovered from future recurring expenses, it's very bleak indeed to put pennies on top of pennies and pile them higher every day... or you could pay attention to the signal that SaaS is providing every month (the bill for usage), and ramp up the attention paid to optimizing queries before it gets too late in terms of dollars and cents? The dollar impact of slow queries cannot be understated.

But some business ideas will also not ever make it that far. You could spend the money on DBA salary or DIY and never know how much it was really being wasted, comparatively, if you didn't ever get a handle on your own usage metrics.

Why not wait until you hit around $1k/month or more, and then hire an engineer to manage the database for you?
Unlike your code which you can redeploy after a bit of downtime, you might not be able to un-f^ck your database. I think that's ultimately the selling point. No one wants to be responsible for keeping the data safe when it's not their job. Do you work at a company that is going to applaud you for testing your backups? If not, you're wasting your time doing that. Do you work at a company that is going to promote you for getting high-availability right before an outage happens?

Some people certainly do work for companies like that. I'm sure big places like Facebook or Apple or Netflix applaud and promote people for this - and have the scale at which having people working on these problems makes sense. At your startup with a few dozen people? Probably not. If you're not building the product, you're not helping the company succeed. Ok, you're saving the company a bit of money, but at the cost of your time and the cost of the company actually getting product out the door, finding product-market-fit, etc.

Do you want to use your employee time setting up a HA database cluster and saving the company $1,000 per month or developing your app?

That's a key question: pay Linode $1,560/mo for a 3-node 32GB RAM cluster or launch 3 32GB boxes for $720, figure out PostgreSQL replication, make sure you setup the replication users, make sure you don't open any security holes, make sure you have Patroni or Stolon so that you can switch over when the primary fails, make sure you have etcd or Consul or something to handle that coordination, make sure that you have Barman or pgBackRest setup to take your WAL and persist it to S3, setup your S3 buckets, setup a full backup schedule so that you can restore easily, make sure that you're regularly testing your restores, make sure that you're testing your failover (do you even know if Patroni is actually working?), figure out how your app is going to cut over to the new primary when that happens (is there a shared IP that you need to move, are you using a proxy like HAProxy that's checking health-checks to see which it should proxy to, etc). Or would you rather just pay someone $1,000/mo so that you don't have to deal with that?

I hate paying up for something I feel like I should be able to do myself, but it does make some sense. If I decide I don't want to pay for Google Cloud Run and my servers all die, I can boot up some new boxes and get my app running again with some downtime. That's not great, but recoverable. If I don't want to pay for Google Cloud SQL and my servers die, now I'm hoping that my backups were working, that I can bring a much more complicated deployment back online than just some random process or container, etc. One of those two just carries more risk. Yes, backups should work and should be tested and you should even test backups in a managed service, but if you're a startup trying to move fast and find product market fit, I'm guessing that the premium is worth saving your engineers that time. I hate saying that because cloud providers are pushing such high margins, but it's probably true.

As a curiosity, do you run your own databases? If so, which? Do you find that everything Just Works or that it's a pain to get everything running, debugging things, testing backups, etc.? Is this in a high-traffic, commercial situation or just as a hobby? I think hosting your own database is relatively easy if you're just going to have one server and pg_dump -> rsync a backup nightly. In the rare event that you lose a server, maybe have an hour of downtime. If you're able to recover within 50 minutes and you lose a server every week, you're still at 99.5% uptime. If you can recover in 40 minutes and you lose a server every month, you're at 99.9% uptime. Do we need more? How often does a VM go down (note, don't say "I have 1,000 servers and I lose one every other day" - that would mean the average instance is lasting several years)? Won't Google's live-migration of VMs handle a lot of that?

So, it's trade-offs, but I think we're not living in a world where companies say "we're not going to architect for HA and we'll suffer an hour or two of downtime every year or two when we lose a box." Sometimes we certainly get ourselves into situations where we've made complicated systems that end up having complicated failure scenarios too.

Still, I think managed databases are an easy sell, even at their premium price point.

> That's a key question: pay Linode $1,560/mo for a 3-node 32GB RAM cluster or launch 3 32GB boxes for $720, figure out PostgreSQL replication, make sure you setup the replication users, make sure you don't open any security holes, make sure you have Patroni or Stolon so that you can switch over when the primary fails, make sure you have etcd or Consul or something to handle that coordination, make sure that you have Barman or pgBackRest setup to take your WAL and persist it to S3, setup your S3 buckets, setup a full backup schedule so that you can restore easily, make sure that you're regularly testing your restores, make sure that you're testing your failover (do you even know if Patroni is actually working?), figure out how your app is going to cut over to the new primary when that happens (is there a shared IP that you need to move, are you using a proxy like HAProxy that's checking health-checks to see which it should proxy to, etc).

Little bit off topic: It's funny that all the time you see comments on HN saying something along the line: why using Kubernetes, it's just overly complex. But after that are, most likely, returning to their self managed DB clusters that need all that maintenance and setup just listed. While, if they were using Kubernetes, they would have Operators or Helm Charts that do 90% of the stuff.

(Now back to topic) Don't get me wrong, I'll chose a managed DB all day every day over something self managed but sometimes (e.g. startup without a indefinitely amount of VC money) self management of infrastructure is the fastest and cheapest way to go.

> Still, I think managed databases are an easy sell, even at their premium price point.

Except Fly Postgres isn't a managed offering unlike, say, CrunchyBridge or PlanetScale or Alloy or Aurora. It is pretty much a "Fly app" you'd have to tend to yourself.

But fly.io also isn’t charging a premium over the base infra cost (are they? I don’t see fly Postgres on their pricing page)
Fly Postgres is just a Fly app. It's open source; you can grab it off Github and deploy it yourself, we'll never know. No, we're not upcharging for Postgres.
The way I like to think of this is risks.

Different companies or even teams within different companies will have different risk acceptance. The thing with managed services, is part of the premium is your getting all the bells and whistles... but that may not be aligned with what customers need, that paying the managed premium is buying them.

So I suspect the important thing here is that customers realize what they're getting and have proper expectations set. In this case, unless I'm missing something, that you're not getting a managed database service from fly.io, you're getting an OSS tool that makes running postgres on fly.io a bit easier. Kind of like a database controller for kubernetes... helps you automate some things, but it's still just software running on your cluster.

And then it's up to those customers to decide, whether that's acceptable risk to them or not. Maybe a bunch of customers get to vote with their wallets on whether this works for them or not. Maybe there will be enough demand where some partner specializing in database tech like neon, crunchy, cockroach, etc will have a service targeting fly.io specifically, or maybe fly.io will get stuck building it themselves if customers demand it.

Lots of maybes, so at least I'll be interested to follow this and see how it develops.

Not only that, you have to figure out how to fix the thing if the HA contraption breaks.

There's also security to think about (do you run a CA? how do you handle Postgres certificates, etcd certificates, rotation, revocation, etc).

Some hosted providers also have nice value-adds like query-level performance monitoring and DBA services

Let us put 3tb, let alone 4pb through this.

Can anyone tell me I should or shouldn’t trust I’ll be ok?