Problem exposition
I am a system administrator in our company, and I am currently researching a possible solution for more stable workflow in a our company. Our company is a chain of hundreds general goods stores. We have mostly less educated workers in information technology, and they use workstation computers in those stores. Operating systems are installed directly on the host's hardware. So when operating system crashes we have to send out technicians on location to manually install the operating system and additional software. They sometime have to travel a 100 km, 62 miles, to get to the remote location, and often they are busy with other tings, and can't go immediately to the remote location, witch further increases the workstation downtime. So we have workstation downtime, and our technicians waste time traveling an manually reinstalling operating system and additional software just because of a software problem.
Possible solution
I was wondering if it would be practical to install a bare metal hypervisor on a workstation, and then to install a virtual machine in the hypervisor, which would be a workstation for the employees. When operating system crashes we could remotely deploy a new, fully setup virtual machine without any hassle. Only when there is a hardware issue on the workstation we would send technicians on location.
My question
I don't have a lot experience with virtualisation, but I work with VMware, and all of our servers are on VMware ESXi clusters. I have never used virtualisation in this way as I am planning now so I don't know how it would behave, how would it will work, and what issues I can expect, so I am asking you, the community, for opinions and advice. Is this feasible, practical, and will it work as intended, and what FOSS hypervisor should I use? I was thinking XCP-ng with Xen Orchestra web interface would be a good solution.
And how will the workers access these virtual machines?
In order to access the virtual machines, the workers need a computer or thin client of some sort. So what have you accomplished? You've merely introduced another layer of technology and an additional point of failure. You haven't solved the core problem.
Your idea isn't bad, but you need to think about how to implement it so that you're not just adding additional layers, but that you're actually solving the problem.
Standardize your hardware and software, centralize your deployment images and tools, and purchase spare hardware. When a remote computer breaks you can simply deploy your image to a spare computer and ship it or deliver it to the remote location.
Another option would be to deploy thin clients at the remote locations and implement VDI at your core location using your ESXi infrastructure. You can use any number of methods and tools to create and maintain a fleet of VDI machines for the remote locations to use.