Zur Übersicht

«Sulu CDN» – der Internetbeschleuniger für Stickermanager.com

Alexander Schranz
Alexander Schranz Aktualisiert am 17. Aug. 2020
Sulu-meets-Stickermanager

Digitale Inhalte sind für viele Unternehmen noch immer eine große Herausforderung: Je größer die Datenmengen und der Traffic, desto schneller stoßen herkömmliche Methoden – wie das Server-Client-Prinzip – an ihre Grenzen. Spätestens, wenn die Website global ausgerichtet wird, ist ein Content Delivery Network (CDN) ein Muss.

Bei einem CDN handelt es sich um ein Netzwerk von Proxy Server, das dynamische und statische Objekte speichert (cached) und ausliefert – wie Bilder, JavaScript oder CSS Dateien. Diese Server – auch Knoten genannt (!) – sind weltweit verteilt und über das Internet miteinander verbunden. Der Abstand zwischen Nutzer und Inhalten wird damit verringert und die angeforderten Dateien können schneller verteilt werden.

Wie funktioniert ein Content Delivery Network?

Ein CDN-Knoten funktioniert meist nach dem Reverse Proxy Prinzip. Das heißt, eine Ressource wird angefordert und direkt überprüft, ob diese schon gespeichert ist. Wenn das nicht der Fall ist, werden die Dateien vom WebServer heruntergeladen und direkt ausgeliefert. Ab diesem Zeitpunkt ist die Datei auf dem CDN-Knoten gespeichert. Es muss keine Anfrage mehr an den WebServer gestellt werden.

Im Unterschied zu einem einfachen Reverse Proxy wird die Datei anschließend über das CDN Netzwerk an die anderen CDN-Knoten verteilt – oder direkt von dem jeweiligen Server geholt, der die Ressource benötigt. In beiden Fällen – bei einem einfachen Reverse Proxy und einem CDN – ist der eigentliche WebServer entlastet und muss sich nicht mehr um die meist leistungsfressenden Anfragen kümmern (wie das Ausliefern ´ großer Bilder und Video-Dateien).

Sulu meets CDN

Mit über 160.000 registrierten Nutzern ist Stickermanager.com die größte Online-Tauschbörse für Sticker und Trade-Cards. Die Tauschbörse basiert auf der Content Management Plattform Sulu. Damit ein schneller Tausch zwischen den Nutzern möglich ist, haben wir bei diesem Projekt zusätzlich ein CDN implementiert:

  • Inhalte werden in kürzester Zeit zur Verfügung gestellt
  • der WebServer – auf der die Applikation läuft – wird effizient entlastet

Bei Stickermanger haben wir uns für den Anbieter fastly entschieden, der vor allem durch seine bekannten Referenzen überzeugt. Es gibt hier aber auch zahlreiche weitere Anbieter – wie MaxCDN, Amazon CloudFront oder CloudFlare.

Die Implementierung – so funktioniert's

Bevor wir das CDN implementieren können, benötigten wir eine eigene Domain oder Subdomain. Wir haben uns für cdn.stickermanager.com entschieden und anhand der Vorgaben von fastly eingerichtet. 

In Sulu können wir die neue Domain dann einfach zu unserer Webspace Konfiguration hinzufügen. Je nach CDN-Anbieter wird der WebServer direkt über die IP aufgerufen oder über die neu registrierte Domain – das heißt, entweder kann die IP oder die Domain hinzugefügt werden.

Die Webspace Konfiguration findet man unter app/Resources/webspaces/ – in unserem Beispiel stickermanager.xml. Bei dem jeweiligen Portal fügt man nun folgende Zeile hinzu.

cdn.stickermanager.com/{localization}

Da nun alle statischen Inhalte über die CDN-Domain eingebunden werden, müssen wir zusätzlich die Domain in unserer `Asset` Konfiguration eintragen. Hierfür geben wir in der Website Konfiguration (app/config/website/config_prod.yml) folgende Konfiguration ein.

 framework:
    templating:
        assets_version: '1'
        assets_base_urls:
            http: ['http://cdn.stickermanager.com']

Anschließend werden die Inhalte – die über den CDN geladen werden sollen –über die Symfony Asset Funktion eingebunden.

 {% stylesheets '@StickermanagerBundle/Resources/public/style.css' %}
{% endstylesheets %}

oder

Ab diesem Moment werden die Inhalte mit http://cdn.stickermanager.com/... eingebunden und damit über den CDN gecached und ausgeliefert. Der Webserver wird entlastet und verfügt jetzt über mehr Ressourcen für die Verwaltung der App.

Meint Tipp für kleine Projekte

Bei kleineren Projekten – bei denen sich ein CDN nicht rentiert oder wegen der niedrigen Anzahl der Nutzer nicht gerechtfertigt ist – sollte man zumindestens auf eine Static Domain Implementierung zurückgreifen. In den meisten Domain Verwaltungen kann man Subdomains kostenlos anlegen.

Die Vorteile:

  • Für die Static-Domain-Variante fallen keine weiteren Kosten an.
  • Browser kann mehr Inhalte zur gleichen Zeit herunterladen – somit wird die Webseite oder Applikation im Browser schneller geladen. 

Allerdings werden die Dateien immer noch direkt ausgeliefert – das heißt: keine Entlastung für den WebServer. Die Implementierung der Static Domain erfolgt auf dieselbe Weise wie beim CDN.

Alexander Schranz
Alexander Schranz
Junior Web Developer