Microsoft Ignite Live Blog: BRK3215-Microsoft Teams architecture update (german version)

This post has been republished via RSS; it originally appeared at: New blog articles in Microsoft Tech Community.

Die Ignite Konferenz informiert über die neuesten Microsoft Produkte und Services direkt von den Microsoft Experten und den Produktgruppen. Für viele Unternehmen ist Microsoft Teams ein brandaktuelles Thema. Vor der Session warteten bereits einige hundert Teilnehmer auf den Einlass zum Teams-Architektur Vortrag.

pic1.pngFull interest in Teams architecture

Bill Bliss ist der Plattform Architekt für Microsoft Teams und Gründungsmitglied des Microsoft Teams-Teams. Wer könnte also besseren Einblick in die Architektur von Microsoft Teams geben als Bill selbst?

Microsoft Teams basiert auf Azure-Diensten, Azure AD, Office 365 Groups, Microsoft Graph und bietet die gleiche Sicherheit, Compliance und Verwaltbarkeit auf Unternehmensebene wie der Rest von Office 365. Teams besteht im Wesentlichen aus den folgenden Komponenten:

  • Der Teams-Client als Frontend, als Desktop-App, Web-App und als mobile App
  • Die Teams Services, welche die wichtigsten Backend-Services bereitstellen
  • Die Intelligent Communications Cloud, die alle Mediendienste versorgt
  • Die Office 365-Plattform und -Dienste
  • Natürlich laufen alle Komponenten auf Microsoft Azure.

"Ohne Azure könnten wir kein Microsoft Teams liefern", erwähnte Bill. Alle Komponenten erfordern die Sicherheit, Compliance und Agilität der Cloud-Plattform.

Beginnend mit dem Team-Client gibt es viele Technologien, die in der Desktop Electron App enthalten sind. Das Fundament ist in Typescript und Node.js gebaut und verwendet Frameworks wie jQuery, Lodash und Angular. In Zukunft wird Angular in Zukunft durch React ersetzt (welches bereits heute teilweise enthalten ist). Außerdem enthält die Electron App - je nach Plattform - native Codeteile.

Die mobilen Apps werden in den nativen Programmiersprachen der Plattform, in Swift für iPhone und iPad sowie in Java für Android entwickelt. Beide Architekturen sind auf Agilität optimiert. Die folgende Abbildung zeigt diese Technologien.

teams-architecture-1.pngTeams client architecture

Das "Middle Tier" von Teams besteht aus einer Sammlung von Mikroservices. Dies reduziert die Komplexität und ermöglicht effiziente und flexible Services, die für evolutionäre Veränderungen optimiert sind. Hinter den Front-End-Servern befinden sich eine Reihe von Diensten wie Identity, Konfiguration, Teams-Management, Compliance, Benachrichtigungen und Erweiterbarkeit. Für diese Dienste verwendet Microsoft ein ähnliches "Ringsystem" wie für die Teams Clients, um bei Bedarf neue Dienste zu entwickeln, zu testen und bereitzustellen.

Die Intelligent Communications Cloud bietet im Wesentlichen Messaging, Calling- und Meeting-Funktionen in vielen Varianten, je nach Aktion. Es nutzt die Dienste von Skype for Business und übernimmt die Funktionen für VoIP- und PSTN-Anrufe und Konferenzen und zeigt weiters die Präsenz an. Der "Trouter" ermöglicht Benachrichtigungen über Firewalls hinweg, um sicherzustellen, dass die Nachrichten ihr Ziel erreichen.

teams-architecture-2.pngIntelligent Communications Cloud

Von der Office 365-Plattform aus nutzt Teams die Funktionen anderer Office 365-Workloads, wie etwa Exchange, Office 35 Groups, SharePoint, Stream, OneDrive for Business, Information Protection und Power-BI für Daten und Analysen. (Web-)Anwendungen, die verwendet werden, sind OneNote, Power Apps, Planner, Power Point, Excel und Word. Die Vision der Teams Produktgruppe ist, ein App-Hub für Office 365 zu sein, um die besten Fähigkeiten zusammen zu bringen.

Azure ist die Kernplattform, auf der Teams aufgebaut ist. Die Azure-Plattform ermöglicht einen umfassenden Support, einen globalen Einsatz, Redundanz und Disaster Recovery sowie Compliance out of the box. Die folgende Grafik zeigt einige Azure-Dienste, die von Teams genutzt werden. Azure kapselt die gesamte Komplexität der einzelnen Services und erledigt viel Arbeit für Teams.

teams-architecture-3.pngTeams and Azure services

Ruhende Daten (data at rest) können in verschiedenen Regionen liegen. Ursprünglich startete Teams mit drei Regionen: Amerika, EMEA und APAC. Seitdem haben Kanada, Großbritannien, Japan, Indien und Australien eigene Data Cener Regionen und es gibt drei weitere Regionen für die US-Regierung. Microsoft speichert Daten im Ruhezustand nur am Standort des Kunden und nimmt die Datensicherheit sehr ernst.

Um sich einen Eindruck von der technischen Komplexität der Teams zu verschaffen, zeigt die folgende Folie einen Überblick über die Komponenten, die zur Bereitstellung der Funktionalität erforderlich sind. Die Farben identifizieren den Typ des Services.

clipboard_image_5.png

Nachrichten werden von den Team-Clients zu den Backend-Services transportiert und an abonnierte Client-Systeme gesendet. Konnektoren und Mikroservices, in den Grafiken unten, sorgen dafür, dass Daten zu anderen Systemen fließen. Wenn ein Benutzer also beispielsweise eine Nachricht schreibt, erzeugt diese Nachricht einen Thread oder wird zu einer Reply-Chain hinzugefügt. Die Nachricht selbst wird im "Roster" gespeichert. Die Nachricht wird an die darunter liegenden Dienste weitergeleitet und andere Endpunkte werden darüber informiert, dass es etwas zu aktualisieren gibt oder einen Trigger auszulösen ist.

Die Synchronisation von Nachrichten ist keine leichte Aufgabe. Wenn beispielsweise Benutzer A eine Nachricht sendet, muss sie über den Chatdienst mit Benutzer B synchronisiert werden. Wenn Benutzer B bereits an einem anderen Gerät angemeldet, aber inaktiv ist, muss eine „long poll“-Nachricht an diesen Client gesendet und andere Teilnehmer informiert werden. Bei iOS-Geräten wird über iOS Push eine Benachrichtigung gesendet, bei Andorid Geräten an das Google-Benachrichtigungssystem. Im Hintergrund kann der Exchange- und Information Protection Schutz gestartet werden, Suchindizes werden neu gefüllt, der Activity-Feed muss aktualisiert werden, Audit-Protokolle werden geschrieben, Aggregationsdienste werden neu gestartet und so weiter. So löst ein einfacher Nachrichten-Post Trigger für eine Reihe anderer Dienste im Backend aus.

Die folgende Grafik zeigt, wo Daten im Ruhezustand gespeichert sind. Version 2 des Chat-Dienstes wird zukünftig Cosmos DB im Hintergrund verwenden. Bilder werden im Azure Blob-Speicher gespeichert, andere Dateien in SharePoint und OneDrive for Business, Kalendereinträge in Exchange und so weiter. Giphys etwa werden nicht gespeichert werden, sondern ihre URL. Es können auch andere Cloud-Storage-Anbieter eingesetzt werden.

clipboard_image_6.pngData Entity Storage

Für die Telemetrie werden alle Aktionen in Teams anonymisiert aufgezeichnet. Dies ist Teil des Office 365-Versprechens. Das Gleiche gilt für detaillierte Fehlerprotokolle. Microsoft legt großen Wert auf Datenschutz und Datensicherheit.

Hinter den Kulissen optimiert das Teams-Team verschiedene Dienste, wie z.B. die Kalender-Middleware, die Exchange Connectors für Gespräche mit verschiedenen Versionen von Exchange, das Speichern verschiedener Metadaten für Outlook und Teams, das Senden von Sprache und Medien an den Media Mixer-Dienst usw. So passieren viele Aktionen auf der Serverseite des Teams. Wenn eine Besprechung aufgezeichnet wird, führt ein "Call-Recorder-Bot" die Aufzeichnung durch und sendet die Daten an die Azure-Mediendienste, welche die Transcodierung durchführen. Danach wird eine Nachricht mit einem Link an den Benutzer gesendet, um ihn darüber zu informieren, dass die Aufzeichnung in Stream verfügbar ist.

Echtzeitkommunikation (RTC) wird an die iCall-API gesendet und dann in verschiedenen vertikalen Kanälen verarbeitet, je nachdem, ob es sich um einen Desktop-Anruf, einen mobilen Anruf oder einen Anruf über Web-Technologie handelt. Für Desktop- und Mobilgespräche übernehmen die SlimCore-Bibliotheken die Arbeit. Für Web RTC kommt viel Javascript zum Einsatz, bevor die Gesprächsdaten an Relays, an einen Registrar, verschiedene Call Controller, Conversation und Media Controller gehen.

Microsoft arbeitet auch an Teams für VDI (Virtual Desktop Infrastructure). Ziel ist es, eine performante VDI-Implementierung bereitzustellen, die für mehrere Partner nahtlos funktioniert. Jedoch kann nicht alles remote erfolgen. Zum Beispiel, wenn eine Virtuelle Maschine kein Mikrofon in einem Serverraum besitzt, ist die Idee die Fähigkeiten von anderen Smart Devices so weit wie möglich zu nutzen. Die Version des VDI-Teams ist ein anderer Teams-Client (MSI-Paket) und erfordert die Ausführung einiger PowerShell-Befehle, um sie zu installieren. Auf der VDI-Seite müssen sich Partnerimplementierungen um die Anwendungssituationen kümmern, z.B. ein Benachrichtigungsfenster, das oben auf dem Team-Client angezeigt werden muss.

Die Compliance-Boundary stellt sicher, dass Kundendaten nur im zulässigen Umfang und in der vorgegebenen Richtung verarbeitet werden. Beispielsweise können keine Daten von Außen an Teams oder E-Mails von Teams nach Außen gesendet werden. Die folgende Folie visualisiert solche Datenflüsse.

clipboard_image_7.pngData Flow in Teams

Darüber hinaus ermöglicht Teams Office 365 Information Protection mit allen Tools wie eDiscovery, Legal Hold, Compliance Content Search, Retention und Audit Logs. Die Teamarchitektur basiert also auf bekannten und vertrauenswürdigen Diensten.

Bill hat einen großartigen Vortrag gehalten, in dem er über die Komplexität, die Herausforderungen und die neuesten Updates von Microsoft Teams informierte.

 

Weitere Informationen über Microsoft Teams finden Sie unter den folgenden Ressourcen:

Leave a Reply

Your email address will not be published. Required fields are marked *

*

This site uses Akismet to reduce spam. Learn how your comment data is processed.