zurück zum Artikel

Das Hochwasserportal für das Land Niedersachsen in Windows Azure

Architektur/Methoden
Das Hochwasserportal für das Land Niedersachsen in Windows Azure

Das Thema Cloud Computing findet in den Medien viel Beachtung. Doch viele Unternehmen, und gerade auch der öffentliche Dienst in Deutschland, sind eher zurückhaltend, wenn es darum geht, Daten an einen Dienstleister oder gar außer Landes zu geben. Das Projektbeispiel des niedersächsischen Hochwasserportals zeigt hingegen, wie die sinnvolle Cloud-Erweiterung eines In-House-Systems aussehen kann.

Der Niedersächsische Landesbetrieb für Wasserwirtschaft, Küsten- und Naturschutz (kurz NLWKN) entstand zum 1. Januar 2005 aus dem Zusammenschluss mehrerer bislang selbstständiger Landesbehörden des Ministeriums für Umwelt und Klimaschutz. Zu den Aufgaben des NWLKN gehören Planung, Bau, Betrieb und Unterhaltung landeseigener Anlagen und Gewässer sowie der Naturschutz und die radiologische Überwachung. Insgesamt 1400 Mitarbeiter arbeiten in der NLWKN-Direktion sowie landesweit in elf NLWKN-Betriebsstellen an 15 Standorten.

Zu den Aufgaben des NLWKN gehört die laufende Überwachung von Flüssen, Kanälen und Gräben auf insgesamt 30.000 Kilometern Länge sowie die Warnung vor Hochwasser und daraus resultierenden Überflutungen mit dem Ziel, Personen und Sachschäden zu verhindern oder zumindest zu reduzieren. Die Zeiten des Ablesens von Messlatten sind vorbei: Heutzutage ermitteln vollautomatische Pegelmessstellen alle paar Minuten den aktuellen Wasserstand. In der Regel findet man an einer Messstelle zwei oder drei Messwertgeber, die parallel mit verschiedenen technischen Verfahren messen und die ermittelten Daten auf verschiedene Weise versenden, zum Beispiel per ISDN oder GPRS.

Die Informationen über die Pegelstände kann jedermann auf der Pegelonline-Website [1] sowie über eine iPhone-App (Android und Windows Phone geplant) kostenfrei abrufen. Abbildung 1 zeigt die Bing Maps nutzende Karte mit der Gesamtübersicht über alle veröffentlichten Pegel des Landes Niedersachsen. Abbildung 2 zeigt die Detailansicht eines Pegels mit der Möglichkeit, den Wasserstand der letzten 24 Stunden, sieben oder 30 Tage zu visualisieren.

Die angezeigten Daten können ohne rechtliche Bedenken im Ausland lagern und von dort ausgeliefert werden, weil es sich um öffentliche Daten handelt, die nicht den Begrenzungen des Datenschutzgesetztes oder anderer Gesetze unterliegen.

Webportal zur Abfrage von Pegelständen (Abb. 1)
Webportal zur Abfrage von Pegelständen (Abb. 1)
Detailansicht des Pegels Peine: Am 22. Mai 2013 wurde die Meldestufe 1 überschritten. (Abb. 2)
Detailansicht des Pegels Peine: Am 22. Mai 2013 wurde die Meldestufe 1 überschritten. (Abb. 2)

Musterfall für die Cloud

In sogenannten "Friedenszeiten", also bei normalem Wasserstand, ist die Pegel-Online-Website nur wenig frequentiert. Im Hochwasserfall steigt das Interesse an den Daten allerdings enorm an. Nutzer sind neben den Katastrophenschutzdiensten auch die Binnenschifffahrt, Landwirte, Besitzer von Industrieanlagen und Häusern.

Würde man die Website und die für die Apps notwendigen Webservices auf klassische Weise selbst oder bei einem Provider hosten, müsste man viele leistungsfähige Server für Extremsituationen, wie die "Jahrhundertflut" an Elbe und Donau 2003, vorhalten. Einige dieser Server wären abgeschrieben (oder sogar hoffnungslos veraltet), bevor sie jemals zum Einsatz kämen. Der Einsatz von Cloud Computing liegt also nahe, da nur tatsächlich verwendete Rechenzeiten, Speicherressourcen und Übertragungskapazitäten zu bezahlen sind.

Das Interesse an der Website soll noch steigen, wenn bald neben einer Tendenz echte Vorhersagen veröffentlicht werden: Die 2009 eingerichtete Hochwasservorhersagezentrale (HWVZ) in NLWKN will zukünftig die im Modellsystem "Panta Rhei" ermittelten Vorhersagedaten der Öffentlichkeit zugänglich machen.

Neben der Skalierbarkeit spricht auch die Hochverfügbarkeit für das Cloud Computing, bei dem sich Server auf mehrere Rechenzentren in verschiedenen Ländern oder sogar auf verschiedenen Kontinenten verteilen lassen und sich auch der "Untergang" eines Rechenzentrums verkraften lässt. Da .NET die zentrale Softwareentwicklungsplattform des NLWKN ist und dort auch andere Microsoft-Produkte im Einsatz sind, lag es nah, sich für Windows Azure als Cloud-Plattform zu entscheiden.

Umsetzung

Von der Messstelle zur Cloud

Auch wenn die Website stets den Wasserstand mit nur 15 bis 30 Minuten Verzögerung zeigt, ist der Weg der Daten weiter und komplexer, als sich vermuten lässt, denn der größere Teil des Betriebsdateninformationssystems (BIS) des NLWKN arbeitet nicht in der Cloud, sondern im hauseigenen Rechenzentrum. Dort steht eine Serverfarm, die zunächst einmal die Daten von den eigenen Pegelmessstellen abruft (Pull-Verfahren) oder entgegennimmt (Push-Verfahren). Für den Datenabruf wird unter anderem eine mit Linux laufende Appliance benötigt. Hinzu kommen Wetterdaten, die das NLWKN zum Teil selbst misst oder vom Deutschen Wetterdienst (DWD) bezieht. Der DWD liefert darüber hinaus die Wettervorhersage für die nächsten 24 Stunden, denn Niederschlag und Schneeschmelze sind entscheidend für die Vorhersage der Pegelstände in den darauf folgenden Stunden.

Die hausinternen Server importieren und prüfen die Daten im Hinblick auf ihre Plausibilität. Außerdem finden Umrechnungen statt, wie das Bestimmen des Wasserdurchflusses in Quadratmetern aus dem gemessenen Wasserstand in Zentimetern. Über eine selbstentwickelte Windows-Anwendung (mit Windows Presentation Foundation, WPF) oder verschiedene externe Fachanwendungen können die Pegelarbeiter und die Hochwasservorhersagezentrale die Daten betrachten, vergleichen, für Vorhersagen verwenden und bei Bedarf offensichtliche Messfehler korrigieren. Für den Internetauftritt ermittelt das Betriebsdateninformationssystem jedoch selbstständig und ohne Benutzerinteraktion einen sinnvollen Wert, den es dann per Webservices an die in der Cloud betriebene Website sendet (s. Abb. 3). Das Cloud-System kann umgekehrt Daten an die lokale Infrastruktur liefern. Derzeit sind es nur Daten über die eigene Auslastung, denkbar ist aber auch die Registrierung von Benutzern zur Alarmierung mit E-Mail und Telefax, die von der In-House-Struktur ausgeführt wird.

Architektur des Betriebsdateninformationssystems (Abb. 3)
Architektur des Betriebsdateninformationssystems (Abb. 3)


Das In-House-System speichert aktuell 2,8 Milliarden Messdaten bei einem täglichen Zuwachs von 3,5 Millionen Datensätzen. Ein Messdateneintrag besteht aus einem Zeitpunkt, einem Messwert und erweisen auf Masterdaten, die die Herkunft und Bedeutung der Messdateneinträge klären. Eine Reihe von Messdateneinträgen bezeichnet das System als eine Datenspur. Das Datenbankschema ist flexibel und daher nicht nur für hydrologische und meteorologische Daten, sondern jegliche Form von Messdaten geeignet.

SQL Server versus Table Storage

Als Datenbank kommt bisher SQL Server 2008 R2, zukünftig SQL Server 2012 zum Einsatz. Der Optimierung der Datenbankzugriffe kam bei der zu verwaltenden Datenmenge eine besondere Bedeutung zu. 95 Prozent der Datenzugriffe erfolgen über Microsofts Objekt-Relationalen-Mapper Entity Framework. Nur in etwa 5 Prozent der Fälle mussten andere Verfahren wie Stored Procedures, Bulk Import oder direkte SQL-Befehle eingesetzt werden, die einen unmittelbaren und daher schnelleren Draht zur Datenbank bieten.

Im Cloud-System ist die Datenmenge wesentlich geringer, da hier keine Rohdaten, sondern nur geprüfte Daten bereitstehen. Windows Azure bietet auch eine abgespeckte Version des SQL Server als Datenspeicher unter dem Namen Windows Azure SQL Database [2] an, die man direkt befüllen oder via SQL Data Sync [3] mit lokalen SQL-Server-Datenbanken synchroniseren kann. Im Hochwasserportal des NLWKN fiel die Wahl aber auf die Redmonder Implementierung einer nicht-relationalen NoSQL- Datenbank, den Windows Azure Table Storage. Neben schnelleren Zugriffszeiten bietet Microsoft beim Table Storage auch einen viel günstigeren Preis. Der Preiskalkulator [4] in Abbildung 4 zeigt für 150 GByte im Table Storage einen Preis von 10,62 Euro im Monat. Für die gleiche Datenmenge in SQL Azure wäre monatlich fast 16-mal so viel fällig. 150 GByte sind auch das Maximum, was man in einer SQL-Azure-Datenbank speichern kann. Bei Table Storage kommt man hingegen bis 100.000 GByte und muss mit Mengenrabatt 5605,57 Euro im Monat zahlen. Beim Verzicht auf geografische Redundanz in mehreren Kontinenten sinkt der Preis für 150 GByte Table Storage sogar auf 7,82 Euro/Monat.

Der Preiskalkulator für Windows Azure (Abb. 4)
Der Preiskalkulator für Windows Azure (Abb. 4)


Die vom In-House-System gelieferten Messdaten wandern in Windows Azure nicht sofort in die
Datenbank, denn absolute Priorität hat der Lesezugriff auf die Daten. Der Benutzer der Website soll lieber Daten sehen, die älter als 30 Minuten sind, statt gar keine Daten vorzufinden, denn Wasserstandsdaten ändern sich nicht so rasant. Daher landen alle neuen Messdaten zunächst im Rahmen einer "Azure Worker Role" in einer Warteschlange (vgl. Queue Services Concepts [5]), die die Daten dann sukzessive im Table Storage ablegt.

Eine "Web-Rolle" hostet dann die in ASP.NET geschriebene Website sowie Webservices auf Basis der Windows Communication Foundation (WCF), die Daten zu Gadgets und Apps liefern.

Automatische Skalierung

In Friedenszeiten nutzt das NLWKN nur vier Server, jeweils zwei Instanzen für die Worker-Rolle und zwei Instanzen für die Web-Rolle. Das reicht, damit Microsoft eine Verfügbarkeit von 99,95 Prozent im Service Level Aggreement [6] (SLA) zusichert. Die Server langweilen sich meist. Sollte aber im Hochwasserfall das Interesse steigen und die Server vorher definierte Belastungsgrenzen überschreiten, sorgt ein eigens für den Zweck entwickelter "Scale Agent" für die vollautomatische Hinzubuchung weiterer Server. Die Bereitstellung weiterer Server dauert nur 10 bis 15 Minuten. Microsoft bietet für die komplette Verwaltung der Server eine API auf Basis von REST-Webservices zum Zugriff auf die sogenannten Azure Management Services [7]. Die definierbaren Schwellenwerte können sich auf Aspekte wie CPU-Auslastung, freien Hauptspeicher, Anzahl der Anfragen pro Sekunde oder auf die Anzahl der Anfragen pro Sekunde, die sich nicht sofort beantworten ließen, beziehen. Beim Unterschreiten von Schwellenwerten erfolgt ebenfalls automatisch die Freigabe von Servern.

Der Scale Agent wird auf einer der verfügbaren Worker-Instanzen in der Cloud selbst ausgeführt. Wird dieser Server heruntergefahren oder stürzt der Scale Agent aus irgendeinem Grund ab, übernimmt eine andere Instanz dessen Aufgabe (Failover). Er ließe sich jedoch auch in einer eigenen Rolle mit eigenen Instanzen ausführen.

Außerdem ist ein manuelles Skalieren über das Azure Management Portal [8] möglich. Auch die selbstentwickelte WPF-Anwendung für Pegelbearbeiter und HWVZ erlaubt die Steuerung der Skalierung. Zielsetzung ist es, die Nutzungsgebühren so niedrig wie möglich zu halten, indem nur wirklich benötigte Ressourcen in Anspruch genommen werden, wobei Rechenzeit stundenweise abgerechnet wird. Microsoft bietet neben der Möglichkeit der Abrechnung am Monatsende auch Prepaid-Tarife an.

Fazit

Für den Einsatz von Cloud Computing ist das Hochwasserportal des Landes Niedersachsen ein Musterfall. Die Kosten für den Betrieb der Entwicklung in Windows Azure sind weit geringer als bei der Anschaffung und der Instandhaltung einer eigenen, auf den Extremfall ausgelegten Serverfarm. Auch rechtlich gibt es hier keine Restriktionen, denn die in der Cloud veröffentlichten Daten sind sowieso für die breite Öffentlichkeit bestimmt.

Die Umstellung der ursprünglich nicht für die Cloud vorgesehenen Website auf Windows Azure war mit geringem Aufwand möglich, da Microsoft in Azure viele Techniken unterstützt, die es auch auf lokalen Windows-Servern gibt (vgl. Kasten "Weitere Informationen zu Technik und Vorgehensmodell").

Hingegen würde das gesamte Betriebsdateninformationssystem des NLWKN in die Cloud zu verlagern eine Reihe technischer und rechtlicher Fragestellungen aufwerfen, zudem ist bei den In-House-Prozessen eine Skalierbarkeit nicht relevant. Datenmenge, Rechenaufwand und Zugriffszahlen sind im Hochwasserfall gleich oder nur geringfügig höher als in Friedenszeiten. Cloud Computing bietet hier eine sinnvolle Ergänzung zum eigenen, lokalen System. (jul [9])

Holger Schwichtenberg

leitet die Softwareentwicklung bei der 5Minds [10] IT-Solutions GmbH & Co. KG. Zudem unterstützt er mit seinem Team andere Unternehmen durch Schulungen [11] und Beratung rund um .NET.

Exkurs: Technik und Vorgehensmodell

Exkurs: Technik und Vorgehensmodell

Das NLWKN-Betriebsdateninformationssystem besteht aus einer Vielzahl einzelner Anwendungen und Softwarekomponenten. Entwicklungsplattform ist derzeit .NET 4.5 (früher: 3.5/4.0) mit der Programmiersprache C#. Es kommen zahlreiche in .NET integrierte Frameworks zum Einsatz, insbesondere ADO.NET Entity Framework und Language Integrated Query (LINQ) für den Datenzugriff, Windows Communication Foundation (WCF) für Webservice-Kommunikation, Windows Presentation Foundation (WPF) für Windows-Desktop-Anwendung, Task Parallel Library (TPL) für Hintergrundprozesse und ASP.NET Webforms für die Webseitengenerierung. Ergänzendes Open-Source-Framework ist Automapper [12] für das Mapping verschiedener Objektstrukturen.

Der Webauftritt verwendet darüber hinaus JavaScript und mehrere JavaScript-Bibliotheken (jQuery, jQuery DataTables [13], Highcharts JS [14] sowie eine Geodaten- Software der Firma ESRI). Für Power-User gibt es auch eine Schnittstelle zu den Daten mit Windows PowerShell. Die Server basieren auf Windows Server 2008 R2 und die Datenbank auf SQL Server 2008 R2 (bald Version 2012).

In Windows Azure kommen aus der Rubrik der "Computing-Dienste" Worker- und Web-Rollen zum Einsatz. Die Daten liegen im nichtrelationalen Azure Table Storage und die Landkartendarstellung liefert Bing Maps kostenfrei. Die Programmierung erfolgt auch in der Cloud mit .NET und C#.

Unit-Tests wurden mit dem Microsoft Test Framework in Visual Studio geschrieben. Mit dem Drittanbieterwerkzeug Entity Framework Profiler [15] konnte man unnötige und ungünstige Datenzugriffe aufspüren.

Die Softwareentwicklung für das Betriebsdateninformationssystem, einschließlich des Hochwasserportals in der Cloud, erfolgte agil, sodass sich schon Version 0.1 produktiv von den Anwendern einsetzen ließ. Den Anschub für das Betriebsdateninformationssystem gab zunächst der Oberhausener Softwareentwicklungsdienstleister 5Minds IT-Solutions GmbH & Co. KG, später ist dann ein Großteil der Entwicklungsarbeiten auf beim NLWKN angestellte Softwareentwickler übergegangen.


URL dieses Artikels:
http://www.heise.de/-1875972

Links in diesem Artikel:
[1] http://www.pegelonline.nlwkn.niedersachsen.de
[2] http://msdn.microsoft.com/en-us/library/ee336279.aspx
[3] http://msdn.microsoft.com/en-us%20/library/hh456371.aspx
[4] http://www.windowsazure.com/de-de/pricing/calculator/?scenario=data-management
[5] http://msdn.microsoft.com/en-us%20/library/dd179353.aspx
[6] http://www.windowsazure.com/de-de/support/legal/sla/
[7] http://msdn.microsoft.com/en-us/library/windowsazure/ee460799.aspx
[8] https://manage.windowsazure.com/
[9] mailto:jul@heise.de
[10] http://www.5Minds.de
[11] http://www.it-visions.de/
[12] https://github.com/AutoMapper/AutoMapper
[13] http://www.datatables.net
[14] http://www.highcharts.com/
[15] http://www.hibernatingrhinos.com/products/EFProf