3 ms·
I kind of feel like he's right, but his other recent declaration of "just run your own infrastructure" is kind of antithetical to making stuff simpler? Cloud is
by synicalx 2y ago
I kind of feel like he's right, but his other recent declaration of "just run your own infrastructure" is kind of antithetical to making stuff simpler? Cloud isn't always the best fit, and there's literally nothing wrong with running your own infrastructure if that's the best solution for you, but it's far from simple.
Extremely basic, context-less example; If I want to have my EC2 boot from an image, I build an AMI, then I put that ARN into a config file or similar and off we go. As a once off thing I would also need to configure some other basic stuff like a VPC, security groups, gateways etc but there's not necessarily any ongoing overheads from that. We're looking at a few config files in total without any specialist knowledge being necessary.
If I want my Supermicro/Quanta/Dell to boot from an image in a similar fashion I have to build the image, I have to host the image, I have to make it available on the network, I have to configure DHCP, I have to configure the BMC (and Redfish is probably not implemented quite right, lets be honest here), then I can boot from it.
Once that's done I've also got to maintain; the host, the BMC and it's firmware, credentials for said BMC (securely), other firmware on the system, the entire network (securely) and a bunch of other stuff I probably haven't even considered. All requiring at least one, arguably two additional domains of knowledge on top of what a normal developer would typically have + a significant up front and ongoing time commitment.
- weikju 2y ago> If I want my Supermicro/Quanta/Dell to boot from an image in a similar fashion I have to build the image, I have to host the image, I have to make it available on the network, I have to configure DHCP, I have to configure the BMC (and Redfish is probably not implemented quite right, lets be honest here), then I can boot from it. But do you need to boot a custom image? 37signal's move off of cloud revolved around the idea of shoving everything into containers and deploying the containers using something like a cross between docker-compose and capistrano. The host OS barely matters at this point. A scenario like yours is more the outlier than the norm, at least from my experience.
- synicalx 2y ago> But do you need to boot a custom image? You still need to boot from something custom or otherwise, and that something needs to be updated and maintained. Realistically it's probably going to be slightly more on the custom side once you take into account drivers for special snowflake stuff like fancy NIC's and storage controllers. The OS itself is largely irrelevant, but managing the consistency its state (or lack thereof) and configuration across a fleet is quite important IMO. When you're talking bare metal you have a lot of other security holes you need to deal with as well; BMC's, firmware, drivers etc all need to be kept up to date (and tested).
- 28304283409234 2y agoTrue but this is so very trivial nowadays. Any current Linux will boot any current server hardware without problem. A one file Ansible playbook will set it up to run whatever comes next.
- packetlost 2y agoUnless you have exotic needs or are at the absolute bleeding edge, you won't generally run into driver issues, most stuff has pretty good Linux support if you're running recent enough kernels.
- packetlost 2y agoYou have to do that anyway? Most colocated data centers will provide you with network infrastructure to the wider internet, and managing a few SSH keys and is not particularly time consuming or difficult. OS updates are incredibly easy to do and installing the OS is generally a one-time event. > As a once off thing I would also need to configure some other basic stuff like a VPC, security groups, gateways etc In a simple setup, you don't really need to do that either, except for a basic reverse proxy setup. > If I want my Supermicro/Quanta/Dell to boot from an image in a similar fashion I have to build the image, I have to host the image, Or just download the latest LTS Ubuntu image from their site and dd it to a USB drive. I've done it dozens of times for production systems. If you want to get fancy, you can do PXE boot, but it's IMO not worth it until you get past hundreds of servers. You really don't need to do this. > I have to make it available on the network, I have to configure DHCP So plug in the some cables and... change nothing in the settings? Pretty much every Linux OS image expects DHCP out of the box. You might need to configure a static IP if your DC doesn't provide a DHCP server for you, but realistically this isn't a problem. > I have to configure the BMC (and Redfish is probably not implemented quite right, lets be honest here), then I can boot from You still don't need to do this. Pretty much every BNC lets you directly upload an image to boot from one time. It's not something worth doing unless you're at a pretty massive scale.
- hakunin 2y agoThere's a bit of conflation between easy and simple here. Cloud is easy-ish, but it's not simple due to the proprietary abstractions you aren't meant to access. If things go wrong, you can't investigate past a certain point. Granted, clouds go to great lengths to make their own failures auto-handled for you, but that actually increases complexity in order to remain easy. Running your own machine is definitely simpler because you can debug a problem all the way down to bare metal. Not easier, but simpler. That said, the more I do this stuff, the more I want simple, not easy. Easy is good when you're on the happy path, but as soon as something goes wrong, you wish it was simple instead. In an ideal world, all the guts are exposed, but in the clearest, most organized way possible, where you always have an option to go one level deeper if you want. This would be great to have in both software interfaces and software design (code).
- sebazzz 2y ago> If I want my Supermicro/Quanta/Dell to boot from an image in a similar fashion I have to build the image, I have to host the image, I have to make it available on the network, I have to configure DHCP, I have to configure the BMC (and Redfish is probably not implemented quite right, lets be honest here), then I can boot from it. I think a more fair example is that you somehow provision your VM’s semi-automatically, and you may or may not have Proxmox/Hyper-V/ESX image to populate your physical servers. If you go to maintaining your own infra, you’d still use virtual machines for the actual workloads probably.