Die Webseite des Sportvereins wird auf Azure betrieben.
Einführung
Der Sportverein erhält einen Sponsoringbeitrag von Microsoft für ihre Cloud Plattform Azure. Damit dieser Beitrag effektiv genutzt wird, haben wir unsere Webseite umgestellt und auf Azure migriert.
Eigentlich ist Azure nicht zum Betrieb solcher Internetseiten gedacht, wir sind schlichtweg viel zu klein. Azure ist ausgelegt auf grosse Internetseiten, die für mehrere Millionen Menschen aus diversen Regionen verfügbar sein muss. Zum Beispiel grosse Onlinehändler die ihren Shop online betreiben.
Dennoch gibt es Dienstleistungen von dene auch wir profitieren können und unsere kleine Webseite laufen lassen können.
Architektur
Unsere Webseite benutzt, wie rund 40% aller anderen Webseiten, die es im Internet gibt, WordPress. WordPress ist ein freies Content Management System (CMS) und hat uns bis jetzt noch nicht enttäuscht. Gerade weil WordPress so populär ist, bietet Microsoft auf Azure dafür einen fixfertigen Service an. Sie haben sogar einen Architekturvorschlag, wie eine Webseite mit WordPress in Azure betrieben werden kann (oder soll).

Natürlich ist unsere Seite nicht genau so aufgebaut. Zum Beispiel benützen wir keine Azure Front Door, ein Mix aus Content Delivery Network (CDN), Load Balancer und Web Application Firewall (WAF). Natürlich ist Sicherheit ein wichtiger Aspekt, der für eine Azure Front Door spricht, aber für unsere Webseite, die nicht hochverfügbar sein muss und keine kritischen oder sensiblen Daten speichert, wäre es zu viel des Guten. Es spielt für uns keine Rolle, wenn die Seite mal fünf oder zehn Sekunden laden muss, oder sogar mal nicht funktioniert.
Komponenten
- Der App Service ist das Webhosting, also der Server, auf dem die Webseite läuft.
- Der Flexible Server hosted die Datenbank, wo Beiträge, Kalendereinträge und Inhalt der Seiten gespeichert werden.
- Der Blob Storage speichert Bilder und Dateien und agiert als CDN.
Installation
Wenn alle Dienste in Azure aufgesetzt sind und laufen, kann WordPress darauf installiert werden. Wir machen uns das ganze etwas einfacher, damit wir möglichst wenig Aufwand haben. App Services können nämlich Docker Images ausführen und Microsoft hat ein vorbereitetes Image für WordPress, also benutzen wir doch einfach das.
Zusätzlich zu WordPress sind im Image noch ein paar Plugins dabei, damit alles korrekt funktioniert und mit den anderen Azure Diensten integriert.
Somit ist die Installation auch schon erledigt. Sobald der App Service gestartet wird, lädt er die neuste Version des Images herunter und startet es. Ein kompletter Neustart kann darum also eine gewisse Zeit dauern.
Troubleshooting
Ganz ohne Probleme hat es jedoch nicht funktioniert.
Kalender zeigt nur einen Eintrag
Unser Kalender Plugin wollte am Anfang nicht richtig funktionieren. Das Problem? Es wurde nur immer ein einziger Kalendereintrag auf der Seite angezeigt. Egal wie viele Einträge vorhanden waren oder welche Ansicht gewählt wurde.
Nach etwas Recherche und einem Vergleich mit einer funktionierenden Installation fiel auf, dass die ID-Nummern der Veranstaltungen in der Datenbank falsch waren. Ursache war ein falsches Tabellenschema, das dazu führte, dass die IDs nicht inkrementiert wurden. Auf dem Datenbankserver war die Option sql_generate_invisible_primary_key aktiviert, die beim Installationsvorgang des Plugins zu Problemen führte.
Nach dem die Option deaktiviert wurde und das Plugin neu installiert wurde, funktionierte alles wie gewohnt.
Abschluss
Das Resultat lässt sich sehen. Die Webseite funktioniert, sie ist ähnlich schnell und hat das Potenzial zu skalieren. Alles in allem also eine gelungene Migration. Und solange es niemand bemerkt, heisst das schon viel.