420 likes | 617 Views
Microsoft Teams Architecture. Steve Saxon – Partner Software Architect Mark Longton – Group Principal Program Manager. BRK3118. Teams. Chats. Teams logical architecture. Voice. Apps. Tabs. Chat. Modern Group. Team. Apps. Contacts. One Drive. Channel. SharePoint. Folder.
E N D
Microsoft Teams Architecture Steve Saxon – Partner Software Architect Mark Longton – Group Principal Program Manager BRK3118
Teams Chats Teams logical architecture Voice Apps Tabs Chat Modern Group Team Apps Contacts One Drive Channel SharePoint Folder Meetings Tabs Calling Images, Emojis, Stickers, Giphy, Recordings Activity Feed Reply Chain Message
Conversation storage Where are conversations stored? Chat service In memory processing for speed Leverages Azure storage (moving to Cosmos DB) Exchange Chat and channel messages are also stored in Exchange for information protection Conversation images & media Inline Images/Stickers are stored in a media store, Giphys are not stored.
File storage Where are files stored? 1:N chats Files are uploaded to OneDrive for Business and permissions are set for the members of the chat Team conversations Files are uploaded to SharePoint. A folder is associated with each channel in the team Cloud storage Dropbox, Box, Citrix ShareFile, Google Drive
Data Entity Storage Key data entities and location where data is stored at rest Entity Storage Storage Message Chat service table storage (moving to Cosmos DB) Ingested to Exchange to enable compliance Ingested to Exchange to enable compliance Image Media service on Azure (using Blob storage) Files Team files SharePoint Chat files OneDrive for Business Voicemail Individual mailbox in Exchange Encoded to Stream Recording Media service on Azure (using Blob storage) (<24 hours) Calendar meeting Individual mailbox in Exchange Contacts Exchange Telemetry Microsoft Data warehouse (No customer content)
Operations performed on Groups are synched to Microsoft Teams Azure Active Directory Sync Microsoft Teams Azure AD Sync normally completes in 15 minutes. SLA is 24 hours Group property updates Group manager changes Group member changes Group hard delete User property updates User hard delete
How Teams enables information protection • Email • 1:1 chats • Group chats • Channel messages O365 Information Protection tools • eDiscovery • Legal Hold • Compliance content search • Archive • Retention • Audit Logs Chat service Microsoft Teams O365 services • SharePoint Files • OneNote/Wiki • OneDrive for Business
Data flows through the compliance boundary The compliance boundary is where Microsoft can manage the security and privacy of customer data Data posted to a channel Connectors compliance boundary Data posted to a channel Email a channel Standard Teams user User Browser, Desktop ,Mobile Query to Giphy Giphy Microsoft Teams Guest added via AAD B2B Guest user Push notifications to Apple or Google to notify mobile client Push Notifications (Mobile Anonymous user joining a meeting Optional Box, Dropbox, Google drive, Citrix Fileshare Other Cloud storage (3rd party) Anonymous join to a meeting Get a preview of a URL that is posted to a message URL Preview Communication between multiple tenants Federation communication Any third-party tab is hosted outside the compliance boundary Tabs Any third-party App/bot or line of business app is hosted outside the compliance boundary Apps/Bots Graph APIs can be exposed to line of business apps or 3rd party apps Graph API Enables inbound/outbound calling outside the organization Calling Plan (PSTN) 2-way communication Inbound data Outbound data Key
In region In country US Gov Data residency AMERICAS EMEA APAC Microsoft Teams. If Customer provisions its tenant in Australia, Canada, the European Union, India, Japan, the United Kingdom, or the United States, Microsoft will store the following Customer Data at rest only within that Geo: • Microsoft Teams chats, Team conversations, images, voicemail, and contacts • SharePoint Online site content and the files stored within that site • Files uploaded to OneDrive for Business. UK West Dublin UK South Amsterdam Canada east Canada central North Central US Japan East Japan West US Gov Arizona East US US Gov Texas East Asia West India Central India Southeast Asia Australia East Australia Southeast 181 countries | 33 languages (NOTE: Hebrew and Arabic RTL languages now supported)
For the full Microsoft Teams experience, every user should be enabled for Exchange Online, SharePoint Online, OneDrive for Business and Office 365 Group creation. Microsoft Teams and Exchange on-premises Modify user profile picture eDiscovery (messages, files) Legal hold (messages, files) Retention (messages, files) eDiscovery (calling / meeting) Team and Channel management Add and configure connectors Create and view meetings Add and configure bots Manage contacts Call History Voicemail Access Outlook contacts Add and configure tabs https://docs.microsoft.com/en-us/microsoftteams/exchange-teams-interact
Teams brings together Office 365 and Intelligent Communications Teams Clients Intelligent Communications Cloud Teams Services Microsoft 365 core services Azure
Optimized for agility auto-updates Teams client architecture Mobile Desktop Windows Mac iPhone/iPad Android Web IOS Android Electron C++ Objective C HTML5/CSS Angular React jQuery, lodash etc.. (200+ Open Source Components) Swift Java TypeScript, Node, SASS React Native Browsers: Edge, IE11, latest Chrome, latest Firefox | Desktop: Windows 10, 8.1, 7(SP1), Mac OS X 10.10+
No plugin required (ORTC/WebRTC) Common code between Mac and Windows Improved quality with latest bits on all clients Client calling stacks Web Mobile Desktop UI (HTML, CSS) UI (HTML, CSS) UI (HTML, CSS) client calling service calling service calling service ts-calling “ICall" API SlimCore Wrapper Notification Stack TRAP client SlimCore Wrapper call handler native code native code SlimCore SlimCore shared component shared component ts-calling JS CSA JavaScript Media Agent browser ORTC/ WebRTC relays Registrar Trouter Conversation Service Media Controller ChatService services TPC Call Controller Media Processor
Microsoft Teams High level architecture Intelligent Communications Microsoft 365 Core services Teams Web Desktop iOS App Android App Graph API Electron Services Web Companions Telemetry Settings and O365 access Messaging Audio / video Notes Files Files Calling / Meeting AAD Experimentation WAC OneDrive for business SharePoint Chat & Presence services Teams services Other Workloads OneNote Most recent files MRU Policy Calendar Exchange Bots PSTN Publish / Subscribe Connectors Stream Recording Search Exchange Graph Webhook Push Notifications Notification service Email service SMTP Information Protection
Next Generation services for VOIP Leverage SfB services for PSTN Calling Teams Client Roster, Transfer, Renegotiate register as callable endpoint create call, join call, … message sync incoming notifications messages media Chat Service Conversation Service Notification service Media Services Call Controller Registrar Skype for Business Online services client notifications call state messages callable endpoints? incoming call notification SfBResource Forest Voice Gateway Policy store SfBUser Forest Calling SfB Interop / PSTN SettingsPolicy
In addition to Calling Plans BRK4014 - Deep dive on Office 365 Direct Routing Direct routing for Teams PSTN Provider Phone # Ranges Certified Session Border Controller(s) SIP TRUNK Internet Teams Phone Systems PBX Other Voice apps ATA Session Border Controllers (SBC) from our certified partners such asAudioCodes or Ribbon
Post a message User B Device 3 Active, already logged in User B IOS Device 4 Not active User B Android Device 5 Not active User A device 1 User B Device 2 Active, just logged in Post a message 1 Sync messages to client 2 Long poll messages to client 3 3 5 1 6 2 Notify subscribers 4 Chat services IOS Push notifications 5 Apple Google Android Push notifications 6 4 Exchange Search Index Notification Service Graph Webhook Push Notification Information Protection
1:1 chats Text only Messaging and Presence Interop User A User B CHAT Presence Presence Post a message 1 Route message via Message Gateway Publish presence to subscribers Get Presence Set presence to Teams Set presence to SfB 7 6 5 4 2 6 4 1 Long poll, sync or Push notification to client 3 3 Chat services Presence Skype for Business Presence Skype for Business Chat services publish PRESENCE 7 publish publish 5 2 message message Message Gateway publish message Skype for Business on-premise Presence Skype for Business on-premise Chat services User C message 3 6 Presence
Meeting recording User A User B Teams Client Teams Client User will start recording 1 Recorder is added to call 2 2 1 3 8 7 5 6 4 Add participant Sync recording link Stream recording Recorder (azure service) will record call 3 Meeting service Chat service Stream Recorder will send data to media service 4 Media service will transcode video and upload to Streams 5 Recorder will send message with link to recording User streams the recording User will receive message on client 8 7 6 Call recorder bot Post message with link to recording Publish Recorder export Media service
Activity Feed User A User B User C User C Teams Client Teams Client Teams Client Email Client User sends message in chat or channel 1 Presence service is invoked to check last activity time on client Chat service fans out message to Notification Service 2 4 3 1 2 Send Message Notification service posts user specific activities to chat service 3 Email 7 Activity push & long poll Chat service pushes out activities via per-user channel 4 Chat & Presence services 5 Email service sends emails with summary of missed activities Activities since last active time is sent to Email service 6 7 Notify Post activity feed Notifications Service 5 Rule based feed creation Presence checks Send Email 6 Email notification
Q & A Steve Saxon – Partner Software Architect Mark Longton – Group Principal Program Manager
Please evaluate this sessionYour feedback is important to us! Please evaluate this session through MyEvaluations on the mobile appor website. Download the app:https://aka.ms/ignite.mobileApp Go to the website: https://myignite.techcommunity.microsoft.com/evaluations