Wie wir die Performance von Linchpin stetig verbessern

Vor einigen Wochen erblickten die Linchpin Intranet Suite 5.1 und Linchpin Essentials 2.1 das Licht der Welt. Besonders spannend waren diese Releases deshalb, weil wir uns dafür das Fokusthema "Performance und Stabilität" gesetzt hatten. Außerdem haben wir uns an tatsächlichen Kundenmeldungen orientiert. Schließlich werden die Linchpin-Instanzen immer größer und stärker beansprucht. Performance ist daher ein sehr wichtiges Thema für uns (und ein recht komplexes, aber dazu später mehr). In diesem Blog-Artikel zeigen wir, wie Linchpin optimiert wird und wie wir generell zum Thema "Performance" stehen.

Warum die Performance nicht vernachlässigt werden darf

Neue Features sind super, keine Frage. Wir bauen sie gerne, ihr nutzt sie gerne. Aber vielleicht nicht immer. Denn ehrlicherweise muss man sagen, dass ab einem gewissen Punkt jedes neue Feature vermutlich nicht mehr von allen Usern benutzt wird - vor allem in Unternehmen, die eine sehr große und vielfältige Belegschaft haben. Bei Performance-Fragen sieht das ganz anders aus: Hier kommt eine Optimierung wirklich allen Nutzenden zugute. Egal ob die IT-, Marketing- oder Sales-Abteilung, die Unternehmenskommunikation oder bloß Lesende  - wenn man mit dem System interagiert, ist man betroffen.

Hinzu kommt, dass Performance-Verbesserungen einen echten Mehrwert bringen. Vor allem bei der täglichen Arbeit darf das nicht unterschätzt werden. Oft reden wir hier von wenigen Sekunden, die das Laden der Inhalte dauert. Diese addieren sich jedoch sehr im Verlauf eines achtstündigen Arbeitstages schnell auf. In der Regel öffnen wir schließlich mehr als nur zwei oder drei Seiten pro Arbeitstag. Wenn wir die Ladezeiten also reduzieren können, sorgen wir für weniger Zeitverlust, damit einher gehen eine Steigerung der Produktivität und vor allem weniger Frust bei den Nutzerinnen und Nutzern, die "nur mal eben schnell" was nachschlagen wollten.

Die Kosten-Nutzen-Rechnung geht also auf. Man könnte sogar argumentieren, dass Performance-Verbesserungen den Usern mehr tatsächlichen Nutzen bringen als ständig neue Features.

Performance-Optimierungen für die News

Deshalb bietet die Linchpin Intranet Suite 5.1 Performance-Verbesserungen für News. Die größte Änderung ist die, dass wir grundsätzlich nur noch Daten laden, die wirklich notwendig für das Funktionieren einer Seite oder eines spezifischen Elements sind. In den Features Portal, Magazin und Onboarding konnten wir durch diese Änderungen eine Reduzierung der zu ladenden Elementgröße erreichen. Zusätzlich haben wir eine neue Library für das Datum in einer News eingeführt und so auch dort die zu ladende Datenmenge reduziert.

Disclaimer: Alle nachfolgenden Werte im Blogartikel beziehen sich auf Tests in unserer Testumgebung. 

Performancereduzierungen in News-Elementen

Auch die Makros "Corporate News Feed" und "Personal News Feed" profitieren von Performance-Boosts. Wir konnten die Datenmenge, die von den Makros geladen wird, stark reduzieren. Die Ladezeiten sinken entsprechend deutlich.

Performance-Boosts der News-Makros

Nutzerprofile mit verbesserter Performance

Die Performance-Verbesserungen wirken sich bei den Nutzerprofilen so aus, dass wir die Ladezeiten von Seiten mit vielen Makros deutlich heruntersetzen konnten. Bei den Makros "Custom User List" und "Custom User Search" werden nur noch Daten geladen, die für die Anzeige konfiguriert sind.

Performance-Verbesserungen für Makros

In mehreren Kundenmeldungen wurden Fälle geschildert, in denen sehr viele "Profil"-Makros auf einer Seite benutzt wurden. Dies führte dann zu recht langen Ladezeiten. Für Linchpin Intranet Suite 5.1 und Linchpin Essentials 2.1 konnten wir die Performance solcher Seiten stark verbessern. So werden Inhalte nun im Frontend statt im Backend nachgeladen und auch das Caching hat sich verändert. Damit sollte das Grundgerüst einer Seite mit sehr vielen "Profil"-Makros jetzt deutlich schneller geladen werden. Die Ladezeit für die gesamte Seite verringert sich folglich ebenfalls.

Performance-Boost für das Profil-Makro

Wieso Performance ein komplexes Thema ist

Die Performance sinnvoll zu verbessern, ist nicht immer einfach. Das liegt vor allem daran, dass wir nicht wissen, wie die Systeme "da draußen" aussehen. Wir wissen nicht, wie viele User gleichzeitig auf Seiten zugreifen oder wie viele Makros und Daten auf den Seiten unserer Kunden gespeichert werden. Abhängig von der Größe des Systems, von der Datenmenge und auch von den eingesetzten technischen Lösungen (z. B. Art der Datenbank) kann sich die Performance von Linchpin unterschiedlich verhalten. Darüber hinaus können auch Drittanbieter-Apps Seiteneffekte erzeugen. Apps gibt es bekanntermaßen viele und vielleicht haben wir bei unseren Tests manche davon gar nicht auf dem Schirm.

Orientierung an Kunden-Use-Cases

Wir kennen die tatsächliche Nutzweise vieler Systeme also gar nicht. Das führt dazu, dass unsere Tests oft quasi unter Laborbedingungen durchgeführt werden. Genau deshalb sind Kundenmeldungen zu Performance-Themen enorm wichtig und interessant für uns. Sie helfen uns, die tatsächlichen Use Cases unserer Kunden kennenzulernen und vor allem nachzubauen. So können wir gezielter testen und schauen, ob unsere Software wirklich in solchen Fällen nicht so schnell läuft, wie sie laufen könnte.

Die Erkenntnisse daraus lassen wir natürlich auch in unsere restlichen Apps einfließen, damit sie ebenfalls von den Performance-Verbesserungen profitieren. Ihr könnt bei euch aktuell Performance-verwandte Probleme beobachten? Laden Dinge nicht so schnell wie sie sollten oder wie ihr es erwarten würdet? Meldet euch bitte in unserem Linchpin-Hilfebereich bei uns und wir schauen uns das an! Denkt bitte daran: Je detaillierter ihr uns euren Fall im Ticket schildert, desto besser können wir an ihm arbeiten.

Dennoch: Natürlich ruhen wir uns nicht aus und warten bloß auf eure Meldungen. Wir führen parallel eigene Analysen durch und suchen dabei Indikatoren für mögliche Flaschenhälse innerhalb von Linchpin. So haben wir seit einiger Zeit eine dedizierte Performance-Taskforce für genau diese Zwecke. Auch hier gilt: Wenn wir etwas finden, was wir verbessern können, tragen wir dieses Wissen auch in unsere restlichen Apps.

Mögliche Ursachen für Performance-Probleme

Tatsächlich ist die Fehleranalyse selbst meistens deutlich aufwendiger als die anschließende Lösung des Problems. Das liegt unter anderem daran, dass das Thema Performance quasi auf allen Ebenen der Entwicklung relevant ist und somit auch viele mögliche Problemstellen existieren.

Zum Beispiel kann der Browser solch einen Flaschenhals bilden. Die gängigen Browser verhalten sich unterschiedlich. Welchen Browser man benutzt, kann also eine Auswirkung auf die Performance von Systemen haben. Außerdem ist es wichtig zu betrachten, wie unsere Ressourcen geladen werden. Linchpin steht auch für interaktive Inhalte und wo Interaktivität ist, ist JavaScript. Wenn (viele) Elemente also nachträglich hinzugefügt werden, kann dies Auswirkungen auf die Performance einer Seite haben. Das Gleiche gilt natürlich für die Menge der Daten, die vom Server gesendet werden. Je mehr Daten es sind, desto langsamer könnte die Verarbeitung/Auslese ausfallen. So zieht sich das weiter, bis auf die Ebene der Datenbanken, wo zum Beispiel die Anzahl der Zugriffe auf eine Datenbank die Performance beeinflussen kann.

Stimmen aus den Produktteams

Angela und ich sind beide nah an Linchpin und haben uns auch in jüngster Vergangenheit intensiv mit der Performance beschäftigt. In dem Video erzählen wir euch in knapp acht Minuten gerne, welche Erkenntnisse wir zuletzt gewonnen haben.

Das könnte euch auch interessieren

Schaut in der Linchpin Roadmap nach, was euch in der Zukunft erwartet
Die Tools4AgileTeams-Konferenz feiert ihren zehnten Geburtstag: Jetzt Tickets sichern!
Expertinnen und Experten in Linchpin leicht finden: die Linchpin Intranet-Story
Linchpin Intranet Suite 5.1: Bessere Performance, mehr Sichtbarkeit, optimierte Mobile-App und mehr


Mehr über die Creative-Commons-Lizenz erfahren

Sicher dir dein Ticket zur Tools4AgileTeams Konferenz am 01. & 02. Dezember 2022.