Using Zoom with SBC\VDI

Working from home (WFH) requires having a lot of video calls. I noticed a great demand from users that need to attend or organize a video call. The downside is that there are multiple vendors and that a company can’t force everybody only to use one solution. Users receive invitations from multiple organizations, and they all need their own client applications. When using an SBC\VDI based remote workplace, you need to manage all the clients and make sure the video call works great. Luckily, the vendors are working together and making sure that you could have a great experience even when working in a remote session. One of those vendors is Zoom, they have created a client that is created for a VDI deployment. Zoom currently supports Citrix, VMware, and WVD.

How it works

When making a video call the video rendering requires CPU and Memory, when using a multi-session OS this could cause other users to have a degraded performance. The users that are making the video call could notice latency during the call because every moving image has to be rendered and send to the client. To get a better experience Zoom created software that could offload the rendering to the local clients. How is that offloading working?

In most cases, the media plugin will offload the video encoding and decoding and communicates directly to the Zoom cloud, bypassing the VDI infrastructure. All other information is sent over the VDI channel. There are three options:

The three options
The three options
  1. Everything is within the VDI and all the resources are used within the VDI, communication is from the VDi to the Zoom Cloud
    This won’t work with Citrix as described here: https://support.citrix.com/article/CTX270931
  2. Only the Video encoding and decoding are rendered on the client and all communication is going from the Zoom media plugin through the VDI channel to the VDI and from the VDI to the Zoom Cloud.
  3. Most of the communication is going from the Zoom Media Plugin to the Zoom cloud and only the Authentication and window location is going from the Zoom Media Plugin through the VDI channel to the VDI and then connects to the Zoom Cloud.

Installing

Time needed: 15 minutes.

Installing the Zoom VDI Installer in your base image and your client.

  1. Download the latest Zoom VDI Installer client and the corresponding Zoom Media Plugin

    https://support.zoom.us/hc/en-us/articles/360041602711
    You need to download Zoom Media Plugin based on the environment you have: Citrix, VMware, or WVD.

  2. Install the Zoom VDI Installer within your VDI

    This is basically a Next,Next,Finish installation.

  3. Install the Zoom Media Plugin on the Client

    To make sure you don’t receive an error when using Zoom, you need to run the installer as an Administrator.
    Close all Citrix, VMware, or WVD clients before starting the installation.
    Then follow the wizard.

Verifying Zoom installation

After installing the Zoom VDI and Zoom Media Plugin, the testing starts. I made a Zoom call with myself. As I’m not so photogenic, I will spare you these images. To give you a good view of how it’s working. First, I made a Zoom call (without video in my session as this isn’t working for Citrix https://support.citrix.com/article/CTX270931), you can see there is 9.7% CPU usage. This isn’t that much, but when there are more people on a VM and you share the CPU, this could be affecting the user experience of other users.

Zoom call without the plugin enabled

Below you can see that that the Zoom client shows it’s not connected to any plugin and is working as a regular Zoom client.

Zoom session without a working plugin
Zoom without VDI plugin connected

After the first test, I installed the Zoom Media Plugin (for Citrix) and made another Zoom call. This time I was able to use my local Webcam (Laptop integrated) and as you could see below the CPU usage is 0% within the Citrix Session (First Image) and uses 8.4% CPU on the local workstation (Second image).

Zoom Session CPU usage within the Citrix Session
Zoom Session CPU usage within the Citrix Session
Zoom Session CPU usage local workstation
Zoom Session CPU usage local workstation

When looking at the statistics within the Zoom client you now see that the Zoom VDI plugin is Connected. The rendering is now completely offloaded to the Clients workstation and this saves you CPU and Memory on the VM (SBCB\VDI) and gives the user a good user experience during the call.

Zoom Media Plugin Connected
Zoom Media Plugin Connected

Features

When using the Zoom VDI client and the Zoom Media Plugin, you don’t have all the features that are available when using the Full Desktop version of Zoom. As this changes with every new release, I advise you to look at the comparison matrix that Zoom created and hopefully kees updated: https://support.zoom.us/hc/en-us/articles/360031441671-VDI-client-features-comparison

Tips and Tricks

I will update the Tips and Tricks section if new information is available or I needed to solve an issue that could help you as reader.

Registry Settings

Zoom has a list of Registry Settings that can help you troubleshoot or control the client. Here is a list of all available registry keys: https://support.zoom.us/hc/en-us/articles/360032343371

Error Zoom VDI

As mentioned in step 3, if you don’t install the Zoom Plugin on the local device, you could see an error. I only tested with the Citrix Media Plugin and can’t verify if the same happens with VMware or WVD. The error I received is:

Zoom.exe is using NTDLL.dll from an unknown publisher. Are you sure you want to run this software?

Error when Zoom Media Plugin is wrongly installed.
Error when Zoom Media Plugin is wrongly installed.

You could click on Yes as often as you like but that’s not going to work.

Looking back at 2020 and Work From Home

The end of 2020 is nearing so it’s the time to look back at this year, I can say it was a hectic year for me as a Consultant.

From PoC to production

We just started a Proof of Concept (PoC) with a new customer in February to show that working with a 3D modeling program on a VDI was an option for their clients. Then everybody started talking about some kind of virus in China and started reporting lockdowns. Just days before the Dutch first lockdown (23rd of March), the customer started asking to change the PoC to production and expanding from 10 people to 150 remote workers. We managed to achieve that. You can read more about this in my previous article: From PoC to Production during Covid-19

During the customer’s request to expand their PoC, all other customers requested more Work From Home (WFH) possibilities because of Covid-19. They requested the implementation of Microsoft Teams ASAP, my colleagues and I had to achieve this during the lockdown. Simply enabling Microsoft Teams or creating all the accounts in Microsoft 365 isn’t the hardest part. That came when they all wanted it on their sometimes outdated Citrix environments. 

Microsoft Teams

As mentioned before, many customers asked for Microsoft Teams. Luckily Citrix made its first Teams optimized for Virtual Apps and Desktops (VAD) available in June 2019 (VAD 1906). It’s a pity that most of the projects started before the availability of VAD 1906 and that they were all working with VAD 7.15 (LTSR). So before we could eventually start implementing Microsoft Teams optimized for Citrix VAD we had to upgrade all of these customers to VAD 1906 or newer. We prefer the use of the LTSR version, so we upgraded everyone to VAD 1912 LTSR. They also had to upgrade all of their clients with the latest Citrix Workspace App. 

The lessons we learned here is that we as an engineer didn’t like this kind of implementations. my colleagues and I all needed to find the best settings. Due to the stress and lack of time we all made different choices, we all reinvented the wheel. This leads to different experiences with Teams at some of our customers.

After the upgrade of the Citrix VAD and making all the necessary changes to get Teams optimized, we ran into some issues. The Clients!!! We faced a couple of issues:

  1. They didn’t have any Device Management solution in-place to upgrade all the Citrix Receivers to the latest workspace app;
  2. They have older (Thin) Clients that aren’t compatible with the latest Workspace App;

The lack of a compatible Workspace App resulted in the excessive CPU and Memory usage, which resulted in other users complaining about a slow User Experience. 

By now we have a default set of steps and requirements to get Teams working correctly, but it keeps hard to manage the CPU and Memory usage. 

Working from home as a consultant

Not only our customers needed to work from home, but us as a consultant also. I’m used to working at the customer’s location because that makes me part of the project. When on-premises you hear a lot of extra information that could help your project make it a success. Working from home removes all those benefits and makes it sometimes hard to understand the issue a customer is facing. When they try to explain an issue we as a consultant don’t understand it and vice versa.

Besides not understanding each other, the most thing I missed (and I think everybody is) is the personal contact with people. Microsoft Teams is making WFH possible and can give you some kind of personal contact, it’s not the same.

Looking at 2021

Now December is ending but the infection numbers are still going up, so we keep working from home. That means we keep helping our customers implementing and upgrading their environments to meet their WFH requirements. I just started a new project, where I can implement all the lessons learned.

For 2021 I set myself some goals, I’m not going to tell them because then I need to tell you next December I’ve not made my goals. 😊 But some nice projects coming up, personally and business-wise. We get vaccinated, meet others again, have a beer in the pub, enjoy a festival, and finally have a normal conference.

I hope you all are well and despite the current situation enjoy Christmas and have a happy new year.

See you in 2021.

From PoC to production during Covid-19

In the beginning of this year I was asked to look at a Citrix Virtual Apps and Desktops (VAD) environment which wasn’t performing great. Customer’s users were constantly complaining about performance and stability. The environment was set up in a mix of outdated software versions, which weren’t always compatible with each other.

I was asked to look into this matter and create a working environment with the current Windows 10 version on their existing hardware. We also offered a temporary server with the latest Nvidia T4 graphics card, to let them experience the enhanced performance with this new kind of graphics card. A Nvidia T4 card is a graphics card that offers GPU’s, so the VDI’s (or RDS) can perform more powerful tasks than integrated graphics adaptors do.

The Proof of Concept (PoC)

I started of with a simple single non High Available (HA) “design”, where we combined as much components to one server as possible. This was done from both a cost and management perspective.

I prefer to work with software I have experience with, so I installed Citrix VAD 7.15 LTSR. Yes, this isn’t the best version to show every new 3D HDX improvement, but it is a very stable version and we were sure we could provide the customer a much better experience than they were having before. We installed all the required applications within their new golden image, without optimizing them or check for Win10 compatibility.

After a week the PoC users were able to test their brand new workspace and informed us constantly how they experienced the new PoC desktop. The results were great. Everyone was enthusiastic and could do their work from anywhere. You can imagine what the experience could be after best-practice deployment and some finetuning.

Covid-19

And then came Covid-19 ☹
Just a few weeks after the PoC the news came that Covid-19 didn’t stay in China and was spreading around the world. Many countries announced (complete) lockdowns and everybody was obliged to stay home. Traditional office workers were in need of a remote workplace. Our customer asked if it was possible to move and upscale the PoC setup (sized for 10 users max) to a production environment suitable for approximately 100 users. We were able to use existing hardware and expanded the PoC to 30 users at first. By doing so we bought some time for our customer to order new hardware for the rest of the users.

Because of the urgency we offered two separate hardware options. Based on the delivery times they decided to order the hardware that could be delivered as soon as possible. But by then, they weren’t the only company that needed extra hardware rapidly. So in the meantime we provided them with rental hardware instead and we were able to give them the extra resources they needed.

The hardware was delivered in batches because of the poor availability and so in just a couple of days we expanded the PoC with an extra 30 users on their own hardware in a production environment with 100 users, at that time on rental hardware.

Production

During the current Covid-19 pandemic, many customers requested changes and extra resources within their current deployments. Our PoC is still in production, the upside of this is that we now know a lot of design changes which we could do better when creating a complete new design and implementation for this customer. Currently we are planning the design and implementation for a new solid and HA Citrix VAD environment.