Readit News logoReadit News
Posted by u/nomilk 3 years ago
Ask HN: So you moved off Heroku, where did you go?
So you moved your apps off Heroku, where did you go to and how has it worked out?

Particularly interested in:

1. How much work it took to move apps (be honest)

2. How much experience you had at the time of the migration - e.g. on one extreme your entire devops experience may consist of just Heroku (that's me) or on the other extreme you may be a k8s guru (this helps others gauge how they'll go)

3. How valuable were your learnings? E.g. replacing Heroku with an IAAS instead of another PAAS might take longer but give more fundamental learnings, and hence be worth it for some

4. Cost comparison

5. Summary/description of your apps (e.g. 20 tiny apps with a few hits per month, 5 medium with ~20k hits per month, 2 large with 1-2m hits per month type thing). Please give language/framework.

6. Anything else you want to add

andrasbacsai · 3 years ago
Hey, Andras here, founder of Coolify (https://coolify.io). Coolify is an open-source & self-hostable Heroku / Netlify alternative.

Lots of features are added day-by-day and I'm open for new ones. Visit our Github (https://github.com/coollabsio/coolify) or our feedback page (https://feedback.coolify.io/) to get more info.

A few months ago, I quit my job and started to work on it full-time (best decision I've made).

It is not VC funded (said no to 30+ investors - time will let me know if it was a good decision or not ), but funded by the awesome community! <3

Why I'm mentioning this? Because I would like to focus on the functionalities, the community & the users and not the revenue and other boring metrics. I just would like to make a good software, enjoy the process and make people's life easier. I do not want to make millions of dollars from it. If me and my family could live happily, that is totally fine.

Let me know if you have an questions. I'm happy to answer them.

(Also I'm working on a cloud/managed hosting version of Coolify (https://beta.coolify.io/))

vorillaz · 3 years ago
I am a happy Coolify user and I could say that it is a promising and quite active project with a vivid community. The fact that you can self-host dozens of services using a single VM is a breeze of fresh air.

Furthermore, with just a bunch of dollars you can get a really good VM from Hetzner and host everything there. At the moment I am using Coolify for small Node.js apps as well as using a few more services: - VaultWarden. - Minio as an object storage solution. - Glitchtip as a Sentry alternative.

Essentially, if you are considering privacy and avoid paying a dime to Jeff directly or sideways (most of the PaaS services are built on top of AWS) projects like Coolify, CapRover, Dokku etc are the way to go.

jrochkind1 · 3 years ago
My whole purpose in using Heroku is to avoid self-hosting something, to get the "platform as a service." Is that not the main attraction of heroku? Maybe not for everyone, if the idea of a self-hosted product as an "alternative" to heroku has traction?
lolinder · 3 years ago
Presumably this is why the cloud/hosted version OP is working on has a good chance of being profitable. Open source means it's hostable as a backup plan, but the cloud version is there for those who want the convenience.
ryanSrich · 3 years ago
Right. It's not even about the initial setup and provisioning. I can handle that. But what I don't want to handle is constant maintenance. I get weekly notifications of maintenance that Heroku is doing for me. I have no interest in doing these things, or hiring anyone to do them.
andrasbacsai · 3 years ago
Yes, as lolinder mentioned, there will be a hosted version soon. :)
masukomi · 3 years ago
I think simple and not doing it yourself is the entire selling point for heroku.

Coolify sounds cool, And i love the idea of being able to have self-hosting as a backup which it would allow, but i don't want to HAVE to self host. Would rather pay Coolify to host for me until they go out of business / change direction, at which point i can continue on with the self-hosted bit.

TimMeade · 3 years ago
This (coolify) looks very interesting. Since others may have the same question as i do: Does it scale horizontally? We actually have our own racks in datacenter and if i gave 3 machines to it would they handle that?

I saw you mention the K8s soonest: is that your scaling solution? Seems it would be simpler.

Regardless I think we may look into this.

andrasbacsai · 3 years ago
You can attach any number of servers (and Remote Docker Engines) to a single Coolify instance (docker swarm is not supported).

If you are using a remote server, the building process of an application is done on the remote server and not locally (on Coolify's server), so Coolify won't be affected on how many builds are doing concurrently. The only limit is the CPU/Memory of your servers. :)

The ultimate & standard scaling solution will be K8s.

thanzex · 3 years ago
Hi! While the project does look very interesting, i'm kind of put off by the code. While it is pretty organized and neat, I can see that all of the services offered are hard-coded. Like the 330 lines long if-else chain in apps/api/src/lib/services/common.ts.

This way every time you need to set add a new service to coolify there's the need to ship a new version.

Why did you choose to go this way rather than a more generalized concept of a service? Wouldn't having a generic service architecture be more maintainable and ( imo ) more importantly add the capability to have a dynamic, global and customizable 'app store' of sort?

thatwasunusual · 3 years ago
> i'm kind of put off by the code. While it is pretty organized and neat, I can see that all of the services offered are hard-coded. Like the 330 lines long if-else chain in apps/api/src/lib/services/common.ts.

I agree and disagree.

I agree that this kind of approach to coding is something that would put anyone senior-ish off totally, but I disagree at the same time because it's only 20-ish services, and the code is easily refactorable.

My assumption - after having read code 30+ years - is that this is done on purpose, so that they want to stabilise the approach and refactor it later. Though, as we all know, there's no thing as "I'll fix this later" in programming, but still (in this case) not something that would put me off.

Also, it's on github, so I could always refactor it for them if I'm not happy with it.

gbro3n · 3 years ago
This isn't such a sin for a young project like this - Making code configurable adds overhead and it's often right to avoid 'over-configuration' along with 'over-abstraction' and other 'over-optimization efforts'. What is important is to isolate functions for orthogonality which will allow a project to be refactored according to priority needs further down the line.
andrasbacsai · 3 years ago
The reason, I (founder of Coolify) choose that, it was faster.

I’m currently making a feature, that will change this. All services could be defined with a simple yaml file that won’t be hardcoded. They will be sitting in a repository and everyone can add any service with a simple yaml file.

It is definitely more maintainable than the current solution, but with the current solution, I could iterate faster. :)

nonethewiser · 3 years ago
> Like the 330 lines long if-else chain in apps/api/src/lib/services/common.ts.

As far as I can see, there is no 330 line long if-else chain in that file. Nothing even close to it. Can you link to what you're talking about more specifically?

lagrange77 · 3 years ago
Looks really ...cool. When you say Netlify alternative, you're referring to commit-to-deploy functionality of static files only, not a global CDN and serverless functions, right?
andrasbacsai · 3 years ago
Yes, I mean that you can easily deploy static sites. It does not have global CDN and serverless functions (yet), but you can easily set a CDN (like bunny.net) in front of your sites and then it will be globally CDN'd. I'm using similar setup all my marketing sites. It is deployed by Coolify to a server and Bunny CDN will make it globally available. So I do not need to care about any traffic bumps (like I have at the moment) and all my commits are deployed automatically.
awill · 3 years ago
When did it become acceptable for the official installation method to be running a random script on your server?

No one should be running that without personally verifying each line. What if I want to uninstall it? (I haven’t looked at this script) but many don’t effectively clean up properly after uninstalling, as that’s an afterthought.

What is specifically wrong with the dozens of existing packaging solutions we already have?

Abekkus · 3 years ago
It became acceptable along with containers, so that the very OS the script is working on, is already isolated and disposable. You also mentioned dozens of packaging solutions. Which package manager should a single developer target first? Which package manager offers safety assurances enough that a customer wouldn't need to "personally verify each line" of the package manager's script?
joshmanders · 3 years ago
> No one should be running that without personally verifying each line.

Ok, if you feel so strongly about it, then before you paste the link into your terminal and hit enter to execute it, how about you uh... open the shell script it will execute in your browser and read the contents of it?

You use this idea that people are executing stuff they don't know and blaming the tools for it but don't think to read the script yourself?

hitpointdrew · 3 years ago
How is running an "random" script any different than running a "random" binary? With a script at least you CAN look at each line. With a binary you have no clue what the fuck it is doing.
discordianfish · 3 years ago
> No one should be running that without personally verifying each line.

Do you also verify each line of software you install? If you trust the author of certain software, why do you mistrust their install script?

masukomi · 3 years ago
> What is specifically wrong with the dozens of existing packaging solutions we already have?

specifically? Specifically: they are even WORSE from a security standpoint because you don't have the option of "personally verifying each line". Just because someone's stuck it in a nice easy-to-install package doesn't mean it's not a virus / malware / whatever.

are you suggesting that you read the source code of every app / tool you download before you execute it? If not, hello... pot. kettle?

pdntspa · 3 years ago
Presumably for the same reason that ML models seem to self-download to god knows where instead of giving you a URL to a download link and telling you where to place the file?

Or those awful programs that give you a stub when you try to download the app, only to download the actual payload to, again, god-knows-where.

Or even worse, packaging your app in a docker container!

Seriously people, give a CURL-compatible URL to your actual payload and then get the hell out of the way

n3storm · 3 years ago
You shouldn't use internet either, is dangerous
kandjidev · 3 years ago
Do you also verify each line of the software that the script is installing?
sandGorgon · 3 years ago
this is very very cool! one question - u deploy to individual servers right ? can u target deploy to a kubernetes platform. Like EKS? I couldnt find it in your docs.

Because one of the cool things about Heroku is scale-up. A cool project here is https://sst.dev/. Would love to see EKS/GKE native integration there.

andrasbacsai · 3 years ago
Atm, only individual servers, but Coolify will be able to deploy to any Kubernetes platform soon, natively.
varun_ch · 3 years ago
This looks really cool, I can't wait to try it out!

From what I saw, it looks like it does a lot of stuff behind the scenes relating to domains and SSL.. does it work with the server behind Cloudflare (the dashboard and hosted sites), or is this something I would probably want to be accessing directly?

andrasbacsai · 3 years ago
Personally, I do not use Cloudflare, but Coolify works with it!
pdntspa · 3 years ago
No Rails support? :(
andrasbacsai · 3 years ago
Not “natively”, but as lots of people asking, I will add it soon. Try to fit in this week! :)
satvikpendem · 3 years ago
I am using Coolify (https://coolify.io), an open source self-hosted PaaS which is a relatively newer kid on the block compared to Dokku and CapRover. I tried both of these and I just didn't like how they were, always had some problem or another.

In contrast, Coolify has a great GUI that abstracts away the most common things about PaaS hosting, like connecting to GitHub automatically for git push deploys, SSL certificates, reverse proxying and custom domain support, and best of all, having support for Heroku style buildpacks as well as Dockerfiles. I've been quite happy with it, the creator has a Discord and responds to issues very quickly.

With regards to non-self-hosted options, I did try out Render, Fly.io and Railway but I found that their free servers were too anemic. I was compiling a Rust backend and it simply could not compile on their free servers. On Hetzner, for 5 bucks I could get a 2 AMD vCPU and 2 GB RAM machine that was sufficient to compile my Rust apps in a way that the non-self-hosted ones were not. I have a JS frontend app that works fine though but I wanted to keep everything under the same VPS, plus I can run other types of self-hosted services on it too, like Plausible analytics and a Ghost blog. I'm not sure if those are allowed on non-self-hosted options.

All in all, it costs me 5 bucks a month, and I never have to worry about sudden upcharges for traffic à la AWS as in the very worst, my VPS goes down for a while. I'm now running about 20 different services on this 5 dollar box including databases and applications as well as other services, works just fine.

harg · 3 years ago
How come you compile your app on your deployment platform? I know Heroku does this, but wouldn't it be easier to compile your Rust app on a beefy CI server and then just ship a binary or container image to your deployment infra where you can size the server according to runtime load.

E.g. I use Fly.io for one of my apps. I build a container image as part of CI on Github Actions and then just push that image to Fly as part of a deploy. Fly never deals with a build step (although it can do that as well).

$5 is very cheap for the Hetzner server you describe though.

satvikpendem · 3 years ago
Yeah I could but it's another hassle to figure out where to build and store those container images as I believe neither GitHub container repository nor Docker Hub are free for private images. I'm also not sure whether Coolify has Docker image support, so I've just been building and deploying on my server. It also does zero downtime deployments and queues builds so it doesn't bother me if the builds take longer than strictly necessary, because I won't have downtime anyway.
andrasbacsai · 3 years ago
Thank you for mentioning Coolify (founder here). :)
gbro3n · 3 years ago
Was looking for a service just like this only days ago, and posted to Software Recommendations on Stack Exchange after failing to find anything via web search. If this works as advertised, then you've made something amazing. Haven't tried yet, but have linked on my SE post (to which I recieved no other replies so far!).

https://softwarerecs.stackexchange.com/a/84179/7653

zapt02 · 3 years ago
It's funny how people are different, after using CapRover for years I tried Coolify but it felt like so much functionality was missing that I would not use it over CapRover in its current state. All the things you mentioned (GitHub webhooks, custom domains, SSL certs, reverse proxying) are supported by Cap. It also supports Docker Swarm.
satvikpendem · 3 years ago
When I looked at CapRover recently, the GitHub integration in the docs required manually setting up a GitHub Actions integration and I couldn't exactly figure out what parts I needed to change since the example was for a NodeJS app, and I'm assuming it needed to be added or changed for each repo you want to track git pushes from.

In contrast, with Coolify, you simply login with your GitHub account and it installs a (one-time setup) GitHub app onto your account that automatically sets up the webhooks and I didn't need to do any configuration after that, it just worked for all subsequent apps. That level of ease of use is the experience I had with Heroku and I do not understand why more self-hosted PaaS don't seem to replicate that as well.

Also I like the Coolify GUI over the CapRover one, dark mode plus modern non-Bootstrap design is nice.

andrasbacsai · 3 years ago
Hey, the founder of Coolify here. I'm constantly adding new features to Coolify.

Which ones are you missing (except Docker Swarm)?

conradfr · 3 years ago
I use CapRover and my main criticism is the non-zero downtime deployment.

Also when I update docker some apps don't restart properly, but that may just be my (basic Ubuntu dedicated) server though.

d1sxeyes · 3 years ago
Also loving Coolify after using CapRover. Very much enjoying the simplified interface.
heeton · 3 years ago
I have 4 apps running on fly.io for most of this year and can recommend them.

2 are elixir apps that have been created on fly, 1 was an elixir app I had running on heroku, and 1 was rails app on heroku I recently migrated. I used their heroku migrator and it worked pretty much automatically. I had a few steps to follow to move the DB, but their docs covered it - https://fly.io/docs/rails/getting-started/migrate-from-herok...

I didn't want a self-hosted flavor of Heroku, and I value an opinionated and active community around the platform. I'll mirror another comment here:

> Everyone wants to be the new Heroku, but that should be table stakes. Fly is innovative in the same way Heroku was when it launched.

Joe8Bit · 3 years ago
I can second fly.io, I moved a bunch of personal (but "production") projects from Heroku to it recently (Node, Rust, Rails) and the experience has been great. I can also second their Heroku migrator, worked pretty flawlessly.

Overall, my pricing has been about the same or 5-10% less per month.

It doesn't have the same "Click this button to add this third-party service to your dynos, with billing included" eco-system that Heroku has (had?) but my Heroku usage was pretty vanilla so it wasn't an issue for me.

mijoharas · 3 years ago
That's the one thing I haven't seen anywhere else. I think technically, for "run simple automatically built containers with little dev effort." there are many better solutions than heroku. The marketplace is the only existing differentiator for heroku, and I don't really understand why no-one seems to be trying to recreate it.

I get "marketplaces" are hard and there's a chicken/egg problem, but is anyone working on it? I think fly has the rest of it sorted and is clearly better. Would love to see the additional services as well.

leesalminen · 3 years ago
Another +1 for fly.io from me. I moved a 10 req/s API from Google Cloud Run to fly.io a couple weeks ago. It was a fast and easy transition. I'm now deployed at several edges reducing latency for far-away users, and it's cheaper than Google to boot.
bongobingo1 · 3 years ago
Related to the thread, How practical is it to setup the distributed routing stuff of fly yourself?

Seems you have to buy an anycast-ip from somewhere or become your own ISP/network provider, configure a bunch of bgp routers & routes but that seems impractical for most. Stuff like Akamai, Cloudflare, Route53 have anycast-dns but that seem specifically for dns queries, not responding to a query and routing it somewhere.

Is it a problem that's just too big and difficult that you can't really self-host/spit-and-duct-tape your own system?

tptacek · 3 years ago
You'll need to acquire a /24 (that'll cost somewhere around $15,000), and then sign a deal with an upstream network provider who will accept BGP announcements. The actual networking part of it isn't that hard. To make the /24 worth it, you'll want a bunch of different regions, so you'll be paying for hosting in each.

Check out https://docs.google.com/spreadsheets/d/1abmV_mXWWCsVxHLfouSi...

ignoramous · 3 years ago
> Fly is innovative

Most definitely. For most parts, it is hashicorp-as-a-service but without hashicorp!

tptacek · 3 years ago
There's a bunch of Hashi in there.
keehun · 3 years ago
I also moved my postgres/django backend to fly.io using their automated tool which worked flawlessly, and my frontend (sveltekit) went to vercel.

Both services have been flawless so far at a much better cost/value proposition.

noneeeed · 3 years ago
> Fly is innovative in the same way Heroku was when it launched

I've not had a chance to play with it yet, what are they doing that's innovative.

(Genuine question, not being cynical).

jamie_ca · 3 years ago
The big one as a layman is they've invested in tooling for "edge" compute - similar to CloudFlare distributing your static assets worldwide for faster responses, Fly gives you the tools to do the same for your app servers.

If you've got a worldwide audience you can set up your app in Dallas, Paris, Chennai, and Tokyo, have it auto-scale (and re-balance) instances based on which regions are the most in demand (eg, minimum 2 app servers per region, max 20 app servers, and it'll auto drift them throughout the day as needed). It also puts all your servers on a common VPN for communication, and they've got some tooling in place to help manage things like db replicas, replaying write requests back to the primary db env, etc.

It's not necessarily trivial to port any old app over (if you're doing writes every request for logging etc, that's something you'd want to change up backgrounding the writes) but it really can make a huge impact in responsiveness once you're set up.

dangets · 3 years ago
See the recent flurry of their sqlite replication blog posts:

- https://fly.io/blog/introducing-litefs/

- https://fly.io/blog/all-in-on-sqlite-litestream/

This allows for extremely cheap s3 database backups as well as fast local serving layer.

And many more deep dives on their blog - https://fly.io/blog/

enraged_camel · 3 years ago
I'm on Gigalixir for my Elixir apps, and would switch to Fly.io if they had a "one-button" migration like they have with Heroku.
davidguetta · 3 years ago
Price ?
flakiness · 3 years ago
Relatively cheap with some free tier? https://fly.io/docs/about/pricing/ One good thing is there is no DB-specific premium. It seems their PG is just an "app" on the platform and storage is priced accordingly.
ceejayoz · 3 years ago
I get an email each month forgiving my bill because it’s under $5. Got three small VMs running.
t_sawyer · 3 years ago
I moved to a Hetzner dedicated instance with cloudflare in front. Rails Postgres memcached all run on docker.

Vs

Heroku with cloudflare in front Postgres from heroku and memcached with an add on.

1. Very little. I put the app in docker a long time ago for local development but still used heroku for prod. I dumped my db and imported it into a docker run db on Hetzner. One thing to note: I did not expose the db to the internet. The app connects to the db over a docker network.

2. I do DevOps for a living.

3. It did not add to my learning.

4. $30/month for a large Hetzner dedicated instance and $12 for S3 (backups) vs $25 for the app (I added 2 more for 8 hours a day during busy season) and $25 for a job runner and whatever they were charging for DB. My total cost now is $42/month and on Heroku it was around $120 during busy season and $100 during non busy season.

5. Rails Postgres memcached and delayed job. I had to expand my app tier during busy season by up to 3 instances (winter). With my load testing the Hetzner instance handles much more than the 3 instances ever did in my load testing.

6. I added db dump cron jobs along with restic backups to S3.

_JamesA_ · 3 years ago
I am curious why you chose S3 over B2?
aartav · 3 years ago
The advantage B2 offers is lower pricing

The advantage S3 offers is seamless integration with other AWS services

IMHO, the ease of integration has significant value, it would take a very sizable S3 bill for me to consider not using S3

t_sawyer · 3 years ago
No real reason other than the fact that I already had an AWS account and I was saving quite a bit of money already.

I may look into B2 later. But again, I’m well below my original costs so I may not look for a while.

pas · 3 years ago
or over Cloudflare's R2
holografix · 3 years ago
Controversial opinion: given the vast majority of answers here: cheapskates looking for free tiers wherever they can find them.

Heroku should’ve closed that free tier years ago! Now they added some very very cheap plans as well which is fantastic for them = gets rid of some of the horrendous cost from platform abuse they dealt with every quarter.

Good for you Heroku, you were always under appreciated by the enterprise, with their clingy sysadmins and ops people fighting you like a plague and at the same time you were taken advantage of by an army of penny pinchers!

Heroku

tecleandor · 3 years ago
Companies count on the "cheapskates" and the free plans to work as a "gateway drug" to corporate plans.

I sometimes feel this services "need" an affordable paid plan, so I don't "freeload" on their free plans, and I don't need the expensive big plan.

I.e.:

I monitor a bunch of my hobby sites with StatusCake. They're great and I use the free plan but I'd like to pay a little for very simple monitoring. But the first paid plan is around $200 a year. But I don't need the premium plan, I just need the free plan, but paying, so I feel like I'm contributing to the business.

AWS and the others... you've got a free plan, but once you begin to deploy... ;)

DnsMadeEasy. They don't have a free plan, but I'm using their "Small business 10 domain plan". That was $30 a year for years. Past year was $40. Then they got acquired by DigiCert and since last month they've posted their new prices: ~$200 a year for a 5 domain plan.

It happens in a lot of providers, so I guess is a regular VC tactic to acquire volume, clients, publicity or whatever.

0x457 · 3 years ago
> I monitor a bunch of my hobby sites with StatusCake. They're great and I use the free plan but I'd like to pay a little for very simple monitoring. But the first paid plan is around $200 a year. But I don't need the premium plan, I just need the free plan, but paying, so I feel like I'm contributing to the business.

Odd mentality. You don't want to feel like a freeloader, but don't want to pay the asking price.

nirui · 3 years ago
> Now they added some very very cheap plans as well which is fantastic for them

Can you share a link to their new plans? The pricing listed on their old page (https://www.heroku.com/pricing) still showing $7/mo as their cheapest option and it's already an overkill for my applications. In comparison, the cheapest option on fly.io is $1.94/mo (https://fly.io/docs/about/pricing/).

Note: I know $7 is the maximum cost, but by default their hobby tier app will not sleep, so I guess it still costs $7/mo to run in the end?

Thanks!

jrochkind1 · 3 years ago
I think they aren't in effect yet, but were announced in this blog post from last week: https://blog.heroku.com/new-low-cost-plans

I am not sure if it will meet your expectations though, it doesn't really provide something much cheaper than 7/month or for an always-on production service. As I see it, the "eco" dyno is mainly a way to more easily save money with transient dynos (used for things other than production services) -- it does meet your concern about hobby dynos not sleeping though!

There's also a new cheaper very limited postgres corresponding to the previous free postgres.

japhyr · 3 years ago
If you're running a project with a database, you need to take into account the cost of a Hobby dyno and a database add-on. I believe the cheapest Heroku Postgres plan is $9/mo.

So, if you had a light-traffic, or demo, or staging project that was using the free dyno & postgres offering, you went from $0/mo to $16/mo. That's a big jump, depending on your use case.

I'm all for well-restricted free offerings that let you try a platform; Heroku absolutely needed to change its plan. But if the cheapest web app with a db plan is $16/mo, people are going to look for something closer to $5/mo for their low-load deployments.

If I'm wrong about any of this, I'd love to know.

sleepyhead · 3 years ago
The new "cheap" plan is only two dollars less so I don't think it is an alternative for many. I will most likely move infrequently used apps to another platform.
TrackerFF · 3 years ago
I'm gonna play the devils advocate here

$5-$10 / month is peanuts for most western people. In other places of the world, that could be equivalent to a solid 10%-20% of their monthly paycheck (if the hosting services do not offer prices based on location).

pas · 3 years ago
Interesting claim/model. Can someone cite some real data or at least give an anecdote about this?

Are there IT workers who earn ~100 USD a month? (Okay, thinking about it there must be. Freelancers who are not really experienced, or working in very local very low productivity companies.)

Aren't there already small hosting providers regionally who price accordingly? (We tried to run one here in Hungary around 2009-2010, but there was no point. Free stuff provided by giant companies is a much better value, so the local market is composed of otherwise non-typical clients who actually want local hosting with something extra, all in all not a great business. Prices are very low, competition is fierce, etc.)

krajzeg · 3 years ago
Moved backend services for my videogame from Heroku to Render. It's been super-easy, and the service is more responsive and significantly more stable now on Render, despite me paying much less.

1. Almost no work. The app was Node.js + Postgres, it stayed that way and only needed a few environment variable changes plus a database migration.

2. Almost none, I use PaaS because I concentrate on making games, and want to spend as little time touching infrastructure as possible.

3. Learned mostly that switching PaaS is not a big deal if you stick to common offerings (Postgres instead of a fancy exact-purpose-fit DB).

4. ~$100 to $27/mo

5. A Node.js app that gets rather low traffic but needs to be stable, in the 1000s of req/day. It only handles highscores/ranked mode seeds, so low requirements.

6. Would heartily recommend Render if you want to stay with a Heroku-like PaaS approach and they already support what you need.

forgomonika · 3 years ago
Thanks for the info - I have some similar use cases.

How has the Postgres DB worked out for you with Render? I've been weary of using a relational DB in general since it's a single point of failure and really disruptive if your instance goes down (even with a back-up DB to failover too can be problematic if data doesn't get replicated before a crash).

Also are you just using your Node.js app as a back-end server or are you also serving web pages from it?

krajzeg · 3 years ago
No issues with the Postgres - it's rock-solid so far (100% uptime over 6ish months). Most DBs are going to be a SPOF, unless you're willing to go into a distributed/replicated DB setup (which for my use case, I'm definitely not - I'd rather be down for an hour once in a blue moon).

It's an API consumed by the game client, no user-facing webpages.

charlieegan3 · 3 years ago
I have moved a Rails and Go app to https://northflank.com. I have my Rails app running in their free project (limited to two services and 2 jobs) and my Go app in a paid project. I find the pricing to be very reasonable and considerably cheaper than Heroku.

I was looking for somewhere I could run web services and cron jobs both in the same place.

They have a Heroku importer, however I think you need to ask to have it turned on. I found that it was easier for me to build docker images for my apps and use a 'build service' instead however. YMMV

I found their support to be very responsive and enjoy using their UI. The UI, builds and so on all feel very fast.

Northflank can run databases, however for my databases I've been running them on ElephantSQL for some time (https://www.elephantsql.com) - even when I was on Heroku.

Free for Dev's PaaS list is worth a review: https://free-for.dev/#/?id=paas

almost · 3 years ago
I'm just in the process of moving to Northflank from Heroku for my Django app after trying SO MANY other PaaS services. I really like how they organise things (apps have multiple services, the build stuff makes sense) and their support so far has been amazing. One of the few where I'm confidant they're not going to work as I need without too much work from me and not cause me stress in the future.
dizhn · 3 years ago
Do you see a way to delete your account in your account settings? Their privacy policy says it should be there but I can't find it.

I actually don't see a way to delete a project once created either.

decidertm · 3 years ago
Northflank co-founder here.

You can delete your project navigating to the billing page inside a project. To delete your account you can send a support request and we can process your request (described in the privacy policy). We'd like to automate it more, however we'd like a formal opt-in via email of the account/team owner when deleting backups and stateful workloads right now.

quickthrower2 · 3 years ago
Can anyone say why DB disk space is so expensive compared to just a volume? Tempted to just roll my own with these prices.
decidertm · 3 years ago
Northflank co-founder here.

Addon disk pricing is the same as our volume pricing for services.

The disks are SSDs. We've added a margin on-top of GCP, EC2 and Azure SSD pricing so I wouldn't say they are expensive in comparison to other providers.

It's possible to configure HDD storage which is much cheaper, would be happy to enable that feature flag for you. SSD $0.30 per GB, HDD $0.15 per GB. We'll add HDD pricing to the site and start to enable it by default for everyone.

proton_9 · 3 years ago
thanks for this mate, was looking for a free tier paas to show off some proof of concept projects, northflank seems good.
charlieegan3 · 3 years ago
Certainly the best option I've found for my needs. Good luck :)
movedx · 3 years ago
(I'm assuming the OP is referring to production workloads.)

I think PaaS is awesome. I actually consider moving to one of the managed offerings from time to time... then I look at the pricing.

As a systems engineer specialising in automation, it's hard for me to justify the $75-100/month fee from a PaaS provider (not including network bandwidth), when I currently pay that now for the same thing in AWS including network bandwidth (and I haven't even optimised it with CloudFront yet and static asset deployments to S3.)

I'm not saying PaaS should be a foregone conclusion based purely on my microscopic example and edge case, but if you can configure a CI/CD pipeline (I recommend GitLab CI or GitHub Actions), manage/configure an OS (I recommend Ansible), write Terraform to build out your infrastructure (loads and loads and loads of TF code libraries with example code you can just run with), and a few extra steps, then I'd recommend going IaaS.

You can keep the entire thing KISS, you'll know it inside out, you can grow it (or not) to any scale whilst keeping costs considerably lower than any managed PaaS available, you can hire someone else down the line to look after it when you've reached that level of scale/success/financial freedom, and more.

That being said, I can certainly see a huge value add in doing both: IaaS with a self-managed PaaS stack on top of it. That is, I think, the sweet spot.

Note: yep, maintaining your own infra' is undesirable to a lot of people. If you're one of those people, then stick to managed PaaS and pay the price (it's worth it in your case.)

Note: yep, your time does (technically) have a cost associated with it, but if you're building solutions based on IaaS everyday of your life, you've likely done a lot of the work already.

salmo · 3 years ago
This is odd to me as well. The value of PaaS scales with developers. But Heroku et al target small shops.

If you have 100 dev teams, infra experience is a lot of “overhead.” If you have 5, you just make sure some of the devs know how to strace and tcpdump and can collab in an incident. Frankly, building infrastructure is easy. Maintaining it is the hard part. Preventative maintenance, security, recovering from incidents are all much harder than figuring out enough for it to run.

It was a brilliant idea. Let devs be devs. But the price has always been so high that, at scale, it wasn’t far off the HR cost.

We’ve gone 180 on that with k8s. Now you have to understand a datacenter with different vocabulary to effectively leverage it. You see low adoption at “I have an app” because it’s more complicated than it’s worth. Higher adoption above that. But almost 0 adoption at I need 100+ clusters. And 90% of what I see assumes to exist in a single cluster as if etcd never hangs itself.

We’ve built all of these abstractions, but ultimately you have to understand the thing below them (ie Linux and VMs) when performance sucks or something goes boom.

I don’t know how someone walks in and learns it all at once vs my life of learning with the growing system from Unix on physicals to now.

It’s like my life with Java. Most devs don’t understand where to start troubleshooting performance or the JVM, despite rich tooling (magical APM, JFRs, etc).

vladfr · 3 years ago
Um, k8s was built for hundreds of clusters. I doubt it's 0 adoption for 100+ clusters, we have hundreds across AWS and Azure.

I've read of smaller companies building their own PaaS over K8s, which is in fact how Kubernetes makes sense.