Entwickler

Von der Kunst, nie stillzustehen: MondayCoffee meets Fluid Framework

Was sind gute Voraussetzungen für eine gutw Zusammenare (8).png

Für unseren SharePoint-Master und langjährigen Mitarbeiter Oliver Zeiser gehören das Ausprobieren von neuen Technologien und die kontinuierliche Weiterentwicklung unserer Modern-Workplace-Lösung CoffeeNet zum Tagesgeschäft. Gemeinsam mit Oliver und seinem Team wollen wir sicherstellen, dass unsere Lösungen für unsere Kunden auch modern bleiben.  

In diesem Blog-Beitrag erzählt Oliver davon, was es heisst, hinter den Kulissen technologisch an vorderster Front zu arbeiten. Und zwar am jüngsten Beispiel des Fluid Frameworks für Realtime-Collaboration von Microsoft. Ein Erfahrungsbericht für alle, die einen tieferen Blick in die technologischen Entwicklungen von Microsoft werfen möchten.  


ZEO.png

Blog-Beitrag von Oliver Zeiser, SharePoint Master bei MondayCoffee

Als ich im Jahr 2013 damit begonnen hatte, die On-Premises-Welt mehr und mehr hinter mir zu lassen und unsere Modern-Workplace-Solution CoffeeNet für die Cloud und SharePoint Online zu entwickeln, ging ich selbst mit einer gehörigen Portion Skepsis ans Werk. Heute weiss ich, dass es die richtige Entscheidung war. Frühzeitig auf die richtigen Technologien zu setzen, zahlt sich langfristig aus.  

Acht Jahre später ist die Arbeit mit den neuesten Technologien zwar keineswegs einfacher, aber eben mein Tagesgeschäft geworden. Nichts ist in diesem neuen, sich so rasch verändernden Cloud-Zeitalter mehr wert als bereits echte Erfahrungswerte mit den neuesten Technologien in unsere Produkte einbringen zu können. Ein aktuelles Beispiel ist das Microsoft Fluid Framework.  

Frühzeitig auf die richtigen Technologien zu setzen, zahlt sich langfristig aus.  

Das Microsoft Fluid Framework – von der Vision zur Realität 

Am 6. Mai 2019 hat Microsoft das Fluid Framework auf der Build Conference als neues Framework für Realtime-Collaboration vorgestellt. Natürlich war das Fluid Framework zu diesem Zeitpunkt noch kein fertiges Produkt, sondern eher eine Vision. 

Definition Fluid Framework: “First, experiences powered by the Fluid Framework will support multi-person co-authoring on web and document content at a speed and scale not yet achieved in the industry.”

Für uns wurde die Vision jedoch schnell Realität: Seit Mai 2019 beschäftigen wir uns mit dem Thema und haben uns früh darum bemüht, erste Hands-on-Experience damit sammeln zu können. 

9.png

Bereits im Oktober 2019 sind wir daher nach Redmond gereist, um vor Ort bei Microsoft mit den EntwicklerInnen des Fluid Frameworks sowie dem SharePoint Framework-Team erste Erfahrungen zu sammeln, Prototypen zu bauen und Feedback zu geben. Während unseres Aufenthalts bei Microsoft haben wir erst wirklich verstanden, worum es bei dem Fluid Framework geht und was es von klassischen Realtime-Frameworks wie SignalR und WebSockets unterscheidet.  



Fluid Framework versus klassische Realtime-Frameworks  

SignalR und WebSockets werden oft verwendet, um sogenannte Last-Write-Wins-Datenstrukturen zu betreiben. Zum Beispiel wird eine Nachricht über einen WebSocket gesendet, die einen Wert in einer Map auf dem Client aktualisiert. In vielen einfachen WebSocket-Szenarien ist diese Nachricht also zum Beispiel eine Benachrichtigung wie: „Sie haben Post“. 

Bei Fluid geht es um die Verwaltung des Zustands, nicht um die Übertragung von Nachrichten. Während Last-Write-Wins-Datenstrukturen in Fluid enthalten sind, erfordern einige Datenstrukturen eine komplexere Zustandsverwaltung. Strings und Sequenzen sind keine Last-Write-Wins. 

 
Wie würde ein Last-Write-Wins-Algorithmus mit zwei BenutzerInnen umgehen, die gleichzeitig eine Zeichenkette bearbeiten? 

Ausgangszustand: "Hallo Welt" 

Alice fügt "!" am Ende hinzu 

Bob fügt "?" am Ende hinzu 

Es könnte ein seltsames Verhalten auftreten, das zu "Hallo Welt?" oder "Hallo Welt!" führt. 

Fluid ordnet die Änderung von Bob und die Änderung von Alice über den Fluid-Dienst an. Die Merge-Tree-Datenstruktur verfügt dann über einen reproduzierbaren Merge-Algorithmus zum Anwenden dieser geordneten Änderungen. Letztendlich würde die Zeichenfolge "Hallo Welt?!" lauten. 

Obwohl einfache Beispiele leicht zu implementieren sind, insbesondere Last-Write-Wins, sind komplexere Beispiele eine Herausforderung. OT (Operational Transformation) & CRDTs (conflict-free replicated data type) sind zwei existierende Möglichkeiten zur Handhabung der Zustandsreplikation. Ein großer Teil des anfänglichen Wertversprechens von Fluid besteht darin, komplexe Zustände für EntwicklerInnen zu verwalten. 
 

Entwicklung von Prototypen gemeinsam mit Microsoft  

Am 8. September 2020, also knapp ein Jahr später, hat Microsoft eine erste Open-Source-Version des Fluid Frameworks veröffentlicht. Hier zur Veröffentlichung.

Was aber zu dem Zeitpunkt viele nicht wussten: dass das erst der Anfang war. Die eigentliche Arbeit ging hinter den Kulissen weiter. Microsoft hatte weiterhin an dem Thema gearbeitet, um das Fluid Framework direkt in Microsoft 365 als Service zu integrieren. 

Als Entwickler und Betreiber von CoffeeNet 365 (einem Cloudservice für Microsoft 365) wissen wir, wie viel Aufwand zum Betreiben solcher Dienste nötig ist. 

Was sind gute Voraussetzungen für eine gutw Zusammenare (9).png

Daher haben wir uns frühzeitig entschieden, den Weg gemeinsam mit Microsoft zu gehen und für unsere Apps auf das Fluid Framework zu setzen, welches den Backend-Service von Microsoft direkt als Service in M365 verwendet. 

In enger Zusammenarbeit mit Microsoft haben wir erste Apps und Prototypen in einem private Preview-Programm entwickelt. Und heute, im Mai 2021, dürfen wir endlich darüber schreiben.  


Das Fluid Framework wird die Arbeit, wie wir sie heute kennen, nachhaltig verändern 

Es ist uns die ganze Zeit über schwergefallen unsere Begeisterung zurückzuhalten, denn das Fluid Framework wird die Arbeit, wie wir sie heute kennen, nachhaltig verändern. Wir von MondayCoffee waren von Anfang an dabei und haben einmal mehr gezeigt, dass wir nicht nur einen sehr guten Riecher für zukunftsweisende Technologien haben, sondern durch unsere enge Zusammenarbeit mit Microsoft und vielen ihrer Entwickler aus Redmond einen riesigen Mehrwert für unsere Kunden bieten können. 

Durch unsere enge Zusammenarbeit mit Microsoft und vielen ihrer Entwickler aus Redmond können wir unseren Kunden einen riesigen Mehrwert bieten. 
 

MondayCoffee Meeting App mit Collaborative-Real-Time Meeting Minutes

 

An dem Tag, an dem Microsoft die nächste Etappe für das Fluid Framework ankündigt, haben wir diese bereits gemeistert und können unseren Kunden mit ersten Apps und vor allem bereits mit echten Erfahrungswerten und Best-Practices mit Rat und Tat zur Seite stehen. 

Mir als Entwickler und Architekt von CoffeeNet 365 sowie generell als technologiebegeistertem Mensch macht es sehr viel Spass, die Brücke zwischen MondayCoffee, Microsoft und unseren Kunden zu schlagen und technologisch an vorderster Front arbeiten zu können. Auch wenn der Preis dafür ist, manchmal seine Begeisterung zurück halten zu müssen, bis die Themen öffentlich gemacht werden dürfen. Daher freue ich mich umso mehr, dass unsere App auf der Microsoft Build Conference 2021 vorgestellt wurde. 

In Zukunft werden Sie noch viel mehr von uns zu diesem Thema hören. Leider können wir auch jetzt wieder nicht alles verraten. Aber Sie dürfen gespannt bleiben. Wir von MondayCoffee gehen bereits wieder den nächsten und übernächsten Schritt mit Microsoft für unsere Kunden.