Drupal Module: BigPipe – Drupal Ausgabe beschleunigen

BigPipe ist eine Technologie für gesteigerte Performance, welche ursprünglich von Facebook erfunden wurde, nun aber in immer mehr Systemen eingesetzt wird. Traditionell baut ein CMS eine Webseite aus all den nötigen Einzelteilen auf, z.B. Menü, Inhalt, Kommentare, Widgets usw. Erst wenn die komplette HTML-Seite innerhalb des CMS aufgebaut und fertig gestellt wurde, wird diese durch den Webserver an den Browser geschickt.

Wie funktioniert BigPipe

Durch Bigpipe (erhältlich über drupal.org) wird nun nicht gewartet, bis die Seite komplett im CMS generiert wurde, sondern schon fertig erzeugte Bestandteile werden an den Browser geschickt. Fehlende Inhalte (welche durch Datenbankabfragen z.B. länger dauern) werden nun Stück für Stück an den Browser nachgereicht und per AJAX eingefügt. Einzelne Elemente blockieren nun nicht mehr den Aufbauvorgang einer komplette Seite.

Dynamischer Aufbau mit BigPipe

Funktionsweise BigPipe (via aquia.com)

Technisch gesehen wird dem Browser vereinfacht dargestellt die Webseite übertragen, jedoch nicht mit dem </body> Tag geschlossen, der Inhalt wird nach und nach eingefügt. In eine der kommenden Versionen des Drupal-Modules ist vorgesehen, dass die Webseite rudimentär bereits mit einem Wireframe aufgebaut wird, in welches dann die Inhalte einfach eingefügt werden.

Ist BigPipe für meine Drupal-Seite sinnvoll

Die Stärke von BigPipe besteht in der Vernachlässigung der Generierungszeit von einzelnen Bestandteilen einer Webseite. Wenn ihre Drupal-Seite die gleiche Seite an die Besucher ausgibt, das heißt keine dynamischen Inhalte enthält, dann greift bei Drupal 8 automatisch der PageCache und gibt die Seite mit nur wenigen Datenbankabfragen direkt aus. Pagecache ist dabei prinzipiell immer schneller als Bigpipe. Sobald sich durch dynamische Inhalte der Seiteninhalt jedoch ändert , beschleunigt Bigpipe die Ausgabe deutlich. Zusätzlich zu der tatsächlichen Beschleunigung ‚fühlt‘ sich die Seite für den Webseiten-Besucher noch viel schneller an, da relevanter Content meistens schnell dargestellt wird, während z.B. Widgets danach erst nachgeladen werden.

Vor allem für Drupal mit Shared-Hosting ist das Modul essentiell und sollte auf jeden Fall aktiviert werden.

BigPipe ersetzt dabei nicht Caching, sondern baut darauf auf.

Wie wird BigPipe koniguriert

Das Gute: Es ist keinerlei konfiguaration notwendig. Modul in Drupal herunterladen, aktivieren, fertig! In Gegensatz zu aufwändigen Cache-Lösungen wie Varnish handelt es sich bei BigPipe um ein Module was vollständig innerhalb von Drupal läuft, darum sind keine Änderungen am Webserver oder ähnliches notwendig.

Ausblick

BigPipe ist derzeit noch ein übliches Modul, die Pläne sind jedoch, es ab Drupal 8.1 in den Drupal-Core mit aufzunehmen; ab Drupal 8.2 soll es dann per default schon aktiviert sein. Das es ein elementares Modul für Drupal ist belegt allein die Tatsache, das BigPipe von Mitarbeitern von Aquia, der Firma hinter Drupal, entwickelt wurde. Laut Aussagen der Entwickler würde es einen Gegenwert von über 100000 Euro an Arbeitszeit darstellen.

Zusammenfassung, tl;dr

BigPipe ist ein Modul, welches die Ausgabe einer Webseite teilweise dramatisch beschleunigt. Generieren sie Webseiten mit dynamischen Inhalten so sollten sie meiner Meinung das Modul auf jeden Fall einsetzen.