Das Bundesamt für Statistik (BFS) ist das nationale Kompetenzzentrum der öffentlichen Statistik der Schweiz. Es produziert und publiziert statistische Informationen über den Stand und die Entwicklung von Bevölkerung, Wirtschaft, Gesellschaft, Bildung, Forschung, Raum und Umwelt.
Kunde im Rahmen des Projekts «Wahlwebsite zu den Parlamentswahlen 2019» war die Sektion POKU des BFS. Sie ist verantwortlich für die Publikation der offiziellen Resultate der nationalen Wahlen (National- und Ständeratswahlen), welche alle 4 Jahre stattfinden.
Um die Wahlresultate am Wahlsonntag sofort und live nach dem Bekanntwerden publizieren zu können, brauchte die Sektion POKU einen leistungsfähigen Webauftritt bestehend aus einer modernen, flexiblen Microsite und dem regulären Webauftritt auf der Website des BFS. Der starke Aktualitätsbezug (Live-Daten am Wahlsonntag) und die hohe Publikationsfrequenz an einzelnen Tagen stellen andere Anforderungen an eine Website, als die Standardveröffentlichungen auf dem Statistikportal des BFS.
Sowohl die Einstiegsseite wie auch die interaktiven Grafiken sollten die folgenden Eigenschaften erfüllen:
Nach dem Zuschlag der öffentlichen Ausschreibung entwickelte Snowflake eine auf Open-Source-Technologien basierende Lösungsarchitektur, die den technischen und betrieblichen Herausforderungen gerecht wird. Die Architektur trennt zwischen einem Server zur Aufbereitung der Daten, sowie mehreren Servern, die parallel alle Nutzeranfragen bearbeiten. Um die Lastverteilung flexibel und feingranular steuern zu können, setzte Snowflake auf eine hyperkonkvergente Serverinfrastruktur. Nicht nur die Serverressourcen konnte schnell und flexibel pro Server gesteuert werden, sondern auch die Anzahl Server konnte beliebig nach oben skaliert werden. Die Lastverteilung wird mittels DNS-Service gesteuert. Zu diesem Zweck hat Snowflake die DNS-Verwaltung am Wahlwochenende übernommen. Effektive waren acht Server über drei Schweizer Rechenzentren im Einsatz, um prognostizierte Peaks von 10'000 User pro Stunde bedienen zu können.
Aus Sicht der Performance war es nicht nur wichtig schnelle Antwortzeiten zu erreichen, sondern gleichzeitig auch die Menge der auszuliefernden Daten zu reduzieren. Der Cache mittels Varnish stellt die schnelle Reaktion sicher, während die Datenmenge durch das Aufbereiten und Ausliefern von statischen Daten reduziert wurde.
Für die Wiederverwendbarkeit der Daten auf Dritt-Websites stellte Snowflake JavaScript Widgets, die per Iframe eingebunden werden konnten, zur Verfügung. So konnten interessierte Medien wie z.B. Blick.ch, die Widgets im Vorfeld auf ihren Seiten integrieren. Die aktuellen Wahldaten wurden anschliessend direkt von den Servern der Snowflake bezogen.
Um alle Komponenten entsprechenden Stresstests zu unterziehen und die Gesamtarchitektur unter voller Belastung zu überprüfen, wurden zur Qualitätssicherung im Vorfeld Lasttests durchgeführt. Auf Basis der Ergebnisse konnte die finale Dimensionierung der Serverressourcen definiert werden.
Jeder Plan ist nur so gut wie der Notfallplan. Daher leistete Snowflake Pikettdienst zur aktiven Überwachung, Skalierung und die Möglichkeit Notfallszenarien zu aktivieren, falls die Umstände es erfordert hätten.