17 ms·
Ditching PaaS: Why I Went Back to Self-Hosting
- zelon88 3y ago> PaaS is always going to offer less for the same price, but what surprised me was how start the difference can be. On Render.com, a 4GB RAM and 2vCPU service costs $85/mo. The same spec costs $14/mo on Scaleway (ARM). I notice a trend that the people who scoff at hardware specs are usually the same ones standing in line for 2 cores and 4gb of RAM for $50+/month. They'll laugh when you suggest utilizing an obsolete $50 computer with a decade old CPU (that's just sitting in a closet), but more than willing to spend $50/month on similar performing hardware from a Cloud vendor.
- anotherhue 3y agoCue the downvotes but I imagine you could sort those people into two buckets: 1. Those who love their Macs a little too much 2. Those who routinely build a PC. i.e. Are you familiar with the hardware market.
- rapind 3y ago3. Those who build their own hackintosh because they love OSX too much.
- jamil7 3y agoI think people know they’re paying a premium on hardware. The point of PaaS isn’t to get the best deal on specs it’s for small teams to iterate quickly and focus on product. If they’re successful they’ll outgrow it and hire people to manage infra.
- zelon88 3y agoI'm not gonna downvote you. But to your point about the hardware market, a mid range server CPU of today will be about as fast as an entry model CPU next year. Actual performance wise, your old server can probably keep up with a newer but slightly lower end server just fine. Obsolete !== useless. I'm the kind of person who would rather take the 3y server and recomission it as a lower priority service than just do a 1:1 replacement. "Old" computers aren't as useless as they used to be. Computing power has advanced to the point where computation is arbitrary. For all intents, in most sectors, you can scale your compute capacity as high as your budget allows and you won't hit any performance barriers ever. There will always be more compute. It is a commodity now. My stance is this; sure the new server is faster than the old one, but you know what's even faster? Dividing the existing workload between both of them.
- moondev 3y ago> a mid range server CPU of today will be about as fast as an entry model CPU next year What about the core count and memory capacity
- anotherhue 3y agohttps://www.amazon.com/Dell-PowerEdge-R630-Rackmount-Warranty/dp/B07PR12CTL/ https://www.amazon.com/Dell-PowerEdge-R630-Rackmount-Warrant...
- foofie 3y ago> sure the new server is faster than the old one, but you know what's even faster? Dividing the existing workload between both of them. How do you factor reliability into your analysis? I mean, the reason companies ditch their 3yo server is that their service life is nearing it's end, and odds are they will fail in the upcoming year or so. Meanwhile, increased compute capacity means companies can use a single brand new server to replace multiple old ones, not to mention cheaper operational costs.
- system2 3y agoIt is not the hardware actually. It is network reliability makes cloud better.
- GiorgioG 3y agoColocation exists. It's a solved problem. It's just not in-vogue right now.
- reactordev 3y agoand for $400/mo you can put your $50 old machine in someone else's closest.
- GiorgioG 3y agoAnd with my $50 old machine I can host $5,000/month worth of "cloud" services.
- tiffanyh 3y agoHetzner & OVH gets you the best of both worlds. Unbelievable (new) specs, hosted and at prices points tough to beat doing it yourself. E.g. Hetzner AMD RYZEN™ 9 7950X3D (current gen Zen 4) 16 physical cores (4.2 GHz) 128GB DDR5 ECC ram 4TB NVMe completely hosted For only ~$100/mo https://www.hetzner.com/news/new-amd-ryzen-7950-server https://www.hetzner.com/news/new-amd-ryzen-7950-server
- jmaker 3y agoBoth are quite happy to terminate users’ accounts, but on paper it’s really compelling indeed.
- tiffanyh 3y agoHave you seem them terminate unreasonable situations? They normally are trying to keep their IPs and Network clean of scammers abusing their resources, which inevitably hurt all customers.
- 1vuio0pswjnm7 3y agoBut isn't it more than just the vendor's hardware that one is paying for. Namely, the vendor's internet connection. Apologies if I am missing something obvious.
- _w1tm 3y agoAnd for network redundancy / UPS / datacenter security / etc. Comparing a PaaS to some old PC running in a closet is completely missing the point. If the thought of your service going down for a few hours because some random unplugged the power cable or your ADSL router crashed doesn’t make the CFO lose sleep then some raspberry pi is surely good enough. Just make sure you run it inside a safe if you store personal information.
- throwawaaarrgh 3y agoYou saved $35 a month but spent 3x as much time maintaining and tweaking your self hosting. I guess we know how much your time is worth!
- starttoaster 3y agoThey probably gained a lot of knowledge along the way, and if that knowledge happens to come in handy in your career, can you as easily put a price tag on that? I run services at home and spin up infra on AWS, but I'd say I learn the most from what I have at home. That said, I barely need to maintain most of my home infrastructure. I have CI/CD scripts do the bulk of maintainership for me these days.
- jmaker 3y agoThat’s knowledge forgotten in a week, unless you’re an ops side professional. You kinda set it up once and hope to forget to focus on your application layer.
- PH95VuimJjqBqy 3y agothat hasn't been my experience.
- starttoaster 3y agoIt's much, much easier to recall knowledge that you've gained once, than knowledge that you gained 0 times. It has also not been my experience that I "hope to forget" that knowledge either. Perhaps you go about learning a different way than I do, though. After all, can you really write a good application without knowledge of how it will be deployed, and the challenges users face deploying things on specific platforms (eg. Windows, baremetal linux, kubernetes, docker, etc)? I would argue that you'd often write naive applications that gimp itself in unexpected ways depending on how the user intends to use it, without that knowledge. Depending on what types of applications you tend to write, this might be less of a valuable point to you. For example a static site web dev probably wouldn't be as interested in the infrastructure, they just need a server that can bind on ports 80/443. But I see a lot of incredibly naive applications written by potentially naive software developers out there.
- ozim 3y agoIaaS for me also works better but I would not call it self hosting. VPS is also a cloud. I get triggered by it because I get people in my company coming to me we should switch to cloud - but we are in cloud only that it is IaaS.
- davedx 3y agoI've recently gone the other way. I was self-hosting everything on a DigitalOcean VPS, but keeping the OS maintained, and indeed the headaches of configuring Nginx, letsencrypt, postgres and so on became more annoying not less each time I wanted to make a new app, because every app was a bit different. I'm now running my primary project on Fly.io and I'm pretty happy with it overall. "No matter how small is the service, no matter how rarely you need it, you’d need to pay the full price." On Fly.io I'm running an app server, a db server, and another app server with a 1GB volume for a Discord bot. Everything fits in the free plan. The thing about PaaS is you really have to do your research. It's not like VPS providers where all you really need to look at is how much compute and storage you get for a monthly price. PaaS have a lot more subtleties and yes, it happens that the startups behind them sometimes blow up or get bought out by huge public enterprise companies. VPS providers tend to be lower risk. The tradeoff is worth it for me, but it really depends on your skillset, your priorities and so on. I can maintain a VPS, but I have very limited time, so I want to focus every spare hour I have on developing my product.
- tronikel 3y agoHave you tried dokku?
- wharvle 3y agoI've been amazed at the resilience and convenience of a handful of shell scripts calling "docker" commands on Debian for my server at home. - Figured I'd need to screw with Systemd at some point. Nope, whatever Docker's doing restarts my services on a system restart, and auto-restarts if they break. I haven't had to lift a finger for any of that. My services are always just there, unless something really goes horribly wrong. - Which directories I need to backup is documented in the shell scripts themselves. Very clear and easy. - Moving those directories and my shell scripts to another server, potentially with a different distro, would be trivial. Rsync two directories (I've put all the directories I mount in the docker images, under a single directory for convenience), shell in, run the scripts. Writing a meta-script to run all of them would be easy. On a VPS I could have everything that mattered on a network drive, and that'd make it even simpler. Mount network drive, run script(s). - Version updates are easy. I can switch between "use the latest" and "use this specific version until I say otherwise" at will. Rollbacks are trivial. If the services were public-facing I could automate a lot of this with maybe an hour of effort. - Port mapping's covered by Docker. If these were public-facing it'd be pretty easy to add one extra container for SSL certs and termination (probably Caddy, because I'm lazy, though historically my answer for this at paying gigs has been haproxy). Like, truly, the degree to which I can interact with and configure this system entirely by using portable-everywhere docker commands & config is very high. I've been running servers (sometimes private, sometimes public) at home since like 2000, and this is easily my favorite approach I've used so far. I've used stuff like Dokku at work. I dunno—it's another thing that can and does break. If you're just self-hosting a few services and aren't trying to coordinate the work of several developers, IMO it's simpler and not-slower to just use Docker directly.
- _heimdall 3y agoWhat's the common definition of self-hosting these days? I've always considered self-hosting to mean I'm managing hardware, but its clear the author here sees it more as a self-managed OS and infrastructure. It actually feels very similar to the whole MPA vs SPA debate in web development. Maybe I'm just getting old, but self-hosting and SPA have specific meanings I learned years ago that seem to be getting redefined now rather than coming up with new names.
- PH95VuimJjqBqy 3y agothat would imply renting a VPS isn't self-hosting, which I think is clearly incorrect. If you wanted to communicate that you're dealing with hardware I would imagine you would say co-locating or talk about your datacenter.
- _heimdall 3y agoOn-prem is a really specific term for onsite hardware. Though I don't think its as clearly accepted that renting a VPS is self-hosting. If that is the meaning now that is a more modern meaning, in my experience VPS was not part of a self-hosting concept before cloud providers were so common. At that time the options were your own hardware or a rented VPS, they couldn't both be self-hosting. Today that's less clear, hence my question of what is the common meaning today.
- PH95VuimJjqBqy 3y agoself-hosting as a term existed before VPS's did and it generally meant putting hardware in your house and running it off of that. https://en.wikipedia.org/wiki/Self-hosting_(web_services) https://en.wikipedia.org/wiki/Self-hosting_(web_services) > The practice of self-hosting web services became more feasible with the development of cloud computing and virtualization technologies, which enabled users to run their own servers on remote hardware or virtual machines. If you buy their definition, it seems inline with the idea that self hosting is more about the software than the hardware these days.
- atentaten 3y agoHow about auto scaling? Is there something that makes auto scaling when self-hosting easier?
- the_gastropod 3y agoThis presupposes that you need autoscaling. I suspect the vast majority of applications have pretty predictable resource requirements / growth characteristics. Over-provisioning your hardware a bit to handle anticipated spikes is probably fine for 80%+ of use-cases.
- layer8 3y agoOnly a very small percentage of businesses need autoscaling.
- rdoherty 3y agoGood on the author, but using a Virtual Private Server skirts very close to not self-hosting. When I read 'self-hosting', I imagined buying/building a physical server and either putting it into a datacenter or running it in your home. Lately I've been thinking of creating a bare-bones HTML website of my own and maybe I'll run it on a Raspberry Pi at home. I think that would qualify as 'self-hosting'.
- arter4 3y agoBetween bots and the Reddit/HN hug of death, if you ever do this don't ever advertise your website (to avoid getting DoS'd) and put some firewall in front.
- thinkingkong 3y agoMoving from a PaaS to a VPS is 95% the same amount of effort and energy as spinning you own rust under your desk. Semantics matter but holding a definition to “need to suffer a power supply failure to count” isnt really necessary.
- layer8 3y agoIt makes little difference who owns the hardware in the data center. The important thing is who selects, controls, and manages the software that runs on it. Therefore that’s the main dividing line.
- BrandoElFollito 3y agoI wonder what people host that require such specs. I host on a skylake about 7 years old I think, with 12 GB RAM. About 30 docker images running Home Assistant, Bitwarden, the *arr suite, jellyfin, minecraft ... Nothing fancy and I have heaps of free CPU and RAM. I understand that one can easily load CPUs with compute processing, or RAM with video transformation but for a generic self-hoster of typical services I am surprised by the typical setup people have (which is great for them, I am just curious)
- wrigglingworm 3y agoI'm surprised no one has brought up the power cost point yet. I have a couple services I'd like to be up 24/7 and paying for hosting on them is actually cheaper than I'd be able to do from home just due to the cost of electricity where I live. Plus I've had quite a few ISP outages, but my provider, as far as I can tell, has been up 24/7/365 in the few years I've been paying them.
- zzyzxd 3y ago> Self-hosting has Become Easier > Self-hosting has become more reliable Docker and Kubernetes really are the two best things happened to me in my selfhosting journey. They made billion dollar enterprise grade tech approachable in my homelab. - I powered on a brand new mini PC, 10 minutes later it showed up as a node in my cluster and started running some containers - Two servers died but I didn't notice until a month later, because everything just kept working. - Some database file got corrupted but the cluster automatically fixed it from a replica on another node. - I almost completely forget how to manage certs with letsencrypt, because the system will never miss the renewal window unless the very last server in my lab goes down.
- paxys 3y agoAdd VPN to that list. It used to be a monumental pain to set up a home network, but now with something like Wireguard/Tailscale/ZeroTier/Nebula you can do it in a few clicks.
- zilti 3y agoKubernetes is complete, utter overkill for almost everything.
- sgarland 3y agoYes, but once you know how to use it, everything else is an annoying toy. Also, of course, it being the standard means there is no end of tooling designed to support it. I can’t count the number of times I’ve been frustrated at my current job because I have to wade through layers of ECS bullshit to do something. All that said, if you don’t need containers, turns out you can get a lot done with two servers behind HAProxy + keepalived, running stuff with systemd.
- pcthrowaway 3y agoI wonder what people's thoughts on KubeVela are (https://www.cncf.io/projects/kubevela/ https://www.cncf.io/projects/kubevela/) I've been pretty sour on Kubernetes, but this looks like it could bring some of the niceties of PaaS to k8s. I haven't looked into the deployment process yet though, perhaps that's where all the pain lies
- nemothekid 3y agoI would call this divide more-so serverless vs servers than self hosting. I"ve recently gone the opposite direction. I used to think serverless was too exepensive and unpredictable but after almost a decade of Go and 2 years of Rust I'm really coming the opinion that the resources required to run services are completely warped. 2 cores and 4GB ram is the recommended specs to run the 2008 game Crysis. It's hard to imagine that moving JSON around (which is probably 95% of services) is more demanding than Crysis. As I've begun really paying attention to the services being deployed you can actually get a lot of mileage out of the free tier especially now that they support running native binaries.