Lesen Sie im ersten Teil unserer Serie zu DevOps wie der Finanzplatz Schweiz DevOps erfolgreich einsetzen kann und erfahren Sie im zweiten Teil der Serie mehr zu Kubernetes Network Policies und Kubernetes Pod Security Policies. Im dritten und letzten Beitrag dreht sich alles um Softwareaktualisierungen und damit verbundene Sicherheitslücken.

Wurde bei Sicherheitslücken in Softwarepaketen auf einem Server bis anhin die Software auf dem Server durch den Betriebspartner aktualisiert, ist das bei Software in Docker-Container nicht mehr möglich oder, besser gesagt, nicht vorgesehen. Docker-Container sollen unveränderbar sein und bleiben. Wenn ein Softwarepaket in einem Docker-Container Sicherheitslücken aufweist, macht es keinen Sinn, die Software im Container durch den Betriebspartner zu aktualisieren. Denn wenn der Docker-Container zum Beispiel während Wartungsarbeiten an einem Server im Verbund gestoppt, gelöscht und auf einem anderen Server neu gestartet wird, wird dabei wieder das ursprüngliche Docker Image verwendet, in dem die Aktualisierungen nicht enthalten sind. Es ist also notwendig, dass der Software-Lieferant auch in diesen Prozess einbezogen wird und ein neues Docker Image ausliefert, das die Aktualisierungen bereits enthält.

Durch den Einsatz der Continuous Deployment Pipeline erfolgt dann die Installation automatisiert und mit einer minimalen Durchlaufzeit. Eine intelligente Kombination aller Pipelines sorgt dafür, dass Änderungen deutlich öfter installiert werden können; diese sind dafür meistens nicht sehr umfangreich. Im Idealfall führt das zu einer kleineren Fehlerquote.

Das gleiche Ziel wird auch beim Betrieb der Container-Plattform selbst verfolgt. Anstatt nur wenige Male jährlich die Infrastruktur in grossen Schritten zu aktualisieren, wird die komplette Umgebung mit kleineren Anpassungen mindestens einmal pro Monat automatisiert auf den neusten Stand gebracht. Da die Container-Plattform aus einem Server-Verbund besteht, sind solche Wartungsarbeiten für die Endkunden einer Applikation unterbruchfrei. Die Server werden seriell in Wartung genommen und Kubernetes sorgt automatisch dafür, dass die Pods auf die verbleibenden Server verteilt werden, bis die Wartungsarbeiten am Server abgeschlossen sind. Das setzt voraus, dass Applikationen auf mehrere Instanzen skaliert und auf mehrere Server verteilt sind, wobei der Einsatz von Container-Technologien wiederum gute Dienste leistet. Der Umgang mit Log- und Monitoring-Daten kann mit der passenden Implementation der Software im Container global auf der Container-Plattform konfiguriert werden, sodass nicht jeder einzelne Pod entsprechend eingerichtet werden muss. Der Software-Entwickler muss lediglich dafür sorgen, dass Logs an «stdout» und «stderr» geschickt werden und für die Überwachung der Applikation passende Endpunkte zur Verfügung stellen. Log- und Monitoring-Daten können so an einer zentralen Stelle aufbereitet werden und auch den Finanz- und Versicherungsdienstleistern als Kunden von Inventx zugänglich gemacht werden.

DevOps im Einklang mit den Regulatorien

Trotz der Möglichkeiten von DevOps und der erwähnten Technologien für die Beschleunigung von Software-Entwicklung bis zur Marktreife und darüber hinaus, müssen die Abläufe zwingend im Einklang mit Prozessen stehen, die ein Betriebspartner aus regulatorischen und Audit-Gründen in der Finanz- und Versicherungsbranche einhalten muss (Compliance). Dabei ist unter anderem die Wahl der passenden Werkzeuge ausschlaggebend, vor allem die Unterstützung von APIs. Falls aus rechtlichen Gründen eine persönliche Bestätigung einer Installation auf Produktionsstufe nötig ist, lassen sich damit vorherige oder anschliessende Prozesse und Arbeitsschritte der Installation automatisieren.

DevOps an sich stellt Unternehmen bereits vor grosse Herausforderungen. Bezieht man auch die Implementation von CI/CD-Prozessen, Container, Container-Plattform-Technologien und Microservices-Architekturen in diese Betrachtung mit ein, scheint die reine Fülle an Neuerungen überwältigend. Aber mit der passenden Wahl von Werkzeugen, der Definition von Schnittstellen und den richtigen Partnern ist es auch Unternehmen in regulierten und gehärteten Umgebungen möglich, von diesen neuen Möglichkeiten zu profitieren und ihren Kunden schneller, neue Software und Services (Digitalisierung) mit einem stabilen Betrieb zur Verfügung zu stellen.