New to Teams? Learn our Top 10 Microsoft Teams Tips to become a super user in no time! Watch on-demand here.
Read the rest of our Microsoft Ignite 2019 coverage:
It isn’t every day that you get to hear about a major piece of technology from one of its founders, but attendees at Ignite 2019 were lucky enough to learn about the architecture of Microsoft Teams from Bill Bliss himself. The full session goes in-depth about the intricacies of every aspect of Teams from messaging to file storage, and we’ve compiled some of the most interesting tidbits for you here. Let’s get started!
Broad Highlights
Bill began by taking a high-level look at the current Microsoft Teams architecture. Both the desktop and mobile architectures are optimized for agility and auto-update.
The web app is based on HTML and CSS, and the code base is moving slowly but surely moving from Angular to React. The client is completely written in TypeScript and transpiled into JavaScript, and they use Node for the desktop version. All of this is bound in an Electron wrapper for both Windows and Mac.
Mobile, meanwhile, is much more straightforward; iOS is written in Swift and Android is written in Java (with a few bits of React native in both).
The Role of Microsoft Teams in Office 365
Microsoft envisioned and built Microsoft Teams as a large systems integration project. Office 365 is packed with a great set of services and applications, but there wasn’t any one application that really brought them all together. This is why Microsoft Teams is only as strong as the sum of its parts, and why Microsoft refers to it as the hub of Office 365.
Azure
Bill also noted just how vital Azure was to building Microsoft Teams. It handles a significant amount of the complexity related to running the app. It gives them resiliency to natural disasters and worldwide data residency requirements. Many of the security standards that Office 365 supports also relies on factors like physical security and encryption, both of which Azure helps with.
Mid-Level Architecture Tidbits
While the image below might be fairly self-explanatory, Bill took the time to address why some might think it strange to for Graph API to be labeled as a client. As he explained it, “the goal of [Microsoft’s] Graph API is to expose the functionality of the client in Microsoft Graph, and to do that, it’s logically a client.”
He was also sure to point out that, in many cases, the Microsoft Teams client talks directly to these services; it doesn’t go through a middle tier. OneNote, WAC, OneDrive for Business; those are all talked to directly via the client.
Rapid-Fire Insights
Now that we’ve covered some of the broader points Bill touched on, here are a range of more specific topics he shed some light on:
Conversation Storage
Chat: Most chats are stored in memory. Chat uses Azure storage (blog, tables, and queues), and is moving to Cosmos DB (one-on-one chats and group chats are in Cosmos DB already).
Substrate/Exchange: All the chat and channel messages are stored in Exchange for information protection purposes.
Conversation Images & Media: Inline images and other media are stored separately (Giphys aren’t stored).
File Storage
1-1 Chats: Any files shared in these chats are stored in the OneDrive for Business of the person who posted it, and permissions are set for members of the chat to read it.
Team Conversations: These are uploaded to SharePoint, and there’s a folder associated with each channel in the appropriate Team.
Cloud Storage: Microsoft Teams supports Dropbox, Box, Citrix ShareFile, and Google Drive as cloud storage service options.
The Compliance Boundary
The compliance boundary is where Microsoft can manage the security and privacy of customer data. These are three types of data flows that go through this boundary to interact with Microsoft Teams:
Bi-Directional (Data Flows Both Ways)
- Users via browser, desktop, or mobile (a Standard Teams User)
- Guest users
- Inviting anonymous users to join a meeting
- Federation communication (communication between multiple tenants)
- Tabs (Any third-party tab is hosted outside the compliance boundary)
- Apps/Bots
- Graph API
- Calling Plan (This enables inbound-outbound calling outside the organization)
Inbound Data Only
- Connectors (Data posted to a channel)
- Email a channel (you can never send information out in email via Microsoft Teams)
Outbound Data
- Giphy. As you type a query, Giphy sees those query strings
- Push Notifications. Sent from Microsoft Teams (Mobile) to the cloud
- Other cloud storage (third-party, e.g. Box, Google Drive, etc.)
- URL preview
Needless to say, there’s an absolute ton that goes into making Microsoft Teams work as well as it does. If you want to hear Bill speak on how calls and meetings are handled, be sure to watch the full session!
Want to keep up with our Ignite coverage? Be sure to subscribe to our blog!