Wie Julian und Phil bereits in ihren Beiträgen erläutert haben, verfolgt K3 neue Ansätze und Ideen, um die Funktionalität und das Aussehen von Knuddels zeitgemäßer und besser zu machen. Doch auch unter der Haube passiert einiges, um Knuddels technisch wieder auf die Höhe der Zeit zu bringen.
Als Knuddels-Nutzer kennst du sicherlich das Problem: Je nachdem, welche App du benutzt, erlebst du Knuddels anders, weil der Funktionsumfang auf allen Plattformen unterschiedlich ist. Android-Nutzer können beispielsweise als einzige Spotlight-Punkte sammeln, während StApp-Nutzer fast alle Vorzüge von Knuddels genießen. Der HTML-Chat ist sehr eingeschränkt und iOS hat seine eigenen Besonderheiten. Diese Fragmentierung liegt daran, dass all diese Apps mit unterschiedlichen Technologien entwickelt werden und wir nicht alle Apps gleichzeitig weiterentwickeln können. So entstehen im Laufe der Zeit dramatische Unterschiede, die sehr frustrierend sein können.
K3 räumt mit diesen Unterschieden auf. Alle Apps werden nun mit derselben Technologie entwickelt, wodurch Features, die auf einer Plattform funktionieren, auf allen anderen ebenfalls verfügbar sind. Dies führt zu einer sehr hohen Entwicklungseffizienz, was langfristig bedeutet, dass Bug-Fixes und neue Funktionen nicht nur schneller, sondern auch für alle Nutzer gleichzeitig zur Verfügung stehen.
Aber nicht nur die Apps werden im Zuge von K3 generalüberholt. Auch die Server werden neu organisiert. Unsere Nutzer merken das am ehesten bei den Updates: In regelmäßigen Abständen ist Knuddels vorübergehend nicht erreichbar, weil der Chatserver geupdatet werden muss. Da der Chatserver im Kern monolithisch organisiert ist, benötigt ein Update immer einen anschließenden Neustart des gesamten Systems. In den letzten Jahren wurde dieses System bereits durch Module verbessert, die unabhängig vom Chatserver neugestartet werden können, sodass sich Bugfixes und Features in bestimmten Bereichen ohne einen Chatserver-Neustart einpflegen lassen.
K3 geht noch einen Schritt weiter und organisiert die Server in sogenannten Microservices. Jeder dieser Services läuft dabei völlig unabhängig von allen anderen Services und falls einer davon ausfällt oder geupdatet werden muss, sind die anderen Funktionen davon nicht beeinträchtigt. Rollen wir beispielsweise eine neue Version des Messengers aus, können alle Nutzer weiterhin ohne Probleme chatten.
Auch der Update-Prozess an sich ist rundum erneuert. Sobald ein neues Feature entwickelt wurde, werden automatisch Tests durchgeführt, um die Funktionsfähigkeit und Fehlerfreiheit des Codes zu prüfen. Zudem wird jedes Feature in einem Review-Prozess von mindestens einem weiteren Entwickler geprüft. Sind diese Tests erfolgreich, darf das Feature in die Haupt-Code-Basis eingefügt werden. Abschließend geht das Feature mit einem Knopfdruck live und steht allen K3-Nutzern zur Verfügung.
Zu guter Letzt sind wir auch sehr stolz auf unsere jüngste Umstellung der technischen Kommunikation zwischen den K3-Apps und den K3-Microservices. Durch die Nutzung von GraphQL sind wir nun auf dem neuesten Stand der Technik und konnten unsere Entwicklungseffizienz nochmals steigern.
Wenn du dich für mehr Details interessierst, sprich uns gern an - oder bewirb dich als Entwickler bei uns!
robzero