
Ask HN: What is your work's programming computer spec/environment? - nicota
We&#x27;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...<p>Edit: Assuming a ~100 employees environment, developing mostly C++
======
kstenerud
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](https://github.com/kstenerud/virtual-builders)

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

~~~
nicota
That seems quite good, but I'm wondering about scalability - it's not a single
desktop, but rather around ~100 employees that need serving...

~~~
kstenerud
Shouldn't be too hard... Just do the same thing as a docker image, then spin
them up and mount a zfs-backed home directory for each.

Mind you, once you do this, you take on the IT job of maintaining it.

------
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.

~~~
nicota
Interesting! May I ask how many employees did it serve? Did you have to
compile large C++ projects and noticed any performance issues? Were the cores
shared among different users? (overbooking the number of cores)

Thanks!

