30.09.2021 | Business Intelligence

Wahlergebnisse als Realtime WebApp in wenigen Tagen?

5 Leitfragen für die erfolgreiche Entwicklung einer WebApp mithilfe der Microsoft Azure Cloud & Python
Braincourt GmbH

Stellen Sie sich folgende Situation vor: Eine vorgezogene Gemeinderatswahl findet statt und die Wahlbehörde wünscht sich kurzfristig ein öffentliches Realtime-Dashboard mit den aktuellen Wahlergebnissen. Alle vorläufigen Wahlergebnisse werden im Fünfminuten-Takt angeliefert. Diese Rohdaten sollen dann auf einer öffentlichen Website in Form von aktuellen, interaktiven Grafiken dargestellt werden, um die Bürger live über das Wahlergebnis zu informieren. Die Lösung soll binnen weniger Tage umgesetzt sein. Ist die Entwicklung einer Echtzeit-Web-Applikation in so kurzer Zeit möglich?

Wir zeigen in diesem Blogbeitrag, wie dies gelingen kann – am Beispiel des skizzierten Use-Cases und mithilfe von fünf Leitfragen. Ihre Beantwortung ermöglicht es, für das geplante Vorhaben geeignete Tools zu wählen und diese intelligent zu verknüpfen – Technology follows business.

#1 Wie werden die Daten verarbeitet?

Für das initiale Data Engineering stellen sich die zentralen Fragen:

  1. Welche Daten werden geliefert?
  2. Auf welche Weise?
  3. Und wie oft?

Komplexe und wechselnde Datenstrukturen sowie eine hohe Frequenz der Datenlieferung sind hierbei übliche Herausforderungen. Mit ihnen steigt der Komplexitätsgrad der IT-Lösung.

Im konkreten Use-Case wird die Microsoft Azure Cloud als Technologiebasis gewählt. Alle notwendigen Services sind in der reinen Cloud-Applikation vorhanden.

Abb. 1: Deployment-Kette in Microsoft Azure

Alle fünf Minuten wird die Datei mit den vorläufigen Wahlergebnissen auf einen BLOB-Storage geladen. Ein Python-Script liest und verarbeitet diese Daten. Für die interaktive Bedienung der WebApp wird ebenfalls Phyton eingesetzt. Die Applikation läuft als Docker Container in einer WebApp.

#2 Wie werden die Ergebnisse dargestellt?

Für eine anschauliche Visualisierung der Ergebnisse soll die WebApp auf der Website eingebunden werden. Dabei stellen vor allem sehr interaktive und responsive Websites eine Herausforderung dar. Filter- und Analysemöglichkeiten oder komplexe Menüführungen sollten sich auch in der WebApp-Lösung widerspiegeln. Im mobilen Zeitalter gilt es außerdem zu berücksichtigen, dass die WebApp vermutlich nicht nur auf dem Desktop, sondern auch auf mobilen Geräten aufgerufen wird.

Im konkreten Use-Case reichert die Python-Applikation die Rohdaten mit entsprechenden Style-Tags und Formatierungen an und generiert individuelle Grafiken als Dash-Responsive. Auf diese Weise ist eine ansprechende Darstellung sowie eine intuitive Bedienung der WebApp gewährleistet.

#3 Wie kommt die Applikation ins öffentliche Netz?

Benutzer erwarten heute von Internetseiten und Apps eine gesicherte Verfügbarkeit sowie stabile und schnelle Zugriffszeiten. Insbesondere bei Projekten mit einer sehr hohen Öffentlichkeitswirksamkeit ist eine schnelle, sichere und stabile IT-Lösung extrem wichtig. Zudem empfiehlt sich für den gesicherten Betrieb ein automatisiertes Monitoring der WebApp.

In unserem Use-Case wird die Applikation in einen Docker Container verpackt und auf die Azure Cloud gepushed. Die WebApp holt sich das Docker-Image und steht für Requests zur Verfügung. Die Ausgabe der WebApp ist bereits das fertig gerenderte HTML mit allen Grafiken aus den aktuellen Daten.

Der laufende Betrieb wird live gemonitort. Zusätzlich wurden Alerts eingerichtet, um schnell reagieren zu können. Sobald die Zugriffszeit auf die Website eine Sekunde überschreitet oder wenn mehr als zehn Web-Fehler innerhalb von fünf Minuten auftreten, wird eine SMS an das Operating versendet.

#4 Wie kann ich flexibel auf kurzfristige Änderungswünsche reagieren?

Damit man auf geänderte Rahmenbedingungen rasch reagieren kann, ist es wichtig, Möglichkeiten zur kurzfristigen Anpassung zu schaffen, ohne dabei Systemausfälle zu riskieren. Dies gilt es am besten bereits in der Architektur, der Technologiewahl und den Prozessen berücksichtigen.

Auch im Fall der WebApp zur Gemeinderatswahl wird eine entsprechende Möglichkeit vorgesehen, auf benötigte oder gewünschte Änderungen flexibel reagieren zu können. Die Anpassungen werden als lokales Docker-Image wieder auf Azure gepushed und stehen automatisch durch einen WebHook in der App zur Verfügung.
#5 Wie reagiert die WebApp unter Last?

Kein Ausrollen ohne Test – das gilt wohl für jede IT-Lösung. Gerade bei öffentlichkeitswirksamen Ereignissen braucht es eine gute Performance der Applikation mit schnellen Zugriffszeiten. Ein Lasttest im Vorfeld schafft zusätzliche Sicherheit.

So auch im konkreten Use-Case: Ein Test mit 1.000 gleichzeitigen Web Requests wird aufgebaut und durchgeführt. Hier kommt der Vorteil zum Tragen, dass – je nach aufkommendem Traffic – die Realtime WebApp skaliert werden kann. Bei der einfachsten und kostengünstigsten Skalierung zeigen sich bei zehn Zugriffen noch sehr gute Reaktionszeiten. Bei 1.000 gleichzeitigen Zugriffen sieht das schon ganz anders aus: Es werden zwar problemlos alle Requests verarbeitet, die Response-Time liegt allerdings bereits bei drei Sekunden; ideal sind 30 bis 100 Millisekunden. Mit einer höheren Skalierung ergeben sich sehr gute Zugriffszeiten von 25 Millisekunden.

Fazit zur Realtime WebApp

Der vorliegende Use-Case zeigt: Eine einfache Web-Applikation kann recht schnell entwickelt werden und als reine Cloud-Lösung in Azure vergleichsweise einfach eingerichtet werden. Ein großer Vorteil ist die Skalierung je nach Traffic und die angepasste Kostenkontrolle.

Haben wir Ihr Interesse geweckt?
Sie möchten tiefer in die technischen Details des konkreten Use-Cases einsteigen? Hier erfahren Sie mehr.
USE-CASE
array(7) { ["post_type"]=> string(4) "post" ["orderby"]=> string(4) "date" ["order"]=> string(4) "DESC" ["posts_per_page"]=> int(-1) ["cat"]=> int(4) ["post_status"]=> string(7) "publish" ["post__not_in"]=> array(1) { [0]=> int(326) } }

Treasury Management – zwei ...

Die globalisierte Geschäftswelt stellt Unternehmen insbesondere im Hinblick auf die ständige Überwachung ihrer Liquiditätskennzahlen vor große Herausforderungen. Vor allem im Treasury- und Risk-Management ergeben sich ...
Mehr Informationen →

Analytics mit SAP S/4HANA ...

Viele Unternehmen befinden sich derzeit in Transformationsprojekten aus der alten ERP-Welt hin zu SAP S/4HANA oder planen eine Einführung des Systems innerhalb der nächsten Jahre. ...
Mehr Informationen →

Nutzen von Business Intelligence: ...

Um Projektbewertungen zu vereinfachen und den Nutzen von Business Intelligence sichtbar zu machen, haben wir ein Bewertungsmodell entwickelt. Die monetäre Quantifizierung und Projektbewertung werden dadurch ...
Mehr Informationen →

Ihre Migration auf Infor ...

Warum Sie vor der Migration auf Infor d/EPM 12 nicht zurückschrecken müssen – unser Erfahrungsbericht
Mehr Informationen →

Demokratisierung der Daten

5 Faktoren, die für eine erfolgreiche Kultur der Daten essenziell sind
Mehr Informationen →

Planung next level

Mit der bidirektionalen Anbindung von SAP Data Warehouse Cloud und SAP Analytics Cloud
Mehr Informationen →

DashSPORTS: Wimbledon

Spiel, Satz und Sieg – Tennis Wimbledon 2022 unter die Lupe genommen
Mehr Informationen →

SAP BO auf SAP DWC

So gelingt der Wechsel
Mehr Informationen →

Jahresberichte mit IBCS

In 5 Schritten zu einem guten Reporting mit den IBCS Standards
Mehr Informationen →

SAP on premise vs. ...

Was kann die SAP Data Warehouse Cloud?
Mehr Informationen →

Power BI oder Tableau?

Self-Service BI-Tools im Vergleich
Mehr Informationen →

User Experience Driven BI

3 Gründe, warum UX Design für erfolgreiche BI Applikationen essenziell ist
Mehr Informationen →

Mit Excel Add-in Ihre Daten analysieren

Eine Anleitung in 3 Schritten
Mehr Informationen →

IBM Planning Analytics with ...

3 Gründe noch dieses Jahr zu migrieren
Mehr Informationen →

Automatisieren oder assistieren?

Welcher Trend bestimmt das Future Work im Controlling?
Mehr Informationen →

Digitaler Controllingassistent

Diese 7 Kriterien sollten Sie bei der Einführung eines Sprachassistenten im Controlling beachten
Mehr Informationen →