Zeitgemäßes Handeln mit Energie erfordert die Nutzung einer Vielzahl unterschiedlicher Anwendungen. Sowohl Management-Tools wie SAP, als auch Trading-Systeme und externe Services sind essentiell wichtig, geschäftsrelevante Information zusammenzubringen und zu verarbeiten. Dabei kommen diverse Datenformate ins Spiel. Diese Daten müssen angenommen, validiert, vereinheitlicht sowie erweitert und sinnvoll an alle relevanten Parteien und Anwendungen des Unternehmens verteilt werden. Das ist eine große Herausforderung. Unser Architektenteam nutzt die Cloud Computing Plattform Microsoft Azure als zentrales Kommunikationssystem, um die Aufgabe aller Daten in Echtzeit und passgenau an alle Zielsysteme zu verteilen.
Ausgangssituation
Unser Kunde ist der umsatzstärkste Energiekonzern und der zweitgrößte Stromerzeuger Deutschlands. Bundesweit werden sechs Millionen Strom- und Gaskunden beliefert. Den Fokus legt das Unternehmen auf den Ausbau der Energienetze, zukunftsweisende Produkte, innovative Kundenlösungen, nachhaltige Energieerzeugung und dezentrale Lösungen.
In Folge einer Unternehmensteilung entstand die Notwendigkeit, sowohl Teile der unternehmensweiten Anwendungslandschaft, als auch einen Teil der physikalischen Infrastruktur zu ersetzten. Im Zuge dieser Umstrukturierung sah unser Kunde die Chance, den Wechsel in die Cloud vorzunehmen, um neben Kosteneinsparungen eine höhere Verfügbarkeit und Skalierbarkeit der Systeme zu erreichen. Nach eingehendem Vergleich entschied sich das Unternehmen für Microsoft Azure als Cloud-Plattform.
Europaweit setzt die Holdinggesellschaft mehr als 20 Anwendungen für Trading, Hochrechnungen, Buchhaltung und Informationsmanagement ein. Diese Anwendungen sind auf unterschiedlichsten Plattformen sowohl innerhalb des Unternehmens als auch außerhalb bei Partnern und Dienstleistern verteilt. Damit diese Anwendungen miteinander kommunizieren können, wird ein Kommunikationssystem benötigt, welches Daten von informationsgebenden Systemen entgegennimmt bzw. abholt. Anschließend müssen die Daten zum Teil modifiziert bzw. umstrukturiert werden, damit sie zeitgerecht und passend formatiert an informationsverarbeitende Systeme weitergeleitet werden können.
Zu den wichtigsten Anforderungen an das Projekt gehörte, dass die Ressourcen des Kommunikationssystems je nach der Menge, Größe und Geschwindigkeit der eingehenden Daten schnell und kurzfristig skalieren können und dass Kommunikationswege möglichst einfach im Rahmen einer Workflow-Engine zusammengestellt werden sollen. Neben der Sicherung der Daten musste die Definition von Datenübergabepunkten sowie die Datentransformation und Datenanreicherung weitestgehend ohne Eingriff in die Programmierung konfigurierbar sein.
Vorgehen
Unser Team unterstützte das Projekt bei der Konzeption, beim Design und bei der Entwicklung einer zentralen EAI (Enterprise Application Integration). Das Kommunikationssystem wurde vollständig auf der Azure Platform basierend konzipiert und implementiert. Es handelt sich in erster Linie um eine auf viele Facetten verteilte virtuelle Infrastruktur, bestehend aus klassischen Komponenten, wie Datenbanken, Servern und Lastverteilung. Im Kern der Anwendung steht jedoch eine große Anzahl an Komponenten moderner serverloser Technologien. WebApps, ApiApps, LogicApps, Enterprise Service Bus, BlobSpeicher wurden so implementiert, dass sowohl ihre Verarbeitungskapazität, als auch die Anzahl parallel verarbeitender Instanzen frei und automatisch skalierbar sind. Damit verfügt das System auch bei großer Last noch über ausreichend Kapazität, alle Anfragen zügig zu verarbeiten.
Die vom Sender eingehenden Daten werden von der Eingangsschnittstelle entgegengenommen und es erfolgt eine Transformation in sogenannte Canonical Information Models (CIMs). Diese sind systemintern genutzte abstrahierte Versionen der ein- und ausgehenden Datenstrukturen der umliegend beteiligten Systeme. Dies ermöglicht eine je nach Quell- und Zielsystem abhängige Verarbeitung der Modelle über einen einheitlichen Zugriff. Erst bei der Verteilung der Information an die Zielsysteme werden die Daten in deren Eingangsstrukturen transformiert.
Durch eine hohe Testabdeckung und regelmäßig erfolgende Lasttests wurde das Verhalten des Systems unter verschiedensten Einflüssen durch unser Team ständig überwacht, beispielsweise bei komplexen oder umfangreichen Datenmodellen, die in das System übermittelt werden, oder aber auch bei Perioden mit extremer mittel- bis langfristiger Last. Dadurch konnten wir sicherstellen, dass die qualitativen Anforderungen des Kunden auch eingehalten werden.
Ergebnis
Microsoft Azure kann die physikalische von unserem Kunden genutzte Infrastruktur sowohl ersetzen als auch ergänzen. Die verschiedenen Dienste, Anwendungen und Datenbanken sind über das neue System online erreichbar und ermöglichen eine ortsunabhängige Arbeit. Der Nutzer muss die Daten nicht mehr auf dem eigenen Computer zu speichern, sondern kann diese bequem in der Cloud abrufen. Die konfigurierte Servernutzung gewährleistet eine schnelle und flexible Arbeit je nach aktueller Datenmenge und Arbeitslast.
Der Nutzer bemerkt keinerlei Verzögerungen und Installationen auf dem lokalen Rechner sind nicht mehr nötig.
Technologien
- Web Apps
- Logic Apps
- Virtual Machine Scale Sets
- Express Route
- Azure Active Directory
- Azure Service Bus
- Azure Resource Manager
- Templates
- PowerShell cmdlets
- Visual Studio Team Services