The tools I wrote about in previous posts on remote team collaboration serve specific tasks or help with particular parts of workflows.
They all run on existing hardware and infrastructure, though. If, however, you want to get rid of a dependency on specific hardware entirely, remote desktop solutions are a viable approach. Remote desktop products allow you to run a virtual desktop and workspace on a remote server. Of course you still need a local machine to connect to that workspace but that local machine in that case would be little more than a dumb client (not unlike the terminals of the mainframe age), whose sole purpose is to connect to a remote machine.
This allows you to use your desktop and its specific configuration and the software installed on it from multiple machines while only having to maintain and update one (virtual) environment. In larger organisations this also allows for centralised, automated maintenance without interfering with daily usage: If you need to update desktop software or the operating system with remote desktop solutions you can simply provision new virtual machines, which will be used the next time a user logs in.
Aside from solutions such as Microsoft Remote Desktop, where you have to run and maintain the infrastructure yourself, there are now quite a few cloud-native solutions as well:
Most of these differ in terms of pricing but essentially all of them offer usage-based pricing. Some of these products used to be targeted at the gaming market but they make perfect sense for work-related applications, too.
One particularly interesting use case presents itself if you have a diverse set of tasks, where each such task lends itself to a different hardware configuration. You might for example want to run ordinary office software on a low-end machine with little RAM and a rather slow CPU. If, for instance, you have to occasionally work on resource-intensive tasks such as handling complex CAD models as well you could run a virtual remote desktop machine with massive amounts of RAM and a fast CPU just for the duration of that task.