Corona-Selbstabfrage: Eine Website, bitte schnell!

Corona-Selbstabfrage: Eine Website, bitte schnell!

Am Montag (16. März 2020) zur Mittagszeit erreichte uns die Anfrage des Roten Kreuzes OÖ, ob wir eine COVID-19-Selbstabfrage-Website bauen können. Man rechnet mit großen Zugriffszahlen, regelmäßigen Änderungen, die Funktion muss am Desktop und Smartphone zuverlässig sein… und wir müssen so rasch als möglich online gehen. Hier ein Kurzbericht, wie wir an die Sache heran gegangen sind.

13:03: Team-Zusammenstellung

Wir beginnen zu dritt - das erscheint uns als eine geeignete Team-Größe, um rasch vorwärts zu kommen und den Kommunikations-Overhead in Grenzen zu halten. Ich informiere Daniel und Philipp über die geplante Anwendung (natürlich per Videokonferenz) und wir verteilen die Aufgaben: Während Philipp sich um das Aufsetzen der Angular-Anwendung und GitHub kümmert, richtet Daniel Build-Pipeline und Continous Deployment mit Azure DevOps ein. Ich kümmere mich währenddessen um die inhaltliche Abstimmung und beginne, die Webseite in HTML/CSS umzusetzen.

13:25: Einrichtung eines Slack-Channels

Unser internes Kommunikations-Tool Slack spielt gerade in Zeiten von Home-Office eine entscheidende Rolle. Ein neuer Channel wird eingerichtet, ab sofort läuft die ganze schriftliche Kommunikation in Slack ab.

Slack-Channel

13:30: Betrieb in Azure

Die erste Entscheidung: Der Betrieb findet in Rechenzentren von Microsoft Azure statt. Aufgrund der schwer prognostizierbaren Zugriffszahlen - ein Tweet oder eine Presse-Aussendung kann binnen Minuten zu massiven Zugriffen führen - wollen wir hinsichtlich Skalierbarkeit und Verfügbarkeit auf der sicheren Seite sein. Darüber hinaus erscheint es uns als sinnvoll, das interne Netzwerk des Roten Kreuzes durch diese Website nicht zu belasten.
Um 13:30 ist die erste Web App erstellt, die vorerst unter einer internen Domain online geht.

15:52: Subdomain und SSL-Verbindung abgeschlossen

In Zusammenarbeit mit der IKT-Abteilung des Roten Kreuzes werden DNS-Einträge gesetzt, das SSL-Zertifikat ausgestellt und die Azure-Website unter der gewünschten Url covid.o.roteskreuz.at veröffentlicht.

17:31: Die Fragen sind fertig.

Die COVID-Fragen sind alle fertig und können durch das Rote Kreuz geprüft und freigegeben werden, außerdem wird an den Infotexten gearbeitet.

Nächster Tag, 11:10: Infotexte, Hotlines und Regeln sind freigegeben.

Wir erhalten alle Informationen, um die Website funktional fertig zu bauen: Infotexte werden übernommen, Regeln werden überprüft, Hotline-Telefonnummern ergänzt.

13:31: Performance- und SEO-Check mit Lighthouse

Wir beginnen mit unseren finalen Überprüfungen und nützen dafür zB Google Lighthouse. Es macht sich bezahlt, dass wir bei der Entwicklung versucht haben, möglichst schlanken, korrekten HTML-Code zu produzieren.

Lighthouse-Check

13:58: Testen auf verschiedenen Systemen

Die Website ist aus unserer Sicht fertig - aber es benötigt noch ausführliche Tests auf verschiedenen Browsern, Plattformen und Devices. Wir nutzen für solche Zwecke gern Browserstack - in diesem Fall habe ich aber zusätzlich einen Team-Aufruf in Slack gestartet. Binnen Minuten kamen Vorschläge, Bugs, erfolgreiche Testergebnisse und vieles mehr… ein großartiges Team!

Device-Tests

14:36: Automatisierte Tests

Um sicher zu gehen, dass die Regeln der Selbstabfrage auch durch zukünftige Änderungen nicht irrtümlich verändert werden, bauen wir automatisierte Tests. Bei jeder Sourcecode-Änderung werden diese vollautomatisch überprüft, eine neue Version geht nicht online, wenn nicht alle Tests erfolgreich durchlaufen.

Automatisierte Tests Automatisierte Tests

15:48: Monitoring mit Application Insights

Wir überwachen die Anwendung mit Hilfe von Application Insights, haben regelmäßige Health-Checks und einige Alert-Meldungen aktiviert. So werden wir zukünftig informiert, wenn überraschende Fehlermeldungen oder Ausfälle passieren.

Monitoring mit Application Insights

16:07: Lasttests

Um sicher zu gehen, dass die Website einen etwaigen Ansturm aushält, starten wir einen letzten Lasttest und sehen: Unsere Server sind gerüstet. Über 2.000 Requests/Sekunde können in 0.2 Sekunden ausgeliefert werden - und wir sind damit noch lange nicht im Grenzbereich.

Performance-Tests

17:02: Visual Ping, um bei Änderungen benachrichtigt zu werden

Wir übernehmen einige Informationen von der offiziellen Seite des Gesundheitsministeriums - und möchten Änderungen rasch erfahren. Das webbasierte Tool visualping ermöglicht genau diese Funktionalität und prüft in regelmäßigen Zeitabständen mittels Screenshot oder Textvergleich, ob Änderungen stattgefunden haben.

visualping

17:15: Wir sind fertig.

Die Website ist online: https://covid.o.roteskreuz.at - und wir hoffen, dass sie dazu beitragen kann, die Gesundheitshotline 1450 etwas zu entlasten (auch andere Organisationen haben übrigens ähnliche Webseiten bereitgestellt, zB die Leitstelle Tirol oder der 144 Notruf NÖ).

Gerry Foitik, Bundesrettungskommandant des Roten Kreuzes und Sonderberater der Task Force des Gesundheitsministeriums, twittert am Mittwoch über die COVID-Selbstabfrage - zahlreiche Retweets sind die Folge.

Twitter

Es war uns eine Ehre, mit unseren technischen Möglichkeiten zu unterstützen - und ich denke, wir haben trotz der notwendigen Eile eine sehr professionelle, stabile und skalierbare Anwendung bereitgestellt.

Viel Gesundheit, alles Gute und Zuversicht in diesen Tagen!