Virtual Linux Desktop Experience in Azure

I wouldn’t believe that I will be writing this 10 years ago. It’s 2020 though. Microsoft has improved a lot of services for Linux, ranging from developer tools like Visual Studio Code, to the protagonist today: Azure (cloud computing). Azure has steadfastly become a real credible alternative to Amazon EC2 (or AWS in general). Today, I want to share my experience of using a virtual machine on Microsoft Azure cloud. To be more specific, it is a Linux desktop virtual machine (SLES 15).

If you sign up for Azure now, you get $200 (or £150) in credit that you can spend on almost all services. To have a good desktop experience, you should use a size that has GPU. I’ve chosen NV4as_v4 because it is simply the cheapest offering from Azure (4 vCPU, 14GB RAM, 1GB GPU VRAM) and it is from the current hot chip maker, AMD! (AMD Yes!). £0.22 per hour, with £150 credit, it means that we have over 600 hours for free with this VM size.

I won’t repeat the same tutorials contents here again but to give just a few bullet points for things that you should do/consider:

  • Set up SSH and users/groups
  • Install appropriate GPU drivers if necessary
    • Probably more relevant if your VM size comes with nVidia GPU
    • AMDGPU Pro 20.40 doesn’t work well with SLES 15 SP2 with KDE Plasma 5
  • Configure remote desktop server (I recommend VNC over RDP)
    • There is a VNC module for X11, which can improve a bit of performance
    • To improve 3D rendering, check out VirtualGL project
    • Tight encoding is so far the best one, well balanced between bandwidth and CPU usage
    • TigerVNC viewer has better performance than TightVNC on my laptop
    • bVNC is a very good open-source Android VNC client that works very well in Samsung DeX mode with an external keyboard and mouse
  • The accelerated networking feature from Azure doesn’t seem to work with SLES 15 SP2 (it causes deployment failure) at the time of writing
  • SUSE has moved a lot of packages to Package Hub. KDE Plasma 5 is there, for example

After many hours of tinkering, I’ve managed to have a low latency and highly responsive KDE Plasma 5 desktop running on Azure virtual machine in the cloud. The experience is very very close to having a local machine (on some aspects it’s a bit better than my aged laptop).

This prompts me to think if I need to have a physical machine as my next computer? It all boils down to how much time you actually use your computer. If it’s shorter than 700 hours a year, then having a cloud VM instance might be more economical. Besides, you get all the goodies like managed disks, backup & recovery, super-fast network, working anywhere. The biggest benefit is that if you need a more powerful machine for some processing/development task, the cloud can resize the instance to a much much more powerful one without breaking your bank. Once the job is done, you can simply scale it back to a lower-end size for daily tasks.

However, if you use your machine nearly 24×7, then even £0.22 can quickly eat up your budget and one year cost would be able to buy you a more powerful physical machine.