Another element of this is I would think its more fun for a systems person to be closer to the hardware. Specifying, ordering and unboxing servers, disks, switches and setting things up sounds satisfying to me.
Another element of this is I would think its more fun for a systems person to be closer to the hardware. Specifying, ordering and unboxing servers, disks, switches and setting things up sounds satisfying to me.
As oppose to complexities of self-host using self purchased hardware?
You're not going to beat the reliability by going inhouse.
If you run a competent organization, this can be a boon. If you have serious deficiencies, it may well be the opposite.
Am I able to beat Amazon on their wide range of services? Absolutely not - if you're looking for FAANG-level scale, you're talking to the wrong person. But for the handful of services I do need (HTTP LB, app servers, relational database and cache), I beat them because I only need to deliver very specific services and can schedule the risky operations (maintenance, hardware upgrades, etc) around my business' needs, something AWS can't do because as a global provider any time they pick for maintenance would inevitably clash with someone's business-critical hours. Turns out most companies also only require a small chunk of what AWS offers, so the rest of the AWS control plane's complexity and its global scale is actually a major liability.
> AWS has over a decade of experience and a ton of full-time dev ops to make complicated cloud usage easy.
And yet that one time a client's RDS instance ran out of disk space, it got stuck in "modifying" for 12+ hours (I assume an AWS operator eventually manually logged in and fixed it) with no way for us to recover, forcing us to restore a backup and reconstruct missing data from logs to bring our service back online in a timely manner.
Would it fail the same way on bare-metal? Yes, but at least I can SSH in and fix it immediately. Not to mention, the only reason it ran out of space is because AWS' pricing forced us to be very conservative with storage, where as the bare-metal machines I rent - for far cheaper than AWS' offerings - come with terabytes of storage as standard so this incident would've never happened to begin with.
> The thing that Soul or other similar tools follow is to automatically turn your database into you backend. You don't need to implement any endpoints, Soul already did it for you.
may have no clue anyway how to be reliable - which is totally fine of course.
OP was talking about observability and diagnosability. These will be infinitely better/easier with access to the hardware & OS.
But on reliability, if you keep your stack simple and boring, you can pretty easily also beat them on reliability. Complexity is the top enemy of reliability (and security).
On AWS, you can have a Postgres instance with multi-region availability. How do you plan to do this with your own hardware?