This article provides an overview of Teams architecture, potential pain points, and architecture recommendations with a focus on deployment in a non-persistent Citrix VDI environment. Microsoft Teams interest and usage has continued to increase as it has been added to the default Office 365 suite and increased in functionality. Reported numbers by both companies has Teams overtaking Slack around July 2019.
At first glance admins could believe Teams is a typical collaboration tool such as Citrix Podio or a meetings app such as GoToMeeting. It is possible for Teams to replace the aforementioned tools, however, getting there is not simple and requires significant pre-planning and implementation of additional Microsoft components. Managing Teams within a Citrix environment also adds additional issues and considerations.
Citrix is the only VDI/virtualization partner certified for Microsoft Teams.
Disclaimer: MS Teams is one of the fastest changing Office applications and currently is on a bi-weekly update schedule. This can make any recommendations obsolete without notice from Microsoft. At the time of this article creation Teams is on version 1.3.00.362.
MS Teams Development Design
Teams is fundamentally a pretty wrapper for SharePoint where every “MS Team” creates a SharePoint team site collection and group. Teams allows for users within a team channel to share documents, collaborate on Office 365 content, video / audio call users, chat, and set up meetings. These features all sound great to an admin wanting to enable his end-users. However, execution requires more then simply deploying the Teams app onto a desktop.
I like to illustrate the complexity of Teams by describing it as an Electron framework-based wrapper for SharePoint, which uses OneDrive to store data, and Squirrel to auto-update. What this means to an admin / architect is:
- Electron framework: The app is just a wrapper for the Teams website which means it is not as optimized for a desktop and can be a huge CPU and memory hog. This coupled with the fact it prefers to load at logon, means your logons can become slow just by installing the Teams application.
- Wrapper for SharePoint: every MS Team automatically creates a SharePoint team site where documents are stored. A lot of work and planning must go into who can create and manage teams or the sprawl can get out of hand quickly as well as introduce potential for data security loss. The larger number of teams a user is in correlates to a larger memory and storage footprint for the application.
- OneDrive for Storage: Teams can be stored in a user’s profile to decouple it from the OS and ensure faster loading at logon. However, as Teams grows in usage, the storage footprint can get very large and this gets multiplied for each user resulting in a need for a lot of storage and the need for fast drives to keep up with the reads & writes.
- Squirrel Auto-update: by default, Teams is installed into user appdata and will automatically update while users are using the application. This results in an inability to establish change controls for version updates.
Should I Install on System Drive or in Appdata?
It is important to understand that Teams typically updates on a bi-weekly basis with Microsoft reserving the right to push “features” at any time. This is one of the reasons installing in appdata is nice because user’s profiles follow them, and you do not have to update your image every two weeks to keep it up to date.
However, if a bad patch or a “feature” comes out admins can be caught unaware until an end-user finds an issue and reports it. For example, Citrix optimization was only available when deploying on the system drive. However, with a recent patch this was no longer true, and Teams automatically switched to Citrix optimization mode which has limited features. These types of issues result in a significant number of help desk calls.
- System drive pros:
- It is possible for an individual’s Appdata install to become corrupted. This then requires a help desk call where their Teams install needs to be recreated. Installing on the system drive prevents this scenario.
- System drive install prevents auto-updating which allows proper QA of new Teams releases if Microsoft does not enforce that release.
- At one time system drive was the only way to get Citrix optimizations for teams, however this is no longer the case.
- System drive cons:
- Teams updates frequently and bug fixes must be implemented often to keep up to date in the golden image.
- The largest con is the ability to prevent auto-launch of teams is not possible for either an admin or user in this mode. Teams will always auto-launch and cannot be turned off by the user.
- Appdata pros:
- Teams can be prevented from auto-launching by an admin by default and a user can toggle auto-launch on or off. Teams consumes all resources to launch which effectively means auto-launching is increasing your user logon times because the session will be unusable until teams finishes launching.
- Teams stays up to date by automatically updating.
- Appdata cons:
- Teams disk storage requirements multiplies by every user instead of the number of machines.
- Teams auto-updater can corrupt or introduce “features” without the ability to test or QA before going live.
Should I Leave on Citrix Optimization?
Citrix and Microsoft worked together to optimize Teams for Citrix3. This enables H.264 redirection optimization for audio and video in the Teams app. There is a significant con to enabling Citrix optimization which is the default setting for Teams.
- Optimize Pros:
- Optimizing allows Citrix to efficiently manage and redirect audio and video. This will improve performance while reducing server resource utilization.
- Optimize Cons:
- Optimization mode currently does not support sharing a desktop via the chat function. You can “call” a user and then share the desktop. However, this can become an annoyance to users on Teams as a screen sharing solution as all sharing requests will be sent to the user’s phone not their computer app when the user has the app installed on their phone.
Who Should be Able to Create a Team?
We are not going to cover this topic in-depth in this article, but it is worth mentioning that this question is likely one of the most important when designing Teams as a solution. The proper creation and moderation of Teams is critical to maintaining data security and preventing team / channel sprawl and subsequently limiting the resource impact on your environment.
The feature set and integration into the Office suite makes MS Teams a compelling app to deploy into your VDI environment. It can be tempting to include the Teams app with the rest of the Office 365 installation to gauge end-user interest. However, Microsoft’s decision to develop Teams using Electron and other open-source components requires VDI architects to consider unique design decisions compared to the rest of the Office 365 suite. The fast pace and complexity to implement Teams requires careful planning, design and proper hardware prior to implementation to prevent data loss and performance degradation.
3 HDX optimization for Microsoft Teams now generally available https://www.citrix.com/blogs/2019/12/12/hdx-optimization-for-microsoft-teams-now-generally-available/