Cloud

Eine Cloud Plattform für das BAMF

Darstellung der Cloud Plattform des BAMF. Die Wolke ist in drei Schichten unterteilt. Jede Schicht beinhaltet ein Themenfeld. Oberste Schicht: Anwendung
Darstellung der Cloud Plattform des BAMF. Die Wolke ist in drei Schichten unterteilt. Jede Schicht beinhaltet ein Themenfeld. Mittlere Schicht: BAMF-DevOps-Plattform
Darstellung der Cloud Plattform des BAMF. Die Wolke ist in drei Schichten unterteilt. Jede Schicht beinhaltet ein Themenfeld. Unterste Schicht: Infrastruktur
Browser Icon aus der Cloud
Anwendung

Die erste Schicht umfasst die Anwendungsentwicklung, welche auf automatisierte Pipelines basiert (wie z.B. der CI/CD Pipeline = Continuous Integration, Continuous Delivery, Continuous Deployment). Sie umfasst außerdem die Bereitstellung der Anwendung selbst, so dass diese für Nutzende verfügbar wird. Alle entwickelten Softwareartefakte durchlaufen standardisierte Pipelines, die z.B. Codequalität und Security sichern und über vollständig automatisierte Testszenarien auch die Funktionsfähigkeit sicherstellen.

Einfach gesagt: Es wird ständig in kleinen, überschaubaren Inkrementen entwickelt. All diese kleinen Inkremente werden fortlaufend auch in der Produktion bereitgestellt. Das führt zu einer schnelleren Verfügbarkeit von Features und zu einer besseren Behebbarkeit von Fehlern im Vergleich zu klassischen, halbjährlichen Deployments, die zu groß und zu belastet von Abhängigkeiten sind, um sie noch vollständig qualitätssichern zu können. Dadurch steigt auch die Reaktionsfähigkeit auf die spezifischen Bedürfnisse unserer IT-Projekte und -Verfahren sowie auf neue Anforderungen. Ebenfalls werden auf diese Weise die Softwarequalität erhöht, effiziente Entwicklungsansätze wie DevOps ermöglicht sowie bereits etablierte Methoden der agilen Softwareentwicklung (z. B. Scrum) weiter gefördert.

Ein weiteres maßgebliches Merkmal ist, dass Entwicklungsteams auf einen vollständig automatisierten „Baukasten“ zur Anwendungsentwicklung zurückgreifen und sich auf die Integration fachlicher Anforderungen konzentrieren können. Der „Baukasten“ selbst wird standardisiert bereitgestellt, stellt mit Hilfe von Quality-Gates Mindeststandards sicher und muss nicht in jedem Entwicklungsprojekt neu entwickelt werden.

Dem Endanwender bietet die Plattform eine hohe Performanz und Ausfallsicherheit sowie durch hohe Standardisierung auch eine gute Handhabung und eine schnelle Verfügbarkeit von fachlichen Features.

Zahnrad Icon aus der Cloud
BAMF-DevOps-Plattform

Die Plattform bietet Standardservices (wie Logging, Secret-Management, Authentifizierung, etc.), die von Anwendungen genutzt werden können. Wo Softwareentwicklungsprojekte beispielsweise bisher selbst für die Bereitstellung von Webservern oder Zugriffsschutz sorgen mussten, können sie diese Services jetzt standardisiert über die Cloud-Plattform beziehen. Anwendungen benötigen nur ihre Kernfunktionalität (meist fachlich) und beziehen den Rest aus den standardisierten Schichten darunter oder aus Standard-Plattform-Services. Durch die hohe Standardisierung und die zentrale Verfügbarkeit der Schichten müssen diese nicht mehr in jedem Entwicklungsprojekt einzeln und neu entwickelt werden. Das sorgt sowohl für eine kürzere Bereitstellungsdauer als auch für eine wesentlich höhere Einheitlichkeit und damit Pflegbarkeit sowie Sicherheit über verschiedene Projekte hinweg. Insgesamt kann somit zukünftig bei schwankenden Lasten (wie z. B. bei einem Anstieg von Antragstellenden) jederzeit flexibel und skalierbar agiert, justiert und gesteuert werden, ohne manuelles Eingreifen.

Das grundsätzliche Paradigma lautet: Nichts auf der Plattform wird manuell, sondern alles wird automatisiert aus Code erzeugt.

Server Icon aus der Cloud
Infrastruktur

Auch eine Cloud-Plattform besteht letztendlich aus physikalischen Ressourcen wie Servern, Netzwerk-Hardware, Stromversorgung und klimatisierten, hochgesicherten Räumlichkeiten. Im Gegensatz zur klassischen Bereitstellung von Software erfolgt die Nutzung dieser Infrastruktur aber über standardisierte Schnittstellen. Die Kombination dieser Schnittstellen mit einem hohen Automatisierungsgrad führt zu einem „Infrastructure as a Service“-Prinzip, bei dem Dienste der Infrastruktur schnell und einfach für die nutzende Anwendung bereitgestellt werden. Außerdem ist es auf diesem Weg möglich, Lastspitzen automatisiert abzufangen (Skalierung) und die genutzten Ressourcen damit immer den jeweils aktuellen Anforderungen anzupassen.