Entwicklung einer CI/CD Infrastruktur mit höchsten Ansprüchen an Sicherheit, Zuverlässigkeit und Robustheit.
DevSecOps, CI/CD, Container, GitLab, Docker, Sonarqube, Sonatype Nexus, Traefik, Renovate
Das Ziel dieses Projektes war ein mögliches Lösungskonzept für eine CI/CD Infrastruktur bereitzustellen. Das vorliegende Konzept soll die Anforderungen von Swissgrid erfüllen und gleichzeitig die Stärken und Schwächen des gewählten Lösungsansatzes aufzeigen. Das Konzept dient als Basis für eine spätere Umsetzung im Umfeld von Swissgrid. Bei der Lösungsfindung sind insbesondere die hohen Anforderungen an Robustheit, Zuverlässigkeit und Sicherheit zu beachten. So wurden von Swissgrid beispielsweise Rahmenbedingungen zum Aufbau der Netzwerkzonen und deren Kommunikationen aufgestellt. Die CI/CD Infrastruktur soll dabei den gesamten Zyklus von Kompilieren, Testen und Bereitstellung abbilden. Die Erhaltung der Flexibilität der Infrastruktur ist ebenfalls wichtig, da verschiedenste Applikationen unterstützt werden müssen.
Als nationale Netzgesellschaft betreibt Swissgrid mit dem schweizerischen Hochspannungsnetz eine als höchst kritisch einzustufend Infrastruktur. Dies ist auch im Bereich der Informatik ersichtlich, insbesondere beim Teilbereich Applikationsmanagement. Eine IT-Umgebung bestehend aus einer Vielzahl von Applikationen unterschiedlichster Hersteller wird unterhalten und es gilt höchste Ansprüche an Zuverlässigkeit und Sicherheit zu erfüllen. Um diese hohen Ansprüche auch in Zukunft erfüllen zu können, soll nun eine automatisierte Continuous Integration / Continuous Deployment (CI/CD) Pipeline zur Installation, Konfiguration und Wartung einer Applikationsinfrastruktur aufgebaut werden. Das Stromnetz stellt einen Grundpfeiler der modernen Gesellschaft dar und ein Ausfall der Infrastruktur von Swissgrid könnte für die Schweiz und allenfalls grosse Teile von Europa schwerwiegende Konsequenzen haben.
Von der standardisierten Installation einer Applikation bis zum Wiederaufbau im Krisenfall müssen sämtliche Szenarien für alle vorhanden Applikationen beachtet werden. Dabei stehen immer die Nachvollziehbarkeit und Trennung von Verantwortlichkeiten im Vordergrund. Wichtig im Worst-Case-Szenario eines kompletten Systemausfalls, ist die Möglichkeit die gesamte Applikationslandschaft von Swissgrid innert kürzester Zeit neu aufbauen zu können. Zur Risikominimierung ist es zusätzlich zentral, sämtliche Applikationen und Frameworks stets auf dem aktuellen Stand zu halten. Insbesondere im Umfeld von Webapplikationen ist es mit erheblichem Aufwand verbunden, sämtliche Komponenten auf Updates zu überprüfen. Auch in diesem Bereich soll die Applikationslandschaft von Swissgrid unterstützt werden.
Ungeachtet der grossen Freiheit in der Entwicklung, verfügt das entwickelte Lösungskonzept sowohl in Produktauswahl, als auch in der Prozessdefiniton über Parallelen zum üblichen Stand der Technik. Diese Ähnlichkeit resultiert hauptsächlich aus zwei Gründen; einerseits werden Prozesse oft durch technische Abhängigkeiten vorgegeben, andererseits waren Verbreitung und Verfügbarkeit von Wartungsverträgen ein Kriterium bei der Produktauswahl. Mit knappem Vorsprung konnte GitLab die Produktevaluation im Bereich CI für sich entscheiden. Da die CI/CD Konfigurationen spezifisch für GitLab sind, stellt es die einzige nicht trivial auszutauschende Applikation der gesamten Infrastruktur dar.
Für Swissgrid konnten durch diese Thesis einige interessante Erkenntnisse gewonnen werden. Das ausgiebige Testen von Containern auf Linux- und Windowsservern zu spannenden Ergebnissen. So waren für den Betrieb einer Windows Containerlandschaft eindeutige Mängel bezüglich Isolation im Rahmen einer CI/CD Pipeline festzustellen. Auch das Zusammenspiel der verschiedenen Komponenten aus der Produktevaluation konnte dank des detaillierten Demoaufbaus gründlich geprüft werden. Zusammenfassend gesagt konnten mit dem Einsatz des hochflexiblen Lösungskonzepts alle Anforderungen von Swissgrid erfüllt werden.
Bild Detailkonzept der CI/CD Pipeline:
Dauer: 25 Wochen, Aufwand: 720 Stunden, Teamgrösse: 2 Personen
Swissgrid AG
Bleichenmattstrasse 31
5001 Aarau

Pascal Mathis, Informatik berufsbegleitend
Tobias Siegrist, Informatik berufsbegleitend
Prof. Martin Kropp