Digitale Souveränität ist ein gegenwärtig diskutiertes Thema auf dem IT-Markt. Oft wird es mit Open Source in Verbindung gebracht. Wir schauen uns nun an, was diese beiden Begriffe eigentlich miteinander zu tun haben und wie darüber hinaus DevOps und Cloud Native hiermit im Zusammenhang stehen.
Definitionen: DevOps, Open Source, Cloud Native und Digitale Souveränität
DevOps lässt sich vereinfacht als Digitalisierung und Automatisierung von Prozessketten von der Softwareentwicklung bis zum Deployment in der Infrastruktur definieren. Hierbei werden Infrastrukturautomatisierung, CI/CD-Pipelines und agile Methoden eingesetzt. DevOps bezeichnet außerdem einen Wechsel in der Kultur- und Organisationssicht und formuliert Schnittstellen zwischen Entwicklung und Betrieb.
Open Source, engl. für quelloffen, bedeutet, dass der Quellcode einer Software offen und frei zugänglich ist. Die Nutzungs- und Verwendungsrechte regelt eine Lizenzvereinbarung. Der Einsatz der Software ist vorwiegend kostenfrei.
Für den Begriff Cloud Native kann das Glossar der CNCF (Cloud Native Computing Foundation, Quelle 1) zurate gezogen werden. Demnach sind Cloud-Native-Technologien die Technologien, die Organisationen dazu befähigen, moderne, skalierbare Anwendungen zu schaffen, die in dynamischen Umfeldern (z.B. Public, Private und Hybrid Clouds) laufen.
Am komplexesten zu definieren ist wohl der Begriff Digitale Souveränität. Bisher gibt es keine einheitlich und allumfänglich geltende Definition. Einige ausgewählte Definitionen können der Übersichtstabelle im Anhang (Quelle 2) entnommen werden.
Vereinfacht gesagt verstehen wir darunter, digital unabhängig zu sein bzw. sein zu können. D.h. man kann über alle digitalen, zu einem selbst gehörenden Daten und Informationen verfügen bzw. hat Transparenz darüber, wo sie sich befinden und wer Einsicht hat.
Dies ist natürlich relevant für jede Privatperson, aber auch für alle Unternehmen und insbesondere den Staat, der für jede:n einzelne:n Bürger:in aber auch sich selbst anstrebt, die Digitale Souveränität zu gewährleisten.
Stellen wir uns einen zu uns gehörenden Avatar, ein digitales Wesen, das uns repräsentiert, vor. Alle Informationen und Daten, die von der eigenen Person existieren, sind als Attribute und Datenpakete an diesen Avatar geheftet und müssen möglichst gut geschützt werden. Dementsprechend ist es notwendig, Zugriffe zu beschränken und zu sichern.
Interoperabilität und Modularität als Gemeinsamkeit
Um die Umsetzung der Digitalen Souveränität in Angriff zu nehmen, gibt es verschiedene Kernaspekte, die betrachtet werden müssen. Einer davon ist Interoperabilität und einer Modularität (siehe Quelle 2). Das bedeutet, dass die einzelnen Hardware- und Softwarekomponenten austauschbar und in möglichst kleinen Abschnitten veränder- und einsetzbar sind.
Dies sind Prinzipien, die einem aus der Agilität, der DevOps-Welt und der Cloud-Native-Mentalität sehr wohlbekannt vorkommen. „Loosely coupled, but tightly aligned“: Modulare Softwarepakete, die in Container verpackt sind und unabhängig von der Infrastruktur eingesetzt werden, gehören dort zu gutem Ton. Dazu stehen offene Schnittstellen und Datenformate auf der Tagesordnung.
Austauschbarkeit heißt auch, einem Vendor-Lock-In aus dem Weg zu gehen und somit ein Ersetzen der Hersteller möglich zu machen.
Dies ist ein Fundament, dass bei der CNCF bereits in der Definition verankert ist und direkt in den Zusammenhang mit Open Source gebracht wird:
“Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects.” (siehe Quelle 1)
Open Source als Lösung aus der Abhängigkeit
Durch offene Quellen des Codes wird die Abhängigkeit an nicht EU-Ländern reduziert, was in vielen Definitionen bzw. Interpretationen eine der Grundlagen zur Digitalen Souveränität ist. Zeitgleich verschließt es nicht den europäischen Markt gegenüber der restlichen Welt, sondern fördert im Gegenteil sogar die internationale Zusammenarbeit auf technischer Ebene.
Allein der Einsatz von Open Source bringt jedoch nicht direkt die Unabhängigkeit. Im realen produktiven Einsatz wird ein professioneller Support, die Zusicherung der Weiterentwicklung der Software, Dokumentation und Wissen rund um den Betrieb benötigt.
Open Source bildet jedoch die Grundlage, damit es überhaupt mehrere Unternehmen geben kann, die sich mit der Materie auskennen und Support leisten können.
Standardisierung, agile Softwarenentwicklung und DevOps-Prinzipien bei der Entwicklung von Individualsoftware
Nicht nur das Vendor-lock-in bei herkömmliche Hardware- und Softwareanbieter ist zu beachten, sondern auch die Abhängigkeit von Individualsoftware.
Bei dem Zukauf von Software, die für den eigenen Einsatzzweck designed oder customized ist, stellt sich die Frage, ob man ohne diesen Zukauf seinen Betrieb sicherstellen kann.
Auch hier kann man vertraglich sicherstellen, Zugriff auf den Code zu bekommen. Somit ist der Code zwar nicht per se offen, aber unter der richtigen Lizenz für das eigene Unternehmen zugänglich und veränderbar. Softwareentwickler:innen wissen jedoch, dass man mit fremdem, undokumentierten Code, der keine Standards einhält, wenig anfangen kann.
Abhilfe können agile Softwarenentwicklung und DevOps-Prinzipien in der Entwicklung der Individualsoftware schaffen. Modulare Code-Entwicklung führt zu austauschbaren Komponenten, die ermöglichen, dass man nicht den gesamten Code anfassen muss. Der Einsatz von Containern schafft zudem Unabhängigkeit der Infrastruktur und das Ab- und Zuschalten von einzelnen Funktionen. Die Entwicklung in einem Source-Code-Management sichert dabei die Nachvollziehbarkeit in der Entwicklung und Versionierung. Der Einsatz von CI/CD-Pipelines ermöglicht das Deployment der editierten Funktionen möglichst schnell und kontrolliert, während Infrastructure as Code eine Standardisierung im Deployment bzw. des Layouts der Infrastruktur mit einbringt. Darüber hinaus ermöglichen Microservices und Container eine Anpassung von Code-Segmenten mit möglichst wenig Impact auf den gesamten Code bzw. die Applikation.
Standards aus der agilen Softwareentwicklung realisieren somit eine schnellere Übergabe und Einfinden für neue Entwickler:innen und schaffen somit Unabhängigkeit an einzelne Unternehmen.
An alles gedacht?
Hat man eine Architektur geplant, bei der Zugriffe und Datenverlauf geklärt sind und das Zusammenspiel von einzelnen, austauschbaren Softwarekomponenten technisch funktioniert, kommt doch der Dämon Sicherheitslücke mit ins Spiel. Sind die gewollten Zugriffe vereinbar mit der Digitalen Souveränität, gilt das noch lange nicht für die ungewollten. Gerade im Zusammenspiel von vielen einzelnen Modulen kann es auch viele angreifbare Schnittstellen geben.
Cybersecurity ist also ein unabdingbares Thema bei der Planung und Umsetzung der Maßnahmen zur Digitalen Souveränität. Insbesondere die Integrität der Informationen, die Vertraulichkeit der Daten rund um den Avatar und die Verfügbarkeit der erlaubten Zugriffe zum richtigen Zeitpunkt stehen dabei im Mittelpunkt. Dabei müssen diese Kernaspekte der IT-Sicherheit bei allen Modulen und Schnittstellen geprüft werden.
DevSecOps wird zum Thema. Es bietet Sicherheit in der Code-Entwicklung selbst. So vermeidet man bestmöglich Sicherheitslücken im eigenen Code oder beim Heranziehen von bestehenden Code-Segmenten und prüft Templates und Libraries, bevor sie zum Einsatz kommen oder auf sie zugegriffen wird. Mit DevSecOps wird Infrastrukturautomatisierung, die Sicherheit direkt in der Architektur berücksichtigt. Als parallele Säule über alle Maßnahmen, die zur Digitalen Souveränität führen, muss der Aspekt Sicherheit ein ständiger Begleiter sein, um das Design und die Architektur unangreifbar zu machen.
Zusammenfassung
Alles in allem können DevOps und Open Source die Digitale Souveränität fördern, da es eine Überlappung in den Prinzipien zur Interoperabilität und Modularität sowie Unabhängigkeit von einzelnen Vendoren und Transparenz in der zugelieferten Software schaffen kann.
Sicherlich ist die Digitale Souveränität allein hierdurch nicht erreichbar. Die Standort-Frage und Datenhoheit sind z.B. Aspekte, die davon unbetroffen parallel betrachtet werden müssen. Jedoch führen die Standardisierung und offene Code-Entwicklung zu einer Möglichkeit, maximale Kontrolle über seine Applikationen zu sein zu haben.
Quellen
1.) https://github.com/cncf/toc/blob/main/DEFINITION.md
Cloud native technologies empower organizations to build and run scalable applications in modern, dynamic environments such as public, private, and hybrid clouds. Containers, service meshes, microservices, immutable infrastructure, and declarative APIs exemplify this approach.
These techniques enable loosely coupled systems that are resilient, manageable, and observable. Combined with robust automation, they allow engineers to make high-impact changes frequently and predictably with minimal toil.
The Cloud Native Computing Foundation seeks to drive adoption of this paradigm by fostering and sustaining an ecosystem of open source, vendor-neutral projects. We democratize state-of-the-art patterns to make these innovations accessible for everyone.
2.) https://www.bmwk.de/Redaktion/DE/Publikationen/Digitale-Welt/schwerpunktstudie-digitale-souveranitaet.pdf?__blob=publicationFile
Schwerpunktstudie des BMWi über Digitale Souveränität.