HACKER Q&A
📣 nicota

What is your work's programming computer spec/environment?


We're currently having an inside debate as to whether or not to invest in really high end desktop pcs or Xeon based virtualized servers (proxmox, vmware, etc) with shared storage and resources...

Edit: Assuming a ~100 employees environment, developing mostly C++


  👤 kstenerud Accepted Answer ✓
I've moved to purely virtual desktops. It allows me to have a 100% deterministic desktop, to rebuild without losing the underlying OS, and the ability to move my workspace to another machine without the pain.

I've got the builders backed up to github [1] [2], and with this setup it takes about 20 minutes to build a complete work environment, ready to go. Then I connect to it via chrome remote desktop or x2go. I've even run desktops on a $3 a month VPS.

I'll never turn back. This just makes everything so much easier, and I never worry about a machine dying with all my stuff on it.

[1] https://github.com/kstenerud/virtual-builders

[2] https://github.com/kstenerud/work-installer


👤 malevolent
You can use an hyperconvergence solution. On a former job, we used ProxmoxVE, a cluster of 6 nodes with 256GB RAM, 64 cores and with 40TB each.

That's 1PB RAM, 384 cores and 200TB of distributed storage. People connected with Intel NUC, but we boot from PXE and connected to our own desktop via x2go.

Scalling the solution is straight forward. If you need more capacity, just add another node, add it to the proxmox cluster, and rebalance the storage with GlusterFS on top of ZFS. Speaking of that, ZFS performs perfect with NVMePCI disks acting as L2ARC cache.

GlusterFS adds redundancy and scalability to the storage solution, and having an extra node to allocate VMs in case of a node failure, makes the solution robust.

You can integrate as well the development environment with a kubernetes cluster living inside the Proxmox cluster.