Now GmbH: Serverlose E-Ladestationen Plattform
Kunde
Die "Nationale Organisation Wasserstoff- und Brennstoffzellentechnologie" (NOW GmbH) ist eine Forschungsförderungsgesellschaft, die für das Bundesverkehrsministerium und das Bundesumweltministerium Förderprogramme im Bereich der nachhaltigen Mobilität koordiniert. Darüber hinaus betreut die NOW das Nationale Innovationsprogramm Wasserstoff- und Brennstoffzellentechnologie der Bundesregierung und die Förderrichtlinie Elektromobilität und Ladeinfrastruktur des Bundesministeriums für Digitales und Verkehr.
Herausforderung
Das Umdenken der Bundesregierung und der Industrie in Bezug auf die E-Mobilität hat die Themen Energie- und Mobilitätswende extrem wichtig gemacht und in den Fokus der Öffentlichkeit gerückt. So wurden in Deutschland im Jahr 2020 194.000 reine Elektrofahrzeuge zugelassen, was einer Steigerung von 206 Prozent gegenüber 2019 entspricht. Allerdings fehlt es in vielen Regionen noch an der notwendigen Infrastruktur, um die stetig steigende Nachfrage nach E-Ladestationen zu decken.
Dieses Projekt soll dazu beitragen, einen weiteren Schritt in Richtung E-Mobilität zu sichern, indem es eine einfach zu bedienende Plattform aufbaut, auf der sich Antragsteller für Fördermittel für Elektroladestationen registrieren, einreichen und ihre Berichte über die Förderanträge vollständig digital ausfüllen können.
Die erste Herausforderung bestand darin, dass die Plattform mit einer sehr variablen Anzahl von Nutzern zurechtkommen musste. Der Grund dafür ist, dass bei solchen Anwendungen die Nutzer eher in Wellen kommen (z. B. wenn bestimmte Nutzergruppen aktiviert werden oder wenn die Plattform zum ersten Mal live gegangen ist). Außerhalb dieser "Wellen" ist ein eher geringes Nutzeraufkommen zu erwarten. Im Idealfall passt sich die Plattform an dieses Nutzerverhalten an, nicht nur in Bezug auf die Leistung, sondern auch in Bezug auf die Kostenentwicklung.
Screenshot 1: Eine serverlose AWS-Architektur mit u. a. AWS Lambda, Amazon Aurora Serverless und AWS Amplify.
Für die Nutzer beginnt der Antragsprozess nicht auf der Plattform der NOW GmbH, sondern bei der Kreditanstalt für Wiederaufbau (KfW). Erst nachdem der Antrag bei der KfW bearbeitet wurde, können sich die Nutzer auf der Plattform einloggen und den Antrag weiter bearbeiten. Dies stellt die Herausforderung dar, dass die bei der KfW erfassten Ausgangsdaten in das neue Plattformsystem importiert werden müssen und daher möglichst einfach und automatisiert sein sollten.
Die nächste Herausforderung bestand darin, dass die Plattform für jeden einfach und intuitiv zu bedienen sein sollte. Insbesondere Nutzer mit geringen technischen Kenntnissen sollten die Plattform problemlos nutzen können. Dadurch soll die Anzahl der Supportanfragen minimiert und unnötiger Aufwand für Nutzer und Betreiber vermieden werden. Aus diesem Grund soll das Thema Design/UX/UI als ein zentraler Baustein im Projekt gesetzt werden.
Damit die Anwendungsdaten von der NOW GmbH ausgewertet werden können, ist es notwendig, zu jedem Zeitpunkt Snapshots der Datenbank machen zu können. Natürlich war es oberste Priorität, dass alle nutzerbezogenen Daten anonymisiert werden, bevor sie den Datenanalysten zur Verfügung gestellt werden.
Die letzte (implizite) Herausforderung bestand darin, die Einrichtung der Infrastruktur in der Cloud nachvollziehbar, automatisierbar und versionierbar zu machen. Diese Punkte sind wesentlich für eine erfolgreiche Cloud-Strategie und sollten die Grundlage für jedes Projekt innerhalb der Cloud bilden.
Lösung
PRODYNAs Unterstützung begann in der Visionsphase, als wir mit dem Now-Team zusammenarbeiteten, um die Fähigkeiten der AWS-Cloud und die Prinzipien der modernen Architektur mit den Projektzielen in Einklang zu bringen.
Flexibilität, Skalierbarkeit und ein Pay-as-you-go-Preismodell sind die Bausteine, die zur Unterstützung dieser Projektziele benötigt werden und gleichzeitig die Definitionspunkte des serverlosen Prinzips sind. Wenn serverlose Dienste genutzt werden, muss man sich nicht mehr mit Servergrößen, CPU- oder Speicherkonfigurationen befassen. Serverlose Dienste skalieren automatisch und man bezahlt nur für das, was genutzt wird. Aus diesen Gründen wurde fast die gesamte Architektur serverlos aufgebaut.
Das gesamte Backend besteht aus AWS Lambda-Funktionen. Dadurch konnten wir uns während der Entwicklung vollständig auf unseren (Node.js)-Code konzentrieren und AWS Lambda kümmerte sich um alles, was damit zusammenhing (Skalierung, Hochverfügbarkeit usw.).
Die REST-API, die das Backend mit dem Frontend verbindet, wurde nicht, wie oft üblich, in Code implementiert, sondern über das Amazon API Gateway. Dadurch konnten wir auf die umfangreichen Funktionen (z. B. OpenAPI-Unterstützung, Ratenbegrenzungen und einfache Integration mit anderen AWS-Diensten) des Amazon API Gateway auf einfache und schnelle Weise zugreifen, die Architektur weiter entkoppeln und eine hochverfügbare, skalierbare und sichere serverlose REST-API bereitstellen.
Screenshot 2: Persönliches Dashboard mit einer Übersicht über alle erstellten Berichte und der Möglichkeit, weitere Berichte zu erstellen.
Zum Speichern der Anwendungsdaten wurde Amazon Aurora MySQL in der serverlosen Variante verwendet. Amazon Aurora ist der speziell für die Cloud entwickelte relationale Datenbankdienst. Er bietet eine bis zu fünfmal schnellere Leistung als eine Standard-MySQL-Datenbank sowie wichtige Funktionen wie automatische Backups, Erstellung spezieller Read-Replicas und automatische Disaster-Recovery. Bei der Serverless-Variante muss man nicht mehr die Servergröße abschätzen, da die Datenbank automatisch skaliert. Der serverlose Objektspeicher Amazon S3 wurde genutzt, um Dateien, wie die KfW- und die Ladevorgangsdaten der Nutzer, zu speichern.
Die ersten Antragsdaten werden über Excel-Dateien von der KfW bereitgestellt. Ein Amazon S3-Bucket wurde bereitgestellt, um die Excel-Dateien zu speichern, um sie zu verarbeiten und in die Datenbank hochzuladen. In diesem S3-Bucket befindet sich ein Trigger, der jedes Mal, wenn eine neue Excel-Datei hochgeladen wird, eine AWS-Lambda-Funktion startet. Diese Lambda-Funktion liest die Excel-Datei, verarbeitet sie und schreibt die bereinigten Daten in die Datenbank. Mit diesem Verfahren kann ein notwendiger Medienbruch fast vollständig automatisiert werden.
Um den Nutzern ein möglichst intuitives und zugängliches Interface zu bieten, arbeitete die NOW GmbH von Anfang an eng mit den Frontend-Entwicklern und Designern zusammen. PRODYNA verfügt über eine eigene Designabteilung, die den Kunden bei der Umsetzung seiner Ideen optimal unterstützen kann.
Das Frontend selbst wurde mit den State-of-the-Art-Technologien React, Typescript und Material-UI geschrieben und kann daher nicht nur in Sachen UI/UX, sondern auch bei der Performance überzeugen.
Auch bei der Benutzer- und Berechtigungsverwaltung konnten wir auf die Komplettlösung eines AWS-Dienstes, nämlich Amazon Cognito, zurückgreifen. Zudem konnten Standard-Frontend-Elemente, wie die Login-Maske, mit vorgefertigten und erprobten Modulen abgebildet werden.
Es wurde eine Lambda-Funktion geschrieben, um die anonymisierten Datenbank-Snapshots zu erstellen. Diese Funktion kann die Daten aus der Amazon Aurora lesen, sie an Ort und Stelle anonymisieren und sie dann in einen Amazon S3-Bucket schreiben. Hier können die Snapshots verwendet werden, um die Daten in eine andere MySQL-Datenbank zu importieren. Dabei spielt es keine Rolle, ob sich diese Datenbank in der Cloud, vor Ort oder auf dem lokalen Computer des Entwicklers befindet.
Infrastructure as Code (IaC) ist eine etablierte Grundlage für erfolgreiche Projekte in der Cloud. Mit IaC wird die Infrastruktur deklarativ in Skripten geschrieben. Dies ermöglicht es, die Infrastruktur nachvollziehbar, automatisierbar und versionierbar zu machen. In diesem Fall haben wir das quasi-standard Open-Source-IaC-Tool Terraform verwendet. Terraform bietet ideale Möglichkeiten, um nicht nur AWS, sondern auch verschiedene andere Infrastrukturen (z. B. andere Cloud-Anbieter, Kubernetes, Cloudflare usw.) per Code zu erstellen.
Neben dem Frontend, das über eine eigene Continuous-Integration- und Continuous-Delivery-Pipeline (CI/CD) durch AWS Amplify verfügte, konnte durch den Einsatz von Terraform auch die gesamte Infrastruktur automatisch geplant, geprüft und über eine CI/CD-Pipeline bereitgestellt werden.
Screenshot 3: Der Berichtsassistent für die Beantragung von Fördermitteln für E-Ladestationen bietet eine Schritt-für-Schritt-Anleitung und die Möglichkeit, Massendaten sichtbar in Karten zu speichern.
Screenshot 4: Mit dem einfach zu bedienenden Berichtsassistenten können Zuschüsse auch über ein mobiles Gerät beantragt werden.
Die Einführung von IaC hat den weiteren Vorteil, dass es sehr einfach ist, mehrere Infrastrukturumgebungen, das sogenannte Staging, zu schaffen. So könnten wir leicht insgesamt drei Umgebungen erstellen. Eine Umgebunge für die aktive Entwicklung (Develop Stage), eine für das Testen und die Abnahme von Funktionen (QA Stage) und dann natürlich die Produktionsumgebung.
Zu einer guten Cloud-Architektur gehört natürlich auch die Sicherheit. Die von AWS definierten Best Practices wurden befolgt, z. B. dass die Datenbank nicht direkt aus dem Internet zugänglich ist (nur über einen sogenannten Bastion-Host) und nur so viele Berechtigungen wie nötig vergeben werden. Außerdem sind die Schnittstellen, die vom Internet aus zugänglich sind, besonders gut gesichert. So wurde beispielsweise das API-Gateway mit der AWS Web Application Firewall (WAF) gegen die gängigsten Angriffsvektoren geschützt. Die Autorisierung gegenüber der Plattform wird durch den Industriestandard OpenID Connect über Amazon Cognito bereitgestellt.
Auch nach dem Go-Live unterstützte PRODYNA das Now-Team aktiv mit neuen Features und Bugfixes und garantierte so die anhaltend hohe Qualität der Anwendung.
Ergebnis
In kürzester Zeit wurde eine komplette Plattform bereitgestellt, die einen entscheidenden Schritt in Richtung Digitalisierung der öffentlichen Verwaltung macht. Die serverlose Architektur hat es ermöglicht, dass die Umgebungen extrem kostengünstig und dennoch hochverfügbar und zuverlässig betrieben werden können. Ein ständiges Nachjustieren der Ressourcen ist nicht mehr notwendig, die Wartung wurde trivialisiert und die Plattform skaliert mit ihren Nutzern.
Durch den Einsatz erfahrener UX/UI-Designer und modernster Technologien im Frontend wurde das Benutzererlebnis verbessert und intuitiver gestaltet. Dadurch können Supportanfragen und Unzufriedenheit der Nutzer minimiert werden.
Darüber hinaus werden durch Automatismen und die Möglichkeiten der AWS Cloud normalerweise zeitaufwändige und manuelle Aufgaben, wie die Anonymisierung und der Import externer Daten, zu trivialen Aufgaben, die mit einem Klick" erledigt werden können.
Nicht zuletzt war die NOW GmbH durch den Einsatz von IaC in der Lage, einen kompletten Entwicklungszyklus von Infrastruktur und Anwendung sauber abzubilden und damit das Fehlerpotenzial bei Änderungen zu reduzieren.