Welcome to a new blog series on Microsoft Teams! In this series we’ll be covering all core components as it relates to Microsoft Teams. Specifically, in this first article we’ll discuss the architecture of Teams as this will lay the foundation for the next 4 articles in this series. In the next few articles we’ll dig into these core components by covering Azure AD, Office 365 groups, SharePoint, OneDrive For Business, and Exchange. So without further ado, let’s take a look at the Teams architecture.
Teams Logical Architecture
Each user object has different modalities that they can leverage when using Microsoft Teams. The architecture is broken down into several different areas:
- Chat
- Teams
- Voice
Chat
Chat is provided through a micro service in Azure. The chat service provides the chat modality for anyone utilizing Teams. This will include both private one-to-one (1:1) and multi-party (one-to-many 1:N) private chats. To break down chat even further we have the ability to add tabs and apps to the one-to-one or multi-party private chats. If any file sharing takes place within this chat then this will tap into OneDrive for Business. In addition, you’ll have the messages within your chat. The message store consists of text, images, emojis, stickers, GIF’s, and recordings.
Teams
Everything you’ll see in orange on the right hand side of the diagram will include your collaboration experience utilized inside of Teams. The foundation of this collaboration experience will be your modern group. As you build a team in the Microsoft Teams client, under the hood you’re actually creating a modern group in the Office 365 platform. In addition, when that team is created you will provision a SharePoint site on the back-end of that team. This team is then broken down into channels. Each channel will map to various folders inside SharePoint. The channel itself can contain tabs which can expand your functionality even further with the ability to add your favorite apps and files. Lastly, channels give you a mechanism to chat within those channels and are built out in a threaded model called the reply chain. As mentioned earlier, Teams gives you the ability to augment each team with various apps. Having apps can enhance the functionality of that specific team or have capabilities built into a specific line of service.
Voice
Lastly, you’ll have your calling and meetings which are services provided by Microsoft’s next generation calling platform. Everything that you see inside of your chat and Teams client is utilized via the activity feed. The activity feed gives you the ability to see all types of activities happening within your Teams client (@mention, favorite channels, following channels, etc.).
Teams Conversation Storage
You may be wondering, “where are the conversations stored within Microsoft Teams?” As you may remember from earlier in this article we mentioned something called the “chat service”. The chat service is a micro service within Azure and is leveraged as part of the Teams architecture for serving chat. In order to ensure optimal speeds it uses in memory processing as well as Azure storage (soon to be Cosmos DB). If you come from the Skype for Business Online world you may remember that chats are stored within Exchange. In Teams, chats are ‘journaled’ to Exchange as part of information protection but the chats themselves are actually served from that chat service itself. As far as any conversation images/media which includes things like inline images or stickers will be stored in a ‘media store’. However, GIF’s/Giphys will not be stored there, instead Microsoft just leverages a pointer to a CDN where that GIF/Giphy is stored.
Teams File Storage
So now that we know where conversations are stored, let’s discuss where files will be stored. The file storage location will be dependent upon the place where you hold your conversation/chat. For example, any 1:1 or 1:N (many) chat scenario will have files stored within OneDrive for Business. The person that initiates the sharing will determine where the file will be uploaded. The individual that initiates the sharing will have this uploaded to their personal OneDrive for Business and from there permissions are set appropriately based upon that particular chat. However, if you are within a team and a file is shared, that file will be uploaded into SharePoint. There is a mapping in place between the channel and the folder in the SharePoint site that will be created and that particular file will be uploaded to that SharePoint site. The last piece of the file storage puzzle, will be cloud/3rd party storage. This includes: Dropbox, Box, Citrix ShareFile, and Google Drive. Each of these 3rd party storage options are configurable by the administrator.
To bring home the whole concept of storage in Microsoft Teams, let’s take a look at a data entity storage view so we can encapsulate all pieces of storage into one diagram.
In the table above you’ll see several different entities listed (blue) and their corresponding storage locations. So let’s break these down and see how they correlate with one another.
- Message
- Messages themselves are stored within the chat service
- Specifically stored in chat service table storage but moving to Cosmos DB in near future
- Messages are journaled & ingested into Exchange for compliance purposes
- Messages themselves are stored within the chat service
- Images
- Images themselves have a media service running using Azure where media is maintained
- Inline pictures
- Images are also journaled & ingested into Exchange for compliance purposes
- Images themselves have a media service running using Azure where media is maintained
- Files
- Files at the team level are stored in SharePoint
- Individual chats (1:1 or 1:N private chat) are stored in OneDrive for Business
- Voicemail
- Voicemail is provided by the cloud voicemail service and then the voicemail is stored in that individuals mailbox in Exchange
- Recording
- Recording utilizes Microsoft Stream. There is a media service in Azure that generates the recording as it occurs
- That recording is then encoded and placed into Microsoft Stream for the final placement of that recording
- Calendar Meeting
- Meeting scheduled on your calendar are placed inside the individual mailbox of the user that is scheduling that meeting
- Contacts
- Contacts come from Exchange
- Telemetry
- Any telemetry data generated by the Teams client is stored in the Microsoft Data warehouse
This concludes part 1 of the “Core Components of Microsoft Teams” blog series. In the next blog article we’ll discuss what all this excitement of Azure Active Directory. In addition, we’ll cover the types of identity models and wrap things up by discussing how Teams utilizes Azure AD. I hope you have found this helpful and I hope you check back shortly for the next blog!