I had never been a fan of devops/server-admin work. The sheer number of headaches involved in setting up the services, configuring them, automating them, and ensuring their reliability were just annoying and time-consuming.
PaaS offerings like Heroku, AWS—and later—Railway, and Render, were appeal...
In recent times, my opinion about self-hosting has changed. Instead of paying for multiple services, I am now renting a decently sized VPS on Scaleway, and hosting all my projects on them. It’s been three months, and it has been working out great for me.
Instead of paying for multiple services, I am now renting a decently sized VPS on Scaleway, and hosting all my projects on them.
That's not self hosting. That's moving your managed services down the stack from PaaS to IsaS.
It's an unserious take on the impacts as well. No discussion of availability? Backups? Server hardening and general security? Access and authentication models? Sysadmin on aVPS is more than "running a bunch of commands now and then", and the author ignores that entire workload.
I will applaud anything embracing self hosting, but I feel like author is forgetting the experience gained during those years. Things have been simple for way longer than docker existed.
I think that what changed is that more people gained more experience, and of those people, a lot like to share their knowledge.
So the wealth of information and workaround is much bigger now. It makes it easier to get into devops, even though it hasn't dramatically changed over the years.
Great writeup! I've been doing a project with a 2gb 1vcpu vps as my host and one compose file. It is so much simpler than past project that I used aws for.
PaaS takes away your flexibility: [...] sometimes, you also want to use the compute to run cron jobs, run background jobs, or host a small service. With PaaS, you don’t have the flexibility to do so. [...]
I don't really agree with that. I'm using AWS for that, and for my "small cron jobs" I simply create a lambda for them. Then you can create a CRON rule in Event Bridge and schedule the lambda to start whenever you need