Blog

Funktionstrennung in DevOps und GitLab: Die vier größten Herausforderungen meistern

JUL 24, 2023

In der DevOps-Welt, in der Geschwindigkeit und Flexibilität entscheidend sind, kann es schwierig sein, Aufgaben klar voneinander zu trennen – die sogenannte „Separation of Duties“.

Kalle Sirkesalo

Field CTO

Kalle agiert an der Schnittstelle zwischen Unternehmensstrategie und technischer Realität. Er arbeitet direkt mit CTOs und Engineering-Leadern zusammen, um geschäftlichen Druck – Tempo, Compliance, ROI – in tragfähige technische Entscheidungen zu übersetzen. Seine Aufgabe ist es sicherzustellen, dass unsere Empfehlungen für Ihre Organisation auch tatsächlich umsetzbar sind.

Aus Sicherheits- und Verantwortungsgründen braucht ihr eine Aufgabentrennung. Das ist beispielsweise bei der Entwicklung und dem Testen von Finanzsystemen entscheidend.

In diesem Fall:

  • Entwickler konzentrieren sich auf das Schreiben und Prüfen von Code.

  • Tester testen unabhängig, um sicherzustellen, dass die Berechnungen im System korrekt sind und regulatorische Vorgaben erfüllen.

Im Kontext von DevOps und GitLab kann die Umsetzung jedoch schwierig sein.

In diesem Blog beleuchten wir die Herausforderungen, die euch bei der Durchsetzung der Aufgabentrennung begegnen können, und zeigen, wie ihr sie effektiv bewältigt.

Lest weiter und findet eine bessere Balance zwischen Sicherheit und Effizienz. Beginnen wir mit den Herausforderungen und möglichen Lösungen.

Die 4 wichtigsten Herausforderungen bei der Aufgabentrennung in DevOps und GitLab – und wie ihr sie bewältigt

Herausforderung 1: Begrenzte integrierte Kontrollmechanismen

GitLab – eine Plattform für Zusammenarbeit – bietet keine integrierten Tools zur Durchsetzung der Aufgabentrennung. Die Plattform ist auf Flexibilität und Offenheit ausgelegt, was zwar vorteilhaft ist, aber auch bedeutet, dass ihr zusätzlichen Aufwand betreiben und Anpassungen vornehmen müsst, um die richtigen Kontrollmechanismen einzurichten. Für Unternehmen kann es schwierig sein, bestimmte Aktionen einzuschränken oder den Zugriff auf bestimmte Inhalte anhand konkreter Aufgabenbereiche zu begrenzen.

Diese Herausforderung durch Anpassung und Konfiguration bewältigen

Nutzt die Anpassungsoptionen von GitLab, um Zugriffskontrollen, Berechtigungen und Workflows für unterschiedliche Rollen einzurichten. Durch die Anpassung der GitLab-Einstellungen stellt ihr sicher, dass jede Person nur Zugriff auf die Inhalte hat, die sie für ihre jeweilige Aufgabe benötigt.

So könnt ihr GitLab an die Anforderungen eures Unternehmens zur Aufgabentrennung anpassen und sicherstellen, dass jeder die passende Zugriffsebene für die benötigten Ressourcen hat.

Herausforderung 2: Mehraufwand und Komplexität

Die Einführung einer Aufgabentrennung in einer DevOps-Umgebung kann zusätzlichen Aufwand und mehr Komplexität mit sich bringen. Ihr müsst Rollen definieren, Zugriffskontrollen verwalten und Prüfprozesse einrichten – all das kostet Zeit und Ressourcen.

Um die richtige Balance zwischen Sicherheit und Effizienz zu finden, sind sorgfältige Planung und Koordination erforderlich, damit alles reibungslos funktioniert.

Diese Herausforderung mit einer integrierten Toolchain bewältigen

Zieht eine GitLab-Toolchain für eure gesamte Pipeline in Betracht, einschließlich Zugriffsverwaltung, Code Reviews und automatisierter Tests. GitLab kann euch dabei unterstützen, die Aufgabentrennung durch kontrollierten Zugriff durchzusetzen, gemeinsame Code Reviews zu vereinfachen und Sicherheitsprüfungen zu automatisieren.

Herausforderung 3: Engpässe bei der Zusammenarbeit

Wenn ihr versucht, eine Aufgabentrennung durchzusetzen, kann sich der Entwicklungsprozess manchmal verlangsamen. Wenn mehrere Personen oder Teams Änderungen prüfen und genehmigen müssen, können Engpässe entstehen und die Bereitstellung von Software länger dauern.

Es ist wichtig, eine Balance zwischen Zusammenarbeit und dem Bedarf an unabhängigen Prüfungen zu finden, damit alles sicher bleibt. Ihr möchtet Agilität bewahren und gleichzeitig Sicherheitsstandards erfüllen.

Diese Herausforderung durch Schulung und Sensibilisierung bewältigen

Stellt sicher, dass alle im Team verstehen, warum die Aufgabentrennung für Sicherheit und Compliance wichtig ist. Führt Schulungen durch und fördert eine Kultur, in der jeder Verantwortung für seinen Teil übernimmt. Betont dabei die Vorteile unabhängiger Prüfungen und Validierungen.

Herausforderung 4: Tools und Automatisierung

Für eine erfolgreiche Aufgabentrennung benötigt ihr in der Regel die richtigen Tools und Automatisierung. Es kann jedoch schwierig sein, Lösungen zu finden oder zu entwickeln, die gut zum DevOps-Workflow passen und sich nahtlos in GitLab integrieren lassen. Deshalb müsst ihr ausreichend Zeit und Ressourcen investieren, um Tools zu identifizieren oder aufzubauen, die eine sichere und effiziente Zusammenarbeit ermöglichen und gleichzeitig die Aufgabentrennung unterstützen.

Diese Herausforderung durch kontinuierliche Verbesserung meistern

Macht es euch zur Gewohnheit, regelmäßig zu prüfen, wie gut eure Kontrollen und Prozesse zur Funktionstrennung funktionieren. Holt Feedback von Teammitgliedern und Stakeholdern ein, um Bereiche mit Verbesserungspotenzial zu identifizieren, und optimiert die Umsetzung im Laufe der Zeit.

Achtet auf ein ausgewogenes Verhältnis zwischen Sicherheitsanforderungen und betrieblicher Effizienz und nehmt bei Bedarf Anpassungen vor.

Sehen wir uns nun ein Beispiel an.

Ein typischer GitLab-Workflow mit Trigger-Token für Entwickler und Operations-Teams

GitlabDiagram

Um zu veranschaulichen, wie sich die Funktionstrennung in einer DevOps-Umgebung mit GitLab umsetzen lässt, betrachten wir ein Beispiel für einen Workflow mit einem Trigger-Token.

In diesem Szenario arbeiten Entwickler in einem Repository, während Operations-Teams Deployments und die Infrastrukturverwaltung in einem anderen Repository übernehmen.

1. Entwickler-Repository

Entwickler konzentrieren sich darauf, Code zu schreiben, neue Funktionen zu entwickeln und die Codequalität sicherzustellen. Sie arbeiten in einem dedizierten Repository, in dem sie zusammenarbeiten, den Code der anderen prüfen und Unit-Tests durchführen. Sobald der Code bereit ist, pushen die Entwickler ihre Änderungen in den Main-Branch des Entwickler-Repositorys.

2. Trigger-Token

Um den Deployment-Prozess zu starten und die Funktionstrennung aufrechtzuerhalten, wird ein Trigger-Token-Mechanismus eingesetzt. Dazu wird im Repository der Entwickler eine Pipeline eingerichtet. Sobald der Code erfolgreich geprüft und getestet wurde, erzeugt sie ein Trigger-Token, das das Deployment auslöst.

3. Operations-Repository

Das Trigger-Token aktiviert eine Pipeline im Operations-Repository und signalisiert damit die Übergabe an das Operations-Team. Dieses Repository enthält Deployment-Skripte, Infrastrukturkonfigurationen und weitere wichtige operative Aufgaben, die für das Deployment und die Wartung der Anwendung erforderlich sind.

4. Deployment und Infrastrukturverwaltung

Mithilfe des Trigger-Tokens startet die Pipeline im Operations-Repository den Deployment-Prozess. Das Operations-Team übernimmt Aufgaben wie die Bereitstellung der Infrastruktur, das Deployment der Anwendung in Staging- oder Produktionsumgebungen sowie die Überwachung weiterer betrieblicher Aspekte des Systems.

5. Auditierung und Überwachung

Während des Workflows ermöglicht GitLab Auditierung und Überwachung. Es protokolliert die von Entwicklern und Operations-Teams ausgeführten Aktionen und stellt so Nachvollziehbarkeit und Verantwortlichkeit sicher. Diese Funktion unterstützt euch dabei, Compliance-Anforderungen zu erfüllen und Probleme oder Unregelmäßigkeiten effizient zu untersuchen.

Darum ist dieser Workflow mit Trigger-Token so gut

Ihr trennt Verantwortlichkeiten

Der Workflow mit Trigger-Token stellt sicher, dass Entwickler, die für Codeänderungen verantwortlich sind, keinen direkten Zugriff auf Deployments und die Infrastrukturverwaltung haben. Durch diese Trennung verhindert ihr unbefugte Änderungen, senkt das Fehlerrisiko und erhöht die Sicherheit.

Ihr verbessert Zusammenarbeit und Effizienz

Indem dieser Workflow die Verantwortlichkeiten zwischen Entwicklern und Operations-Teams aufteilt, kann jedes Team intern fokussierter zusammenarbeiten. Entwickler können sich auf das Schreiben von Code und die Verbesserung von Anwendungsfunktionen konzentrieren, während Operations-Teams den Fokus auf eine stabile und sichere Infrastruktur legen können.

Ihr erfüllt Compliance-Anforderungen und seid bereit für Audits

Durch die Umsetzung der Funktionstrennung mit dem Workflow mit Trigger-Token erfüllt ihr regulatorische Anforderungen. Mit den Audit-Trail- und Überwachungsfunktionen von GitLab könnt ihr zudem nachweisen, dass ihr Verantwortung übernehmt und eure Compliance-Verpflichtungen erfüllt.

Dieses Beispiel für einen GitLab-Workflow mit Trigger-Token zeigt, wie ihr in einer DevOps-Umgebung eine Funktionstrennung etablieren könnt.

Ein Nachteil dieses Modells ist jedoch, dass Entwickler keine Kontrolle über den Deployment-Prozess haben und möglicherweise nicht nachvollziehen können, wann und von wem ein Deployment durchgeführt wurde.

Zusammenfassung

Die Umsetzung der Aufgabentrennung im Kontext von DevOps und GitLab bringt eigene Herausforderungen mit sich. Ihr müsst die Einschränkungen der Standardkontrollen und die damit verbundene Komplexität bewältigen und gleichzeitig ein Gleichgewicht zwischen Zusammenarbeit und Sicherheit finden.

Diese Herausforderungen könnt ihr jedoch meistern, indem ihr Anpassungsoptionen und integrierte Tools nutzt, Schulungen anbietet und kontinuierliche Verbesserung priorisiert.

So könnt ihr ein solides Framework für die Aufgabentrennung schaffen. Ihr stellt Sicherheit, Verantwortlichkeit und die Einhaltung von Vorschriften sicher und profitiert gleichzeitig von den starken Vorteilen für die Zusammenarbeit, die DevOps und GitLab bieten.

  • DevOps
  • CI/CD
  • Security

Subscribe to our newsletter