<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://about.gitlab.com/blog</id>
    <title>GitLab</title>
    <updated>2025-11-07T19:24:39.427Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <author>
        <name>The GitLab Team</name>
    </author>
    <link rel="alternate" href="https://about.gitlab.com/blog"/>
    <link rel="self" href="https://about.gitlab.com/de-de/atom.xml"/>
    <subtitle>GitLab Blog RSS feed</subtitle>
    <icon>https://about.gitlab.com/favicon.ico</icon>
    <rights>All rights reserved 2025</rights>
    <entry>
        <title type="html"><![CDATA[Pipeline-Inputs: Sichere Alternative zu Pipeline-Variables]]></title>
        <id>https://about.gitlab.com/de-de/blog/migrate-from-pipeline-variables-to-pipeline-inputs-for-better-security/</id>
        <link href="https://about.gitlab.com/de-de/blog/migrate-from-pipeline-variables-to-pipeline-inputs-for-better-security/"/>
        <updated>2025-11-04T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<h1>Migration von Pipeline-Variables zu Pipeline-Inputs – für mehr Sicherheit</h1>
<p>Pipeline-Variables ermöglichen die Anpassung von GitLab CI/CD-Pipelines zur Laufzeit. Mit der Entwicklung von CI/CD-Sicherheits-Best-Practices wurde jedoch deutlich, dass stärkere Kontrollen bei der Pipeline-Anpassung erforderlich sind. Uneingeschränkte Pipeline-Variables erlauben Nutzern mit Pipeline-Trigger-Berechtigungen das Überschreiben von Werten ohne Validierung oder Typ-Prüfung. Dies schafft Sicherheitsrisiken durch Variable-Injection-Angriffe.</p>
<p>Pipeline-Variables fehlt zudem eine explizite Deklaration und Dokumentation. Dadurch ist schwer nachvollziehbar, welche Eingaben erwartet werden und wie diese in der Pipeline verwendet werden. Dies erschwert die Wartung und etabliert keine klare Governance über CI/CD-Prozesse.</p>
<h2>Pipeline-Inputs als sichere Alternative</h2>
<p>GitLab Pipeline-Inputs bieten eine systematische Lösung mit folgenden Eigenschaften:</p>
<p><strong>Explizite Deklaration:</strong> Inputs müssen in der <code>.gitlab-ci.yml</code> explizit deklariert werden und sind selbstdokumentierend.</p>
<p><strong>Typ-Sicherheit:</strong> Unterstützung verschiedener Input-Typen (string, boolean, number, array) mit automatischer Validierung.</p>
<p><strong>Integrierte Validierung:</strong> Automatische Validierung von Input-Werten gegen definierte Constraints.</p>
<p><strong>Verbesserte Sicherheit:</strong> Kein Risiko von Variable-Injection-Angriffen, da nur deklarierte Inputs von außen übergeben werden können.</p>
<h3>Grundlegendes Beispiel</h3>
<pre><code class="language-yaml">    spec:
      inputs:
        deployment_env:
          description: &quot;Target deployment environment&quot;
          type: string
          options: [&quot;staging&quot;, &quot;production&quot;]
          default: &quot;staging&quot;
        enable_tests:
          description: &quot;Run test suite&quot;
          type: boolean
          default: true

    test:
      script:
        - echo &quot;Running tests&quot;
      rules:
        - if: $[[ inputs.enable_tests ]] == true

    deploy:
      script:
        - echo &quot;Deploying to $[[ inputs.deployment_env ]]&quot;
</code></pre>
<p>Weitere Details zur typ-sicheren Parameter-Übergabe mit Validierung finden sich im <a href="https://about.gitlab.com/blog/ci-cd-inputs-secure-and-preferred-method-to-pass-parameters-to-a-pipeline/">CI/CD-Inputs-Tutorial</a>.</p>
<h2>Restriktion von Pipeline-Variables</h2>
<p>Für die Migration zu Pipeline-Inputs ist die Konfiguration der Einstellung &quot;Minimum role to use pipeline variables&quot; erforderlich. Diese Einstellung ermöglicht granulare Kontrolle darüber, welche Rolle Pipeline-Variables beim Triggern von Pipelines verwenden darf.</p>
<p><strong>Auf Projekt-Ebene:</strong> Navigation zu <strong>Settings &gt; CI/CD &gt; Variables &gt; Minimum role to use pipeline variables</strong>.</p>
<p>Verfügbare Optionen:</p>
<ul>
<li><strong>No one allowed</strong> (<code>no_one_allowed</code>) – Empfohlene und sicherste Option. Verhindert alle Variable-Overrides.</li>
<li><strong>Developer</strong> (<code>developer</code>) – Erlaubt Developern und höheren Rollen das Überschreiben von Variables</li>
<li><strong>Maintainer</strong> (<code>maintainer</code>) – Erfordert Maintainer-Rolle oder höher</li>
<li><strong>Owner</strong> (<code>owner</code>) – Nur Projekt-Owner können Variables überschreiben</li>
</ul>
<p><strong>Auf Group-Ebene:</strong> Group-Maintainer können unter <strong>Settings &gt; CI/CD &gt; Variables &gt; Default role to use pipeline variables</strong> sichere Defaults für alle neuen Projekte innerhalb der Group festlegen. Dies gewährleistet konsistente Sicherheitsrichtlinien. Auch hier wird <strong>No one allowed</strong> als Default-Wert empfohlen, sodass neue Projekte mit sicherer Standardeinstellung erstellt werden. Projekt-Owner können die Einstellung weiterhin ändern.</p>
<p>Bei vollständiger Restriktion von Pipeline-Variables (mit &quot;No one allowed&quot;) erscheinen die <a href="https://docs.gitlab.com/ci/pipelines/#prefill-variables-in-manual-pipelines">prefilled variables</a> nicht im &quot;New Pipeline UI&quot;-Formular.</p>
<h2>Migration von Pipeline-Variables</h2>
<h3>Lücken schließen</h3>
<p>Gruppen können Projekte enthalten, bei denen Pipeline-Variables standardmäßig aktiviert sind, obwohl sie nie beim Triggern einer Pipeline verwendet wurden. Diese Projekte können ohne Unterbrechungsrisiko zur sichereren Einstellung migriert werden. GitLab <a href="https://docs.gitlab.com/ci/variables/#enable-pipeline-variable-restriction-for-multiple-projects">bietet Migrationsfunktionalität</a> über Group-Einstellungen:</p>
<ul>
<li>Navigation zu <strong>Settings &gt; CI/CD &gt; Variables</strong></li>
<li>In <strong>Disable pipeline variables in projects that don't use them</strong> auf <strong>Start migration</strong> klicken</li>
</ul>
<p>Diese Migration ist ein Background-Job, der Pipeline-Variables über Projekt-Einstellungen für alle Projekte deaktiviert, die diese historisch nicht verwendet haben.</p>
<h3>Konvertierung von Pipeline-Variables zu Inputs</h3>
<p>Für jede identifizierte Pipeline-Variable ist ein entsprechender Pipeline-Input zu erstellen.</p>
<p><strong>Vorher (mit Pipeline-Variables):</strong></p>
<pre><code class="language-yaml">    variables:
      DEPLOY_ENV:
        description: &quot;Deployment environment&quot;
        value: &quot;staging&quot;
      ENABLE_CACHE:
        description: &quot;Enable deployment cache&quot;
        value: &quot;true&quot;
      VERSION:
        description: &quot;Application version&quot;
        value: &quot;1.0.0&quot;

    deploy:
      script:
        - echo &quot;Deploying version $VERSION to $DEPLOY_ENV&quot;
        - |
          if [ &quot;$ENABLE_CACHE&quot; = &quot;true&quot; ]; then
            echo &quot;Cache enabled&quot;
          fi
</code></pre>
<p><strong>Nachher (mit Pipeline-Inputs):</strong></p>
<pre><code class="language-yaml">    spec:
      inputs:
        deploy_env:
          description: &quot;Deployment environment&quot;
          type: string
          default: &quot;staging&quot;
          options: [&quot;dev&quot;, &quot;staging&quot;, &quot;production&quot;]
        enable_cache:
          description: &quot;Enable deployment cache&quot;
          type: boolean
          default: true
        version:
          description: &quot;Application version&quot;
          type: string
          default: &quot;1.0.0&quot;
          regex: '^[0-9]+\.[0-9]+\.[0-9]+$'

    deploy:
      script:
        - echo &quot;Deploying version $[[ inputs.version ]] to $[[ inputs.deploy_env ]]&quot;
        - |
          if [ &quot;$[[ inputs.enable_cache ]]&quot; = &quot;true&quot; ]; then
            echo &quot;Cache enabled&quot;
          fi
</code></pre>
<h3>Migration von Trigger-Jobs</h3>
<p>Bei Verwendung von Trigger-Jobs mit dem <code>trigger</code>-Keyword ist sicherzustellen, dass diese keine Job-Level-<code>variables</code> definieren oder das Erben von Variables von Top-Level <code>variables</code>, <code>extends</code> oder <code>include</code> deaktivieren. Variables könnten implizit als Pipeline-Variables downstream übergeben werden. Bei restriktiven Pipeline-Variables im Downstream-Projekt schlägt die Pipeline-Erstellung fehl.</p>
<p>Die CI-Konfiguration sollte auf Pipeline-Inputs statt Pipeline-Variables aktualisiert werden:</p>
<pre><code class="language-yaml">    variables:
      FOO: bar

    deploy-staging:
      inherit:
        variables: false  # sonst würde FOO downstream als Pipeline-Variable gesendet
      trigger:
        project: myorg/deployer
        inputs:
          deployment_env: staging
          enable_tests: true
</code></pre>
<h2>Zusammenfassung</h2>
<p>Die Migration von Pipeline-Variables zu Pipeline-Inputs ist eine Sicherheitsverbesserung, die CI/CD-Infrastruktur vor Variable-Injection schützt und gleichzeitig bessere Dokumentation, Typ-Sicherheit und Validierung bietet. Die Implementierung dieser Restriktionen und Übernahme von Pipeline-Inputs verbessert nicht nur die Sicherheit, sondern macht Pipelines wartbarer, selbstdokumentierend und robuster.</p>
<p>Die Transition erfordert initialen Aufwand, die langfristigen Vorteile überwiegen jedoch die Migrationskosten. Der Einstieg erfolgt durch Restriktion von Pipeline-Variables auf Group-Ebene für neue Projekte, gefolgt von systematischer Migration bestehender Pipelines mittels der oben beschriebenen Vorgehensweise.</p>
<p>Sicherheit ist ein kontinuierlicher Prozess. Pipeline-Inputs sind ein wichtiger Schritt zur Schaffung einer sichereren CI/CD-Umgebung und ergänzen weitere GitLab-Sicherheitsfunktionen wie Protected Branches, Job-Token-Allowlists und Container-Registry-Protections.</p>
<blockquote>
<p>Für den Einstieg mit Pipeline-Inputs: <a href="https://about.gitlab.com/free-trial/devsecops/">Kostenlose GitLab-Ultimate-Testversion anfordern</a>.</p>
</blockquote>
]]></content>
        <author>
            <name>Fabio Pitino</name>
            <uri>https://about.gitlab.com/blog/authors/fabio-pitino</uri>
        </author>
        <published>2025-11-04T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GUARD-Framework für automatisierte Security-Detections]]></title>
        <id>https://about.gitlab.com/de-de/blog/unveiling-the-guard-framework-to-automate-security-detections-at-gitlab/</id>
        <link href="https://about.gitlab.com/de-de/blog/unveiling-the-guard-framework-to-automate-security-detections-at-gitlab/"/>
        <updated>2025-11-03T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><a href="https://handbook.gitlab.com/handbook/security/security-operations/">GitLab Security Operations</a> nutzt Automatisierung als zentrales Prinzip, damit Security-Engineers Zeit für wesentliche Aufgaben haben – nicht für standardisierbare manuelle Tätigkeiten, die automatisiert werden können. Dieses Prinzip wurde auf die Absicherung der GitLab.com-SaaS-Plattform angewendet, die täglich Terabytes an Log-Daten generiert. Das GitLab-Security-Team musste Security-Workflows standardisieren, automatisieren und skalieren, um Schutz und Effizienz zu verbessern. Das Ergebnis: Ein neues Framework namens GitLab Universal Automated Detection and Response (GUARD) – eine Kollaboration zwischen dem <a href="https://handbook.gitlab.com/handbook/security/security-operations/sirt/">Security Incident Response Team (SIRT)</a> und dem <a href="https://handbook.gitlab.com/handbook/security/security-operations/signals-engineering/">Signals Engineering Team</a>.</p>
<p>Für deutsche Unternehmen ist dieser systematische Ansatz besonders relevant: Die Automatisierung von Security-Detections unterstützt Compliance-Anforderungen wie ISO 27001 (technisches Schwachstellenmanagement nach A.12.6.1), DSGVO Artikel 32 (angemessene technische Maßnahmen) und BSI Grundschutz OPS.1.1.5 (Protokollierung und Monitoring). Die vollständige Versionierung aller Detection-Änderungen durch das Framework schafft einen lückenlosen Audit-Trail für Compliance-Nachweise. In der deutschen SIEM-Landschaft nutzen Unternehmen primär Plattformen wie Splunk, Elastic SIEM oder IBM QRadar – GUARD abstrahiert Detection-Logik vom jeweiligen SIEM-System, wodurch Herstellerunabhängigkeit gewährleistet wird.</p>
<p>GUARD deckt alle Aspekte der Security-Detection ab, darunter:</p>
<ul>
<li>Erstellung</li>
<li>Wartung</li>
<li>Alert-Routing und -Handling</li>
<li>Metriken-Erfassung</li>
<li>Workflow für Alert-Closure oder Incident-Eskalation</li>
</ul>
<h2>Die Ziele von GUARD</h2>
<p>GUARD wurde mit einer Reihe zentraler Ziele entwickelt und konzipiert:</p>
<ol>
<li><strong>Standardisierung der Detection- und Alerting-Pipeline von SIRT</strong> zur Produktion qualitativ hochwertiger Detections mit Fokus auf Peer-Reviews und Automatisierung</li>
<li><strong>Reduktion von Alert-Fatigue</strong> durch Alert-Konsolidierung, Deduplizierung, Risk-Scoring und automatisiertes Feedback</li>
<li><strong>Metriken</strong> zur Messung der Response-Effizienz und frühzeitigen Identifikation von Problemen</li>
<li><strong>GitLab als Kern</strong> durch Nutzung von GitLab als Single Source of Truth für Detection-Definitionen</li>
</ol>
<h2>Die Design-Prinzipien von GUARD</h2>
<p>GUARD entstand aus operativer Notwendigkeit mit klarer Zielvorstellung. Vor GUARD folgten Detections keinem Standardformat, Alert-Metriken waren nicht verfügbar, Detection-Erstellung und -Wartung erfolgten ad-hoc. Ein skalierbares, GitLab-zentriertes Framework mit Automatisierung manueller Aufgaben war zentral für den Erfolg von GUARD. Durch die realisierten Zeiteffizienzgewinne haben SecOps-Engineers mehr Kapazität für komplexe Probleme und anspruchsvolle Incidents.</p>
<h2>GUARD-Komponenten</h2>
<p>Das GUARD-Framework besteht aus mehreren Modulen. Im Zentrum steht die GitLab-Plattform selbst – sie fungiert als Single Source of Truth für Detection-Rules und ermöglicht SIRT das automatische Deployment von Detections as Code mittels GitLab CI/CD.</p>
<p>GUARD umfasst folgende Komponenten:</p>
<ul>
<li><strong>Detection as Code (DaC)</strong> - Deployed Detections durch die GitLab-CI/CD-Pipeline.</li>
<li><strong>User Attestation Module</strong> - Ermöglicht GitLab-Teammitgliedern, zu potenziell bösartigen Aktivitäten Stellung zu nehmen.</li>
<li><strong>Enrichments</strong> - Abfrage historischer und kontextueller Informationen zur Alert-Anreicherung für einfachere Triage.</li>
<li><strong>Alert Triage and Response</strong> - Bereitstellung eines standardisierten Formats für Alert-Triage und vordefinierter Eskalationsaktionen.</li>
<li><strong>Metrics Generation</strong> - Erfassung von Insights zum Alert-Handling.</li>
</ul>
<p>Jedes GUARD-Modul arbeitet zusammen, um GitLabs Security-Detections und Alert-Pipeline zu standardisieren, automatisieren und iterativ zu verbessern.</p>
<h2>GitLab als Kern</h2>
<p>GitLab ist zentral für kritische GUARD-Komponenten: als Single Source für Threat-Detections, zur Automatisierung der Detection-as-Code-Pipeline durch GitLab CI/CD und als &quot;Frontend&quot; für GUARD, über das Security-Engineers Threat-Detections hinzufügen, bearbeiten und löschen können.</p>
<p>Wie GitLab-Features GUARD nutzen:</p>
<ul>
<li><a href="https://docs.gitlab.com/ee/user/get_started/get_started_projects.html">GitLab Projects</a>: GUARD nutzt ein GitLab-Projekt-Repository als Single Source für GUARD-Threat-Detections, gespeichert im JSON-Format.</li>
<li><a href="https://docs.gitlab.com/ee/user/project/merge_requests/">GitLab MRs</a>: Alle Änderungen an GUARD-Detections, einschließlich neuer Detections, nutzen GitLab-MRs gegen das Haupt-GUARD-Projekt. Ein detailliertes MR-Template wird verwendet, in dem Details zur hinzugefügten, bearbeiteten oder gelöschten Detection validiert und dokumentiert werden. MR-Approval-Rules, einschließlich CodeOwners und Protected Branches, stellen sicher, dass ordnungsgemäße Detection-Reviews vor dem Merge abgeschlossen sind.</li>
<li><a href="https://docs.gitlab.com/ee/user/project/issues/">GitLab Issues</a>: Bug-Reports oder andere Engineering-Aufgaben im Zusammenhang mit GUARD werden in GitLab Issues erfasst.</li>
<li><a href="https://docs.gitlab.com/ee/user/project/labels.html">GitLab Labels</a>: Ein Set standardisierter Labels stellt sicher, dass Security-Engineers GUARD-Änderungen auf leicht nachvollziehbare Weise dokumentieren.</li>
<li><a href="https://docs.gitlab.com/ee/ci/">GitLab CI/CD</a>: GUARD nutzt eine GitLab-CI-Pipeline zur Automatisierung des Deployments neuer, geänderter oder gelöschter Detections in GitLabs Security Incident and Event Management (SIEM). Die CI-Pipeline von GUARD führt zahlreiche Validierungs-, Test- und Qualitätschecks durch, bevor die Pipeline erfolgreich passiert wird und Änderungen in GitLabs SIEM-Plattform committed werden.</li>
</ul>
<h2>Metriken-Generierung</h2>
<p>Interaktionen mit der Alert-Handling-Oberfläche werden erfasst, um zentrale Performance-Metriken zu generieren: Time to Respond, Time to Resolve sowie Insights zu Alerts wie True/False-Positive-Rates. Zusätzlich erfasste Metadaten beinhalten eine Emoji-basierte Sentiment-Analyse. Engineers, die Alerts bearbeiten, geben &quot;Feedback&quot; zu behandelten Alerts in Form von Emojis, sodass dieses Feedback bei der Iteration von Detection-Rules berücksichtigt werden kann.</p>
<p>Alert-Handling-Metriken werden in einer separaten Datenbank gespeichert, um Visualisierungen zu erstellen, die von Engineers und Management konsultiert werden. Diese sind zentral für das Verständnis der Team-Performance bei Alert-Resolution und Alert-Fidelity, sodass kontinuierliche Verbesserung möglich ist.</p>
<h2>Gemeinsam iterieren</h2>
<p>Die Nutzung von GitLab als Single Source of Truth für Threat-Detection-Code ermöglichte GUARD, Prozesse von spezifischer SIEM-Technologie zu extrahieren. Dies unterstützt größere Flexibilität, einfachere Nutzung, Modularisierung und Audit-Fähigkeit. Für deutsche Unternehmen mit strengen Datenschutzanforderungen ist relevant: Die Lösung funktioniert vollständig mit GitLab Self-Managed, sodass keine Detection-Daten externe Cloud-Systeme verlassen müssen.</p>
<p><a href="https://handbook.gitlab.com/handbook/values/#iteration">Iteration</a> ist ein zentraler GitLab-Wert – wir starten mit dem kleinsten wertvollen Element, um schnelles Feedback zu erhalten und effizient ein gewünschtes Endziel zu erreichen. GUARD ist keine Ausnahme. Wir hoffen, dass das Teilen von GUARD Lesern hilft, in Richtung eigener Automatisierungsverbesserungen zu iterieren.</p>
<p><em>Dieser Artikel ist der erste einer Serie über GitLab GUARD. Als Nächstes werden wir Details zu verschiedenen Aspekten unserer iterativen Journey zur Implementierung von GUARD bei GitLab teilen. Der zweite Teil der Serie, &quot;<a href="https://about.gitlab.com/de-de/blog/automating-cybersecurity-threat-detections-with-gitlab-ci-cd/">Cybersecurity-Bedrohungen mit GitLab CI/CD automatisieren</a>&quot;, beschreibt den Detection-as-Code-Workflow mit CI/CD-Pipeline-Details, automatisierten Quality-Gates und praktischen Implementierungsbeispielen.</em></p>
]]></content>
        <author>
            <name>Harjeet Sharma</name>
            <uri>https://about.gitlab.com/blog/authors/harjeet-sharma</uri>
        </author>
        <author>
            <name>Valentine Mairet</name>
            <uri>https://about.gitlab.com/blog/authors/valentine-mairet</uri>
        </author>
        <author>
            <name>Matt Coons</name>
            <uri>https://about.gitlab.com/blog/authors/matt-coons</uri>
        </author>
        <published>2025-11-03T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Cybersecurity-Bedrohungen mit GitLab CI/CD automatisieren]]></title>
        <id>https://about.gitlab.com/de-de/blog/automating-cybersecurity-threat-detections-with-gitlab-ci-cd/</id>
        <link href="https://about.gitlab.com/de-de/blog/automating-cybersecurity-threat-detections-with-gitlab-ci-cd/"/>
        <updated>2025-10-30T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><em>Dieser Blogpost ist der zweite Beitrag einer Serie über <a href="https://about.gitlab.com/blog/unveiling-the-guard-framework-to-automate-security-detections-at-gitlab/">GitLab Universal Automated Response and Detection (GUARD)</a>.</em></p>
<p>Die Erstellung und Bereitstellung von Security-Threat-Detections in einem Security Information Event Management System (SIEM) ist zentrale Komponente erfolgreicher Cybersecurity-Programme. Der Übergang von manueller Detection-Erstellung zu vollautomatisierten Prozessen durch Detection as Code (DaC) gewährleistet Konsistenz, Qualität, Audit-Fähigkeit und automatisierte Tests. Bei GitLab haben wir DaC-Funktionen in GUARD integriert, unser vollautomatisiertes Detection- und Response-Framework.</p>
<p>Für deutsche Unternehmen ist dieser systematische Ansatz besonders relevant: Die Automatisierung von Security-Detections unterstützt Compliance-Anforderungen wie ISO 27001 (technisches Schwachstellenmanagement nach A.12.6.1), DSGVO Artikel 32 (angemessene technische Maßnahmen) und BSI Grundschutz OPS.1.1.5 (systematische Protokollierung). Die vollständige Versionierung aller Detection-Änderungen schafft zudem einen lückenlosen Audit-Trail für Compliance-Nachweise.</p>
<h2>Die Herausforderung: Source Control und automatisierte Tests</h2>
<p>Die <a href="https://handbook.gitlab.com/handbook/security/security-operations/signals-engineering/">Signals-Engineering-</a> und <a href="https://handbook.gitlab.com/handbook/security/security-operations/sirt/">SIRT-Teams</a> bei GitLab teilen sich die Verantwortung für Erstellung, Aktualisierung und Außerbetriebnahme von Threat-Detections im SIEM. Die Aufrechterhaltung einer Single Source of Truth für Detections ist kritisch, um Konsistenz und Qualitätsstandards sicherzustellen. Unsere Teams entschieden bewusst, den Detection-Erstellungsprozess vom SIEM zu abstrahieren. Dadurch verbesserten sich Issue-Tracking, Konsistenz, Rollback-Prozesse und Metriken.</p>
<p>Zusätzlich stellten Pre-Commit-Detection-Tests außerhalb des SIEM sicher, dass neu erstellte Detections keine übermäßig False-Positive-lastigen Alerts einführten, die Tuning oder Deaktivierung während der Fehlerkorrektur erfordert hätten.</p>
<h2>Die Lösung: GitLab CI/CD für Detection-Testing und -Validierung nutzen</h2>
<p>Um diese Herausforderungen zu adressieren, entwickelten wir einen Workflow mit GitLab <a href="https://about.gitlab.com/topics/ci-cd/">CI/CD</a>, der zu einem sicheren SIEM-Detection-Deployment-Prozess mit systematischer Validierung führte.</p>
<h3>Kernkomponenten der GUARD-DaC-Pipeline</h3>
<p><strong>1. Detections in JSON-Format in GitLab-Projekt gespeichert</strong></p>
<p>GitLab nutzt das JSON-Format für Threat-Detections. Das Template enthält essenzielle Informationen wie SIEM-Query-Logik, Detection-Titel und -Beschreibung sowie Runbook-Page-Link, MITRE-Tactic und -Technique zur Detection und weitere notwendige Details.</p>
<p><strong>2. Merge Requests initiieren</strong></p>
<p>Wenn ein GitLab-Teammitglied eine neue Threat-Detection erstellen, eine existierende aktualisieren oder eine aktuelle Detection löschen möchte, initiiert es den Prozess durch Einreichen eines Merge Request (MR) im DaC-Projekt, das das Detection-JSON-Template enthält. Die Erstellung des MR löst automatisch eine CI/CD-Pipeline aus.</p>
<p><strong>3. Automatisierte Validierung durch CI/CD-Jobs</strong></p>
<p>Jeder MR enthält automatisierte Checks via GitLab CI/CD:</p>
<ul>
<li>Query-Format-Validierung: SIEM-API-Abfrage stellt sicher, dass die Detection-Query valide ist</li>
<li>JSON-Detection-Fields-Validierung: Validiert, dass alle erforderlichen Felder vorhanden sind und im korrekten Format vorliegen</li>
<li>Neue Detections und Detection-Modifikationen lösen SIEM-API-Calls aus, um sicherzustellen, dass die Detection keine Fehler enthält und keine Probleme in Production-Detection-Rules eingeführt werden</li>
<li>Detection-Deletion-MRs lösen Pipeline-SIEM-API-Queries aus, um zu prüfen, dass die zu löschende Detection noch aktiv ist und gelöscht werden kann</li>
</ul>
<p><strong>4. Peer Review und Approval</strong></p>
<p>Wenn ein Detection-MR-Job erfolgreich abgeschlossen ist, ist ein Peer Review erforderlich, um zu prüfen und zu bestätigen, dass der MR die erforderlichen Qualitäts- und Content-Standards erfüllt, bevor der Detection-MR gemergt werden kann. <a href="https://docs.gitlab.com/ee/user/project/merge_requests/approvals/rules.html">Merge-Request-Approval-Rules</a> werden genutzt, um den Peer-Review-Prozess auszulösen.</p>
<p><strong>5. Merge und finales Deployment</strong></p>
<p>Nach MR-Approval wird dieser in den Main-Branch gemergt. Als Teil der CI/CD-Pipeline führt ein automatisierter Job einen SIEM-API-Command aus, um zwei Aufgaben durchzuführen:</p>
<ul>
<li>Die neue Detection erstellen oder die existierende Detection aktualisieren/löschen, falls erforderlich</li>
<li>MITRE-ATT&amp;CK-Tactic- und -Technique-Informationen zur Alert aus den JSON-Dateien extrahieren und diese Details an eine Lookup-Table im SIEM übermitteln. Diese Lookup-Table spielt eine wichtige Rolle beim Mapping unserer Alerts zu MITRE-Tactics und -Techniques und hilft uns, unsere Threat-Analyse zu verbessern und Lücken in unseren Detection-Capabilities in Alignment mit dem MITRE-Framework zu identifizieren.</li>
</ul>
<p><strong>Hinweis:</strong> Die notwendigen Credentials für diese Aktionen werden sicher in <a href="https://docs.gitlab.com/ee/ci/variables/">CI/CD-Variablen</a> gespeichert, um sicherzustellen, dass der Prozess vertraulich und sicher bleibt.</p>
<p>Nachfolgend ein Template für eine GitLab-CI/CD-<code>gitlab-ci.yml</code>-Konfigurationsdatei für eine DaC-Pipeline:</p>
<pre><code>#
---------------------------------------------------------------------------
#
# GitLab CI/CD Pipeline for SIEM Detection Management
#
---------------------------------------------------------------------------
#

image: python:3.12

#
---------------------------------------------------------------------------
#
# Global Configuration
#
---------------------------------------------------------------------------
#

before_script:
  - apt-get update &amp;&amp; apt-get install -y jq
  - pip install --upgrade pip
  - pip install -r requirements.txt

#
---------------------------------------------------------------------------
#

stages:
  - fetch
  - test
  - process
  - upload

#
---------------------------------------------------------------------------
#
# Fetch Stage
#
---------------------------------------------------------------------------
#

fetch_changed_files:
  stage: fetch
  script:
    - echo &quot;Fetching changed files...&quot;
    - git branch
    - git fetch origin $CI_DEFAULT_BRANCH:$CI_DEFAULT_BRANCH --depth 2000
    - |
      if [[ &quot;$CI_COMMIT_BRANCH&quot; == &quot;$CI_DEFAULT_BRANCH&quot; ]]; then
        git diff --name-status HEAD^1...HEAD &gt; changed-files-temp.txt
      else
        git fetch origin $CI_COMMIT_BRANCH:$CI_COMMIT_BRANCH --depth 2000
        git diff --name-status ${CI_DEFAULT_BRANCH}...${CI_COMMIT_SHA} &gt; changed-files-temp.txt
      fi
    - grep -E '\.json$' changed-files-temp.txt &gt; changed-files.txt || true
    - flake8 .
    - pytest
  artifacts:
    paths:
      - changed-files.txt
    expose_as: 'changed_files'

#
---------------------------------------------------------------------------
#
# Test Stage
#
---------------------------------------------------------------------------
#

flake8:
  stage: test
  script:
    - echo &quot;Running Flake8 for linting...&quot;
    - flake8 .

pytest:
  stage: test
  script:
    - echo &quot;Running Pytest for unit tests...&quot;
    - pytest
  artifacts:
    when: always
    reports:
      junit: report.xml

#
---------------------------------------------------------------------------
#
# Process Stage
#
---------------------------------------------------------------------------
#

process_files:
  stage: process
  script:
    - echo &quot;Processing changed files...&quot;
    - git clone --depth 2000 --branch $CI_DEFAULT_BRANCH $CI_REPOSITORY_URL
    - mkdir -p modified_rules delete_file new_file
    - python3 move-files.py -x changed-files.txt
    - python3 check-alerts-format.py
  artifacts:
    paths:
      - modified_rules
      - delete_file
      - new_file
#
---------------------------------------------------------------------------
#
# Upload Stage
#
---------------------------------------------------------------------------
#

update_rules:
  stage: upload
  script:
    - echo &quot;Uploading updated rules and lookup tables...&quot;
    - git fetch origin $CI_DEFAULT_BRANCH:$CI_DEFAULT_BRANCH --depth 2000
    - git clone --depth 2000 --branch $CI_DEFAULT_BRANCH $CI_REPOSITORY_URL 
    - python3 update-rules.py
    - python3 update-exceptions.py
    - python3 create_ttps_layers.py
  rules:
    - if: $CI_COMMIT_BRANCH == &quot;main&quot; &amp;&amp; $CI_PIPELINE_SOURCE != &quot;schedule&quot;
      changes:
        - detections/**/*
        - exceptions/**/*
</code></pre>
<p>Das folgende Diagramm illustriert den Workflow des oben beschriebenen CI/CD-Prozesses mit seinen vier Phasen: Fetch (Änderungen identifizieren), Test (Linting und Tests), Process (Dateien kategorisieren) und Upload (Rules und Lookup-Tables aktualisieren).</p>
<pre><code class="language-mermaid">graph TD;
    fetch[Fetch Stage: Identify Changed Files] --&gt; test[Test Stage: Run Linting and Tests];
    test --&gt; process[Process Stage: Categorize Files];
    process --&gt; upload[Upload Stage: Update Rules and Lookup Tables];
    fetch --&gt; fetch_details[Details: Filter JSON files, Output 'changed-files.txt'];
    test --&gt; test_details[Details: Run Flake8 for linting, Pytest for testing];
    process --&gt; process_details[Details: Categorize into 'modified', 'new', 'deleted', Prepare for upload];
    upload --&gt; upload_details[Details: Update repo, Update detections in SIEM and SIEM lookup table];
</code></pre>
<p>In der deutschen SIEM-Landschaft nutzen Unternehmen primär Plattformen wie Splunk, Elastic SIEM oder IBM QRadar. Der hier beschriebene DaC-Ansatz abstrahiert Detection-Logik vom jeweiligen SIEM-System durch JSON-Templates, wodurch Herstellerunabhängigkeit gewährleistet wird. Für deutsche Unternehmen mit strengen Datenschutzanforderungen ist relevant: Die Lösung funktioniert vollständig mit GitLab Self-Managed, sodass keine Detection-Daten externe Cloud-Systeme verlassen müssen.</p>
<h2>Benefits und Ergebnisse</h2>
<p>Die Automatisierung unseres Detection-Lifecycles durch einen DaC-CI/CD-gestützten Workflow bringt zahlreiche Benefits für unseren Threat-Detection-Deployment-Prozess:</p>
<ul>
<li><strong>Automatisierung:</strong> Die Automatisierung von Erstellung und Validierung der SIEM-Detections reduziert manuelle Fehler durch systematische Validierungsstufen und spart Zeit durch Pipeline-Automatisierung.</li>
<li><strong>Enhanced Security:</strong> Der CI-gesteuerte Workflow setzt eine Least-Privilege-Policy um und gewährleistet Konsistenz, Peer Reviews und Qualitätsstandards für Erstellung, Aktualisierung oder Löschung von Threat-Detections.</li>
<li><strong>Effizienz:</strong> Das standardisierte JSON-Detection-Format und die automatisierte Erstellung verkürzen den Deployment-Cycle von Detection-Erstellung bis SIEM-Integration.</li>
<li><strong>Kollaboration:</strong> Der MR- und Review-Prozess implementiert das in Deutschland übliche Vier-Augen-Prinzip: Jede Detection-Änderung durchläuft systematische Peer-Reviews, bevor sie in Production gelangt. Dies gewährleistet nicht nur fachliche Qualität, sondern erfüllt auch Governance-Anforderungen für kritische Sicherheitssysteme.</li>
<li><strong>Version Control:</strong> Die Behandlung von Threat-Detections als Code abstrahiert die Detections von der SIEM-Plattform, in der sie letztlich gespeichert werden. Diese Abstraktion liefert einen historischen Record von Änderungen, erleichtert Kollaboration und ermöglicht Rollbacks zu vorherigen Konfigurationen, falls Probleme auftreten.</li>
</ul>
<h2>Mit DaC starten</h2>
<p>Die Nutzung von GitLab CI/CD und einer Least-Privilege-Policy hat unser SIEM-Detection- und Alert-Management mit definierten Quality-Gates systematisiert. Automatisierung hat Effizienz verbessert und Risiken reduziert und bietet ein hilfreiches Beispiel für andere, die ihre Security und Compliance verbessern möchten. Sie können dieses Tutorial ausprobieren, indem Sie sich für eine <a href="https://about.gitlab.com/free-trial/">kostenlose Testversion von GitLab Ultimate</a> anmelden. Für Unternehmen mit Data-Sovereignty-Anforderungen steht GitLab Self-Managed zur Verfügung.</p>
]]></content>
        <author>
            <name>Mitra Jozenazemian</name>
            <uri>https://about.gitlab.com/blog/authors/mitra-jozenazemian</uri>
        </author>
        <published>2025-10-30T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[MR-Review-Zeit mit Value Stream Management reduzieren]]></title>
        <id>https://about.gitlab.com/de-de/blog/how-we-reduced-mr-review-time-with-value-stream-management/</id>
        <link href="https://about.gitlab.com/de-de/blog/how-we-reduced-mr-review-time-with-value-stream-management/"/>
        <updated>2025-10-30T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Das GitLab Engineering-Team nutzt die eigenen Produkte intern – eine Praxis, die im Englischen als &quot;Dogfooding&quot; bezeichnet wird. Diese Selbstnutzung hat zu Verbesserungen bei der Beschleunigung der Software-Delivery-Zyklen für Kunden geführt. Dieser Artikel beleuchtet einen spezifischen Anwendungsfall, bei dem <a href="https://about.gitlab.com/solutions/value-stream-management/">GitLab Value Stream Management (VSM)</a> Verbesserungen für unser Engineering-Team ermöglicht hat. Es wird gezeigt, wie VSM dabei half, zwei zentrale Herausforderungen anzugehen: die Messung des Wegs von der Idee bis zur Fertigstellung eines Merge Requests und die Optimierung der Deployment-Workflows.</p>
<p>Value Stream Management ist in der deutschen Industrie als Wertstromanalyse etabliert – insbesondere in der Fertigung und Automobilbranche wird diese Lean-Methode zur Identifikation von Verschwendung eingesetzt. GitLabs VSM-Funktionen übertragen diesen systematischen Ansatz auf Software-Entwicklungsprozesse und ermöglichen die Unterscheidung zwischen wertschöpfenden und nicht-wertschöpfenden Aktivitäten im Entwicklungsworkflow.</p>
<h2>Die Herausforderung: Engpässe in MR-Reviews identifizieren</h2>
<p>Trotz gut definierter Workflows stellte ein Team fest, dass Merge Requests länger als erwartet brauchten, um geprüft und gemerged zu werden. Die Herausforderung bestand nicht nur in den Verzögerungen selbst, sondern darin zu verstehen, wo im Review-Prozess diese Verzögerungen auftraten und warum.</p>
<p>Das Ziel des Teams war klar:</p>
<ul>
<li>Identifizieren, wo Zeit vom initialen Konzept bis zum finalen Merge eines MR verbracht wurde</li>
<li>Spezifische Engpässe im Review-Prozess lokalisieren</li>
<li>Verstehen, wie MR-Größe, Komplexität oder Dokumentationsqualität die Review-Zeit beeinflussen</li>
</ul>
<h2>Der Ansatz: MR-Review-Zeit in GitLab Value Stream Analytics messen</h2>
<p>Value Stream Analytics (VSA) ermöglicht es Organisationen, ihren gesamten Workflow von der Idee bis zur Auslieferung abzubilden und dabei zwischen wertschöpfenden Aktivitäten (VA) und nicht-wertschöpfenden Aktivitäten (NVA) im Prozessfluss zu unterscheiden. Durch die Berechnung des Verhältnisses von wertschöpfender Zeit zur gesamten Lead Time kann das Team verschwenderische Aktivitäten identifizieren, die zu Verzögerungen bei MR-Reviews führen.</p>
<p>Um die notwendigen Metriken zu erhalten, passte das Team GitLab VSA an, um bessere Sichtbarkeit in den MR-Review-Prozess zu erhalten.</p>
<h3>1. Custom Stage für MR-Review einrichten</h3>
<p>Das Team fügte eine <a href="https://docs.gitlab.com/ee/user/group/value_stream_analytics/#value-stream-stage-events">neue Custom Stage</a> in VSA mit dem Namen <strong>Review Time to Merge</strong> hinzu, um spezifisch die Zeit vom ersten Zuweisen eines Reviewers bis zum Merge des MR zu tracken.</p>
<ul>
<li>Start-Event: MR first reviewer assigned</li>
<li>End-Event: MR merged</li>
</ul>
<p>Durch die Definition dieser Stage begann VSA, die Dauer des MR-Review-Prozesses zu messen und lieferte präzise Daten darüber, wo Zeit verbracht wurde.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097884/Blog/Content%20Images/Blog/Content%20Images/image2_aHR0cHM6_1750097883929.png" alt="Defining stage of VSA"></p>
<h3>2. Total Time Chart für Klarheit nutzen</h3>
<p>Mit der Custom Stage eingerichtet, nutzte das Team das <a href="https://about.gitlab.com/blog/value-stream-total-time-chart/"><strong>Total Time Chart</strong> auf der VSA Overview-Seite</a> (<strong>Analyze &gt; Value Stream</strong>), um zu visualisieren, wie viel Zeit während der neuen MR-Review-Stage verbracht wurde. Durch den Vergleich der Werte, die durch jeden Bereich im Chart dargestellt wurden, konnte das Team schnell identifizieren, wie diese Stage zur gesamten Software-Delivery-Lifecycle-Zeit (SDLC) beitrug.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1750097884/Blog/Content%20Images/Blog/Content%20Images/image1_aHR0cHM6_1750097883930.png" alt="total time chart for VSA"></p>
<h3>3. Für tiefere Erkenntnisse detailliert analysieren</h3>
<p>Um spezifische Verzögerungen zu untersuchen, nutzte das Team die <strong>Stage Navigation Bar</strong>, um tiefer in die MR-Review-Stage einzutauchen. Diese Ansicht ermöglichte:</p>
<ul>
<li>MRs nach Review-Zeit sortieren: Die Stage-Tabelle zeigte alle zugehörigen MRs sortiert nach Review-Dauer, sodass langsame MRs leicht erkennbar waren</li>
<li>Individuelle MRs analysieren: Für jeden MR konnte das Team Faktoren wie Verzögerungen bei der Reviewer-Zuweisung, mehrere Feedback-Runden, Leerlaufzeit nach Approval und MR-Größe/Komplexität untersuchen</li>
</ul>
<h2>Das Ergebnis: Umsetzbare Erkenntnisse und Verbesserungen</h2>
<p>Durch die Anpassung von VSA zur Verfolgung der <a href="https://docs.gitlab.com/user/project/merge_requests/reviews/">MR-Review-Zeit</a> deckte das Team mehrere zentrale Erkenntnisse auf:</p>
<ul>
<li><strong>Verzögerungen bei Reviewer-Zuweisung:</strong> Einige MRs erfuhren Verzögerungen, weil Reviewer spät zugewiesen wurden oder Reviewer zu viele MRs in ihrer Queue hatten</li>
<li><strong>Langsame Review-Start-Zeiten:</strong> Selbst nach Zuweisung lagen bestimmte MRs untätig, bevor Reviews begannen – oft aufgrund von Kontextwechseln oder konkurrierenden Prioritäten</li>
<li><strong>Mehrere Feedback-Schleifen:</strong> Größere MRs erforderten oft mehrere Feedback-Runden, was die Review-Zeit erheblich verlängerte</li>
<li><strong>Leerlaufzeit nach Approval:</strong> Einige MRs wurden approved, aber nicht zeitnah gemerged – oft aufgrund von Deployment-Koordinationsproblemen</li>
</ul>
<p>Für den Engineering Manager im Team erwies sich VSA als wertvoll für die Verwaltung des Team-Workflows: &quot;Ich habe VSA genutzt, um zu begründen, wo wir Zeit bei der MR-Fertigstellung verbrachten. Wir haben VSA auf unsere Bedürfnisse angepasst, und es war sehr hilfreich für unsere Untersuchungen nach Verbesserungsmöglichkeiten.&quot;</p>
<p>Aus dieser Dogfooding-Erfahrung entwickeln wir nun eine wichtige Erweiterung zur Verbesserung der Sichtbarkeit in den Review-Prozess. Wir fügen ein neues Event zu VSA hinzu – <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/503754">Merge request last approved at</a> – das eine Stage erzeugt, die MR-Review-Schritte noch granularer aufschlüsselt.</p>
<h2>Die Kraft datengestützter Entscheidungen</h2>
<p>Durch die Nutzung von GitLabs VSA haben wir nicht nur Engpässe identifiziert – wir erhielten umsetzbare Erkenntnisse, die zu Verbesserungen bei der MR-Review-Zeit und der allgemeinen Entwickler-Produktivität führten. Wir optimierten Merge-Request-Review-Zyklen und erhöhten den Entwickler-Durchsatz, was unser Commitment zu kontinuierlicher Verbesserung durch Messung bestätigt.</p>
<blockquote>
<p>Möchtest du erfahren, wie VSA deinem Team helfen kann? <a href="https://about.gitlab.com/free-trial/">Starte eine kostenlose GitLab Ultimate-Testversion</a>, passe deine Value Streams an und sieh, wie du Verbesserungen im gesamten SDLC für deine Teams erreichen kannst. <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/520962">Teile dann dein Feedback und deine Erfahrungen in diesem Issue</a>.</p>
</blockquote>
<h2>Weiterführende Informationen</h2>
<ul>
<li><a href="https://about.gitlab.com/the-source/platform/optimize-value-stream-efficiency-to-do-more-with-less-faster/">Optimize value stream efficiency to do more with less, faster</a></li>
<li><a href="https://about.gitlab.com/blog/new-scheduled-reports-generation-tool-simplifies-value-stream-management/">New Scheduled Reports Generation tool simplifies value stream management</a></li>
<li><a href="https://docs.gitlab.com/user/group/value_stream_analytics/">Value stream analytics documentation</a></li>
<li><a href="https://about.gitlab.com/blog/value-stream-total-time-chart/">Value stream management: Total Time Chart simplifies top-down optimization flow</a></li>
</ul>
]]></content>
        <author>
            <name>Haim Snir</name>
            <uri>https://about.gitlab.com/blog/authors/haim-snir</uri>
        </author>
        <published>2025-10-30T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Planung ohne Kontext-Wechsel – mit GitLab Duo Planner]]></title>
        <id>https://about.gitlab.com/de-de/blog/ace-your-planning-without-the-context-switching/</id>
        <link href="https://about.gitlab.com/de-de/blog/ace-your-planning-without-the-context-switching/"/>
        <updated>2025-10-28T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Software-Entwicklungsteams verwalten viele parallele Aufgaben mit begrenzten Ressourcen. Die Planung erfordert kontinuierliche Arbeit: Anforderungen strukturieren, Backlogs pflegen, Delivery tracken und Status-Updates erstellen.</p>
<p>Der Planungsaufwand reduziert die Zeit für strategische Entscheidungen, die Produkte tatsächlich voranbringen.</p>
<p>Für diese Herausforderung haben wir <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/">GitLab Duo Planner</a> entwickelt – einen KI-Agent auf Basis der <a href="https://about.gitlab.com/gitlab-duo/agent-platform/">GitLab Duo Agent Platform</a>, der Produktmanager direkt in GitLab unterstützt.</p>
<p>GitLab Duo Planner ist kein generischer KI-Assistent. Die Produkt- und Engineering-Teams bei GitLab haben den Agent gezielt für Planungs-Workflows entwickelt, um Overhead zu reduzieren und gleichzeitig Alignment und Planbarkeit zu verbessern.</p>
<h2>Unterstützung für deine Planung</h2>
<p>Drei Herausforderungen in der Planungspraxis:</p>
<ol>
<li>Ungeplante Arbeit – Unkoordinierte Tasks und verwaiste Work Items reduzieren das Vertrauen in die Planung.</li>
<li>Unterbrechungen – Ständige Status-Anfragen unterbrechen den Entwicklungsfluss.</li>
<li>Intransparenz – Risiken werden zu spät sichtbar, um gegenzusteuern.</li>
</ol>
<p>GitLab Duo Planner unterstützt Teams bei diesen Aufgaben: Der Agent strukturiert vage Ideen in konkrete Anforderungen, identifiziert Backlog-Probleme frühzeitig und wendet Priorisierungs-Frameworks wie RICE und MoSCoW an. Durch die Integration in GitLab hat der Agent Zugriff auf den vollständigen Kontext der Plattform. Die foundational agent architecture ermöglicht GitLab-spezifisches Wissen und Kontext-Awareness.</p>
<h2>Für Teams entwickelt</h2>
<p>GitLab Duo Planner arbeitet mit Work Items (Epics, Issues, Tasks) und versteht Work Breakdown Structures, Dependency-Analysen und Aufwandsschätzungen. Dies verbessert Transparenz, Alignment und Planungssicherheit.</p>
<p><strong>Plattform-Ansatz:</strong> Im Unterschied zu Einzellösungen orchestriert Duo Planner über die gesamte GitLab-Plattform – von der Planung über Development bis Testing. Dies schafft Transparenz über Teams und Workflows hinweg.</p>
<p><strong>Im Workflow integriert:</strong> Kein Wechsel zwischen Tools oder tiefes Navigieren in GitLab erforderlich. Duo Planner ermöglicht Beiträge, Kollaboration und Transparenz für alle Beteiligten im Software Development Lifecycle.</p>
<p><strong>Zeitersparnis:</strong> Duo Planner befreit Teams von repetitiver Koordinationsarbeit, verbessert die Planbarkeit von Deliveries und reduziert verpasste Commitments. Der Fokus liegt auf der Arbeit, die tatsächlich Wirkung zeigt.</p>
<h2>Sechs Workflows für Software-Planung</h2>
<p>GitLab Duo Planner unterstützt verschiedene Phasen der Software-Planung und arbeitet innerhalb des Planungsbereichs – einer definierten Umgebung mit Projekt-Visibility.</p>
<p>Der Agent deckt sechs Workflows ab:</p>
<p><strong>Priorisierung:</strong> Frameworks wie RICE, MoSCoW oder WSJF werden angewendet, um Work Items systematisch zu ranken. RICE bewertet nach Reach, Impact, Confidence und Effort. MoSCoW kategorisiert nach Must have, Should have, Could have, Won't have. WSJF (Weighted Shortest Job First) gewichtet nach Business Value, Time Criticality und Risk Reduction.</p>
<p><strong>Work Breakdown:</strong> Initiativen werden in Epics, Features und User Stories zerlegt, um Anforderungen zu strukturieren. Dies folgt der hierarchischen Work Item-Struktur in GitLab.</p>
<p><strong>Dependency-Analyse:</strong> Der Agent identifiziert blockierte Arbeit und versteht Beziehungen zwischen Items, um die Velocity aufrechtzuerhalten. Abhängigkeiten werden als Blocker oder &quot;blocked by&quot;-Relationen erfasst.</p>
<p><strong>Planung:</strong> Organisation von Sprints, Milestones oder Quartalsplanungen. Der Agent berücksichtigt dabei die verfügbare Kapazität und bestehende Commitments.</p>
<p><strong>Status-Reporting:</strong> Generierung von Zusammenfassungen über Projekt-Fortschritt, Risiken und Blocker zum Tracking von Deliveries. Die Reports strukturieren sich nach Overview, Milestone-Status, In-Progress Items, Dependencies und Blockers.</p>
<p><strong>Backlog Management:</strong> Identifikation veralteter Issues, Duplikate oder Items, die Verfeinerung benötigen. Dies verbessert die Datenhygiene im Backlog.</p>
<h2>Demonstration: Status-Check einer Initiative</h2>
<p>Hier siehst du, wie GitLab Duo Planner den Status einer Initiative prüft:</p>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1131065078?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;GitLab Duo Planner Agent&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>Duo Planner ist als Custom Agent im Duo Chat Side Panel verfügbar und nutzt den aktuellen Seiten-Kontext.</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1761323689/ener1mkyj9shg6zvtp4f.png" alt="Duo Planner als Custom Agent im Duo Chat Side Panel"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>Wir fragen Duo Planner nach dem Status einer Initiative, indem wir den Epic-Link angeben:</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1761323689/gzv2xudegtjhtesz1oaz.png" alt="Abfrage des Initiative-Status durch Angabe des Epic-Links"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>Der Agent liefert eine strukturierte Zusammenfassung mit Overview, aktuellem Status der Milestones, in Bearbeitung befindlichen Items, Dependencies und Blockern sowie umsetzbaren Empfehlungen.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1761323690/guoyqe1b9bstmbjzunez.png" alt="Strukturierte Zusammenfassung"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>Als Nächstes fordern wir eine Executive Summary an, um Stakeholder zu informieren. GitLab Duo Planner reduziert den manuellen Analyseaufwand für Reports und unterstützt schnellere Entscheidungen.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1761323689/xs9zxawqrytfu54ejx2b.png" alt="Anforderung einer Executive Summary"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1761323690/bsbpvjaqnymobzg4knhu.png" alt="Ausgabe der Executive Summary"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>Weitere Beispiel-Prompts für GitLab Duo Planner:</p>
<ul>
<li>&quot;Welche Bugs mit dem Label 'boards' sollten wir priorisieren, unter Berücksichtigung der User Impact?&quot;</li>
<li>&quot;Ranke diese Epics nach strategischem Wert für Q1.&quot;</li>
<li>&quot;Hilf mir, Technical Debt gegen neue Features zu priorisieren.&quot;</li>
<li>&quot;Welche Tasks sind erforderlich, um diese User Story zu implementieren?&quot;</li>
<li>&quot;Schlage einen phasenweisen Ansatz für dieses Projekt vor: (URL einfügen).&quot;</li>
</ul>
<h2>Agile-Planung mit GitLab</h2>
<p>GitLab Duo Planner konzentriert sich gezielt auf Produktmanager und Engineering Manager in Agile-Umgebungen. Diese Spezialisierung ermöglicht verlässliche, umsetzbare Erkenntnisse statt generischer Vorschläge. Der Agent wurde auf GitLabs Planungs-Workflows und Agile Frameworks trainiert.</p>
<p>Die Agent Platform entwickelt sich weiter: Wir arbeiten an einer Familie spezialisierter Agents, die jeweils für spezifische Workflows optimiert sind und zu einer unified intelligence layer beitragen. Der heutige Planner für Software-Teams ist der erste Schritt für KI-gestützte Priorisierung in verschiedenen Team-Kontexten.</p>
<p><strong>Integration in deutsche Agile-Prozesse:</strong> GitLab Duo Planner lässt sich in bestehende Scrum- und Kanban-Workflows integrieren. Der Agent arbeitet mit der Standard-Work-Item-Hierarchie in GitLab und respektiert definierte Projekt-Boundaries. Beispielsweise können Teams den Agent für Sprint Planning einsetzen, indem sie Backlog-Items nach RICE bewerten lassen und anschließend die Ergebnisse im Sprint Planning Meeting verwenden.</p>
<p><strong>Technische Voraussetzungen:</strong> Die Nutzung erfordert GitLab mit aktivierter Duo Chat Funktion. Der Agent operiert innerhalb der konfigurierten Projekt-Visibility und hat Zugriff auf Work Items, für die du Leserechte besitzt. Die Dokumentation erklärt Prerequisites, Anwendungsfälle und Konfiguration im Detail.</p>
<blockquote>
<p>Wenn du GitLab-Kunde bist und GitLab Duo Planner mit eigenen Prompts testen möchtest, findest du in unserer <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/">Dokumentation</a> Prerequisites, Anwendungsfälle und weitere Details.</p>
</blockquote>
]]></content>
        <author>
            <name>Aathira Nair</name>
            <uri>https://about.gitlab.com/blog/authors/aathira-nair</uri>
        </author>
        <author>
            <name>Amanda Rueda</name>
            <uri>https://about.gitlab.com/blog/authors/amanda-rueda</uri>
        </author>
        <published>2025-10-28T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Java-Anwendungen schnell aktualisieren – mit GitLab Duo und Amazon Q]]></title>
        <id>https://about.gitlab.com/de-de/blog/modernize-java-applications-quickly-with-gitlab-duo-with-amazon-q/</id>
        <link href="https://about.gitlab.com/de-de/blog/modernize-java-applications-quickly-with-gitlab-duo-with-amazon-q/"/>
        <updated>2025-10-22T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<h2>Java 8 EOL und Enterprise-Migration</h2>
<p>Java 8 hat im Januar 2019 das Ende der öffentlichen Updates für kommerzielle Nutzung erreicht. Laut aktuellen Telemetrie-Daten laufen jedoch fast 50 Prozent aller produktiven Workloads weiterhin auf Java 8 oder 11. Enterprise-Umgebungen verzögern Upgrades häufig aufgrund der Komplexität: Code-Refactoring, Dependency-Updates und umfangreiche Tests sind erforderlich. Ohne aktuelle Sicherheits-Patches steigen jedoch Compliance-Risiken, insbesondere in regulierten Branchen wie Finanzdienstleistungen oder Gesundheitswesen.</p>
<h2>Automatisierte Java-Modernisierung</h2>
<p>Java-Upgrades auf neuere, unterstützte Versionen erfordern typischerweise umfangreiche Anpassungen. Entwicklungsteams müssen deprecated APIs identifizieren, Bibliotheks-Abhängigkeiten aktualisieren und neue Sprachfeatures verstehen. In vielen Fällen sind größere Code-Überarbeitungen notwendig, wodurch Java-Upgrades zu mehrwöchigen Projekten werden, die Ressourcen von der Feature-Entwicklung abziehen.</p>
<p>GitLab Duo mit Amazon Q automatisiert den Java-Upgrade-Prozess durch KI-gestützte Code-Analyse. Die Integration analysiert den bestehenden Java-8-Code, erstellt einen Upgrade-Plan und generiert automatisch einen Merge Request mit allen notwendigen Anpassungen. Dabei bleiben die Funktionalität der Anwendung und die vollständige Nachvollziehbarkeit durch GitLabs Merge-Request-Workflow erhalten.</p>
<h2>Voraussetzungen</h2>
<p>Die Integration setzt GitLab Self-Managed ab Version 17.11 mit Ultimate-Lizenz und dem GitLab-Duo-mit-Amazon-Q-Add-on voraus. Zusätzlich sind ein Amazon Q Developer Profile, eine IAM-Rolle mit OIDC-Identity-Provider und eine HTTPS-URL für die GitLab-Instanz erforderlich. Die vollständige Setup-Dokumentation für Self-Managed-Installationen finden Sie unter <a href="https://docs.gitlab.com/user/duo_amazon_q/setup/">docs.gitlab.com/user/duo_amazon_q/setup</a>.</p>
<h2>Der Java-Upgrade-Prozess</h2>
<p>Der Java-Upgrade-Prozess mit GitLab Duo und Amazon Q umfasst folgende Schritte:</p>
<h3>1. Issue erstellen</h3>
<p>Erstellen Sie ein Issue im GitLab-Projekt und beschreiben Sie das Upgrade-Ziel im Titel und in der Beschreibung. GitLab Duo mit Amazon Q analysiert automatisch die verwendete Java-Version und erkennt, dass ein Upgrade von Java 8 auf Java 17 erforderlich ist. Eine explizite Versionsspezifikation ist optional.</p>
<h3>2. Transformation starten</h3>
<p>Nachdem das Issue erstellt wurde, geben Sie den Befehl <code>/q transform</code> als Kommentar im Issue ein. Dieser Befehl startet den automatisierten Prozess, der den gesamten Code analysiert, einen Upgrade-Plan erstellt und die notwendigen Code-Änderungen generiert.</p>
<h3>3. Automatisierte Analyse und Code-Anpassung</h3>
<p>Amazon Q analysiert die Java-8-Codebasis und identifiziert die Anwendungsstruktur, Abhängigkeiten und Implementierungsmuster. Der Analyseprozess erkennt deprecated Features, bestimmt die entsprechenden Java-17-Konstrukte und erstellt einen Merge Request mit allen erforderlichen Anpassungen. Im Demonstration-Projekt wurden beispielsweise String.format()-Aufrufe durch die moderne .formatted()-Methode ersetzt, die ab Java 17 verfügbar ist. Die Transformation umfasst sowohl die Source-Code-Dateien (CLI-, GUI- und Model-Klassen) als auch die Build-Konfiguration in Dateien wie pom.xml mit aktualisierten Java-17-Einstellungen und Abhängigkeiten.</p>
<h3>4. Review und Verifikation</h3>
<p>Der generierte Merge Request zeigt alle Code-Änderungen übersichtlich an. Entwickler können die Java-17-Sprachfeatures im angepassten Code überprüfen und verifizieren, dass alle Tests weiterhin erfolgreich durchlaufen. Die Funktionalität der Anwendung bleibt dabei unverändert erhalten.</p>
<h2>Vorteile für Entwicklungsteams</h2>
<p>Die Java-Modernisierung mit GitLab Duo und Amazon Q bietet folgende Vorteile für Entwicklungsteams:</p>
<p><strong>Zeitersparnis:</strong> Der automatisierte Prozess reduziert den manuellen Aufwand für Java-Upgrades erheblich. Im Walkthrough-Video wird ein Mortgage-Calculator-Projekt (480 Zeilen Code, CLI-, GUI- und Model-Komponenten) innerhalb von 3 Minuten von Java 8 auf Java 17 aktualisiert – von der Befehlseingabe bis zum fertigen Merge Request. Entwicklungsteams können sich dadurch stärker auf die Feature-Entwicklung konzentrieren, anstatt Ressourcen für die Wartung technischer Schulden einzusetzen.</p>
<p><strong>Risikominimierung:</strong> Der automatisierte Analyse- und Transformationsprozess reduziert das Risiko manueller Fehler bei Code-Migrationen. Alle Änderungen sind durch GitLabs Merge-Request-Workflow nachvollziehbar und überprüfbar.</p>
<p><strong>Vollständiger Audit-Trail:</strong> Jede Transformation wird durch GitLabs Versionsverwaltung dokumentiert. Dies ermöglicht eine lückenlose Nachvollziehbarkeit aller Änderungen und unterstützt Compliance-Anforderungen sowie das Troubleshooting.</p>
<p><strong>Sicherheit:</strong> Die Integration nutzt GitLabs End-to-End-Sicherheitsfunktionen und AWS-Cloud-Infrastruktur. Code und Daten bleiben während des gesamten Upgrade-Prozesses innerhalb der bestehenden Sicherheitsarchitektur geschützt.</p>
<h2>Demonstration und weitere Informationen</h2>
<p>Das vollständige Walkthrough-Video demonstriert den Java-Upgrade-Prozess Schritt für Schritt:</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/qGyzG9wTsEo?si=47JnSb6flOgZAJcR&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<p>Weitere Informationen zu GitLab Duo mit Amazon Q finden Sie auf der <a href="https://about.gitlab.com/gitlab-duo/duo-amazon-q/">Produktseite</a> oder kontaktieren Sie Ihren GitLab-Ansprechpartner.</p>
<h2>Weiterführende Ressourcen</h2>
<ul>
<li><a href="https://about.gitlab.com/blog/agentic-ai-guides-and-resources/">Agentic AI guides and resources</a></li>
<li><a href="https://about.gitlab.com/blog/gitlab-duo-with-amazon-q-devsecops-meets-agentic-ai/">GitLab Duo with Amazon Q: DevSecOps meets agentic AI</a></li>
<li><a href="https://about.gitlab.com/blog/agentic-ai-guides-and-resources/#gitlab-duo-with-amazon-q-tutorials">More GitLab Duo with Amazon Q tutorials</a></li>
</ul>
]]></content>
        <author>
            <name>Cesar Saavedra</name>
            <uri>https://about.gitlab.com/blog/authors/cesar-saavedra</uri>
        </author>
        <published>2025-10-22T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Schnellere und präzisere Scans mit GitLab Advanced SAST]]></title>
        <id>https://about.gitlab.com/de-de/blog/delivering-faster-and-smarter-scans-with-advanced-sast/</id>
        <link href="https://about.gitlab.com/de-de/blog/delivering-faster-and-smarter-scans-with-advanced-sast/"/>
        <updated>2025-10-21T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Static Application Security Testing (SAST) ist ein wesentlicher Bestandteil sicherer Softwareentwicklung. SAST-Tools identifizieren Schwachstellen im Code, bevor diese produktiv werden können. Im vergangenen Jahr haben wir mit GitLab 17.4 <a href="https://about.gitlab.com/blog/gitlab-advanced-sast-is-now-generally-available/">Advanced SAST eingeführt</a>, um qualitativ hochwertigere Scan-Ergebnisse direkt in Entwicklungs-Workflows zu liefern. Seitdem hat Advanced SAST Millionen von Scans in über hunderttausend Codebasen durchgeführt. Das Risiko wurde reduziert, und Kunden konnten von Beginn an sicherere Anwendungen entwickeln.</p>
<p>Mit GitLab 18.5 bauen wir auf dieser Grundlage auf. <a href="https://about.gitlab.com/blog/gitlab-18-5-intelligence-that-moves-software-development-forward/">Neue Funktionen</a> verbessern Genauigkeit und Geschwindigkeit. Entwicklungsteams erhalten Ergebnisse, denen sie vertrauen können, ohne dass der Arbeitsfluss unterbrochen wird. Die Verbesserungen umfassen höhere Standardpräzision und Custom Detection Rules. Drei Optimierungen beschleunigen die Scans: Multi-Core-Scanning, algorithmische Optimierungen und Diff-basiertes Scannen. Zusammen machen diese Verbesserungen <a href="https://docs.gitlab.com/user/application_security/sast/gitlab_advanced_sast/">Advanced SAST</a> präziser und schneller.</p>
<p>Diese Verbesserungen sind besonders relevant für Entwicklungsteams in regulierten Branchen. Systematische Security-Scans sind dort oft Compliance-Anforderung – beispielsweise für Unternehmen mit TISAX-Zertifizierung in der Automobilindustrie oder BaFin-Vorgaben im Finanzsektor. Gleichzeitig müssen diese Scans schnell genug ablaufen, damit Entwicklungsteams produktiv bleiben. Die Kombination aus Genauigkeit und Performance ist entscheidend für erfolgreiche SAST-Programme.</p>
<h2>Das Problem: Adoption scheitert an falschen Trade-offs</h2>
<p>SAST-Programme scheitern selten an ungenauen Schwachstellenerkennung. Sie scheitern daran, dass Entwicklungsteams die Security-Tools nicht nutzen. Viele AppSec-Lösungen liefern Genauigkeit auf Kosten der Entwicklererfahrung. Andere priorisieren Usability, verlieren aber an Präzision. In der Realität sind beide Dimensionen notwendig. Ohne Genauigkeit vertrauen Entwickler den Ergebnissen nicht. Ohne Geschwindigkeit und Benutzerfreundlichkeit sinkt die Adoption.</p>
<p>Wenn beide Faktoren zusammenkommen, fügt sich Security natürlich in den Entwicklungsprozess ein. Nur so können Security-Teams SAST-Adoption in großem Umfang erreichen. Diese Philosophie prägt die GitLab-Roadmap für Advanced SAST.</p>
<h2>Höhere Präzision durch bessere Regeln und Custom Detection</h2>
<p>Die integrierten Advanced SAST Rules basieren auf Erkenntnissen des hauseigenen Security-Research-Teams von GitLab. Sie maximieren die Genauigkeit standardmäßig. Bisher konnten Regeln <a href="https://docs.gitlab.com/user/application_security/sast/customize_rulesets/">deaktiviert</a> oder in Name, Beschreibung und Severity angepasst werden. Eigene Detection-Logik war jedoch nicht möglich. Mit GitLab 18.5 können Teams nun eigene musterbasierte Custom Rules definieren. Damit lassen sich organisationsspezifische Probleme erkennen – beispielsweise verbotene Funktionsaufrufe. Verstöße gegen Custom Rules werden am selben Ort wie die integrierten GitLab-Regeln gemeldet. Entwicklungsteams erhalten Informationen aus einem zentralen Dashboard.</p>
<p>Custom Rules eignen sich für klar definierte Probleme, die für die Organisation relevant sind. Sie beeinflussen jedoch nicht die Taint-Analyse, die Advanced SAST zur Erkennung von Injections und ähnlichen Schwachstellen nutzt. Custom Rules werden über TOML-Dateien verwaltet, wie andere SAST-Ruleset-Konfigurationen auch. Das Ergebnis: Scan-Ergebnisse mit höherer Qualität, angepasst an den spezifischen Kontext. Security-Teams erhalten mehr Kontrolle. Entwickler erhalten klarere und umsetzbare Findings.</p>
<h2>Kürzere Scan-Zeiten für höhere Adoption</h2>
<p>Geschwindigkeit ist ein entscheidender Faktor. Wenn ein SAST-Scan zu lange dauert, wechseln Entwickler oft zu anderen Aufgaben. Die Adoption sinkt.</p>
<p>Deshalb haben wir mehrere Performance-Verbesserungen implementiert, um Scan-Zeiten erheblich zu reduzieren – ohne Kompromisse bei der Genauigkeit:</p>
<ul>
<li><strong>Multi-Core-Scanning</strong>: Nutzt mehrere CPU-Kerne auf GitLab Runners</li>
<li><strong>Diff-basiertes Scannen</strong>: Scannt nur den geänderten Code in einem Merge Request</li>
<li><strong>Laufende Optimierungen</strong>: Intelligentere Algorithmen und Engine-Verbesserungen</li>
</ul>
<p>Diese Verbesserungen bauen aufeinander auf und liefern schnellere Scans mit erheblichem Impact:</p>
<ul>
<li>Multi-Core-Scanning reduziert die Scan-Laufzeit typischerweise um bis zu <strong>50 Prozent</strong>.</li>
<li>Diff-basiertes Scannen hilft besonders bei großen Repositories, in denen bei jeder Änderung weniger Code modifiziert wird. Es ist speziell darauf ausgelegt, schnelleres Feedback im Code-Review-Prozess zu liefern, indem es schnellere Scans in Merge Requests ermöglicht. In unseren Tests benötigen viele große Repositories jetzt weniger als <strong>10 Minuten für Ergebnisse in MRs, während Scans zuvor mehr als 20 Minuten dauerten</strong>.</li>
<li>In aktuellen internen Tests haben algorithmische Optimierungen die <strong>Scan-Zeiten bei großen Open-Source-Codebasen um bis zu 71 Prozent reduziert</strong>. Apache Lucene (Java) zeigte die größte Verbesserung. Auch andere Projekte wie Django (Python), Kafka und Zulip verzeichneten <strong>Performance-Steigerungen von über 50 Prozent im Single-Core-Modus</strong>. Die Ergebnisse sind in den Charts unten dargestellt.</li>
</ul>
<p>Für Entwicklungsteams bedeutet das: schnelleres Feedback in Merge Requests, weniger Wartezeit auf Security-Ergebnisse und eine reibungslosere Adoption. Mit Multi-Core-Scanning und Diff-basierter Analyse werden die Verbesserungen noch größer.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1760714805/rxl2zzo58j7y0k2ldxeq.png" alt="Chart mit Python-Scan-Zeiten">
&lt;p&gt;&lt;/p&gt;</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1760714805/hz9bsrir6nrqthkjddvi.png" alt="Chart mit Java-Scan-Zeiten"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<blockquote>
<p>Diese Performance-Verbesserungen spiegeln GitLabs Fokus auf bessere Workflows für Entwicklungsteams wider. Ein Kunde ist kürzlich auf GitLabs <a href="https://docs.gitlab.com/user/application_security/policies/pipeline_execution_policies/">Pipeline Execution Policies</a> umgestiegen. Das Ziel: mehr Kontrolle und Flexibilität bei Security-Scans innerhalb der Pipelines. Durch Standardisierung von Templates, Caching und Optimierung der Pipeline-Logik konnte das Team die Laufzeiten für Dependency-Scans von <strong>15–60 Minuten auf nur 1–2 Minuten pro Job reduzieren. Das spart täglich etwa 100 000 Compute Minutes über 15 000 Scans hinweg</strong>. Ein klares Beispiel dafür, wie anpassbare und effiziente Pipeline Execution Policies zu schnelleren Feedback-Zyklen, höherer Produktivität und breiterer Adoption führen.</p>
</blockquote>
<p>Mit diesen Verbesserungen bietet Advanced SAST Security- und Entwicklungsteams die Genauigkeit, Geschwindigkeit und Flexibilität, die sie für moderne Softwareentwicklung benötigen. Durch Reduzierung von False Positives, Custom Detection und beschleunigte Scan-Zeiten wird Security zu einem Enabler für Entwicklungsteams.</p>
<p>Wie alle <a href="https://about.gitlab.com/solutions/application-security-testing/">Application-Security-Funktionen von GitLab</a> ist Advanced SAST direkt in die DevSecOps-Plattform integriert. Security wird so zu einem natürlichen Bestandteil davon, wie Entwicklungsteams Software erstellen, testen, deployen und absichern.</p>
<p>Das Ergebnis: schnellere Adoption, weniger Bottlenecks und sicherere Anwendungen von Beginn an.</p>
<blockquote>
<p>Advanced SAST jetzt testen: <a href="https://about.gitlab.com/free-trial/">Kostenlose Testversion von GitLab Ultimate starten</a>.</p>
</blockquote>
<h2>Mehr erfahren</h2>
<ul>
<li><a href="https://about.gitlab.com/blog/gitlab-advanced-sast-is-now-generally-available/">GitLab Advanced SAST is now generally available</a></li>
<li><a href="https://about.gitlab.com/blog/comprehensive-guide-to-gitlab-dast/">A comprehensive guide to GitLab DAST</a></li>
<li><a href="https://about.gitlab.com/solutions/application-security-testing/">GitLab Security Testing solutions</a></li>
</ul>
]]></content>
        <author>
            <name>Salman Ladha</name>
            <uri>https://about.gitlab.com/blog/authors/salman-ladha</uri>
        </author>
        <published>2025-10-21T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab 18.5: KI, die Software-Entwicklung voranbringt]]></title>
        <id>https://about.gitlab.com/de-de/blog/gitlab-18-5-intelligence-that-moves-software-development-forward/</id>
        <link href="https://about.gitlab.com/de-de/blog/gitlab-18-5-intelligence-that-moves-software-development-forward/"/>
        <updated>2025-10-21T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Software-Entwicklungsteams sind mit einer Informationsflut konfrontiert. Tausende Schwachstellen überschwemmen Security-Dashboards, aber nur ein Bruchteil stellt ein echtes Risiko dar. Entwickler wechseln zwischen Backlog-Planung, Triage von Security-Findings, Code-Reviews und der Reaktion auf CI/CD-Fehler hin und her – und verlieren dabei Stunden durch manuelle Arbeit. <a href="https://about.gitlab.com/releases/2025/10/16/gitlab-18-5-released/">GitLab 18.5</a> bringt Struktur in diese Komplexität.</p>
<p>Im Mittelpunkt dieses Release steht eine wesentliche Verbesserung der allgemeinen Usability von GitLab und der Integration von KI in die User Experience. Ein neues Panel-basiertes UI erleichtert die kontextbezogene Darstellung von Daten und ermöglicht es, GitLab Duo Chat plattformübergreifend dauerhaft sichtbar zu halten, wo immer es benötigt wird. Spezialisierte Agenten übernehmen die Triage von Schwachstellen und das Backlog-Management, während sich beliebte KI-Tools noch nahtloser in agentenbasierte Workflows integrieren lassen. Zusätzlich wurden die marktführenden Sicherheitsfunktionen erweitert, um ausnutzbare Schwachstellen besser von theoretischen zu unterscheiden, aktive von abgelaufenen Credentials zu trennen und nur geänderten Code zu scannen, damit Entwickler im Flow bleiben können.</p>
<h2>Was ist neu in 18.5</h2>
<p>18.5 ist das bisher größte Release dieses Jahres – die Einführung in das Release im Video ansehen und weitere Details unten lesen.
&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1128975773?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;GitLab_18.5 Release_101925_MP_v2&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<h3>Moderne User Experience mit schnellem Zugriff auf GitLab Duo überall</h3>
<p>GitLab 18.5 liefert eine modernisierte User Experience mit einem intuitiveren Interface, das auf einem neuen Panel-basierten Layout basiert.</p>
<p>Panels zeigen wichtige Informationen nebeneinander an, sodass sich kontextbezogen arbeiten lässt, ohne die Position zu verlieren. Wenn beispielsweise auf ein Issue in der Issue-Liste geklickt wird, öffnen sich die Details automatisch in einem Side Panel. Das GitLab Duo Panel lässt sich rechts öffnen und bringt Duo an jeden Ort in GitLab. So können kontextbezogene Fragen gestellt oder Anweisungen gegeben werden, direkt neben der eigentlichen Arbeit.</p>
<p>Mehrere Usability-Verbesserungen erleichtern die Navigation. Die globale Suchleiste erscheint nun in der oberen Mitte für bessere Zugänglichkeit. Globale Navigationselemente wie Issues, Merge Requests, To-Dos und der Avatar sind in die obere rechte Ecke gewandert. Zusätzlich lässt sich die linke Sidebar nun ein- und ausklappen für mehr Kontrolle über den Workspace.</p>
<p>Teams, die experimentelle Features und GitLab Duo Beta-Features nutzen, erhalten das neue Interface zuerst. Danach können alle GitLab.com-Nutzer diese Experience über einen Toggle aktivieren, der sich unter dem User-Icon befindet. Mehr Details zu diesem Feature in der <a href="https://docs.gitlab.com/user/interface_redesign/#turn-new-navigation-on-or-off">Dokumentation</a>. <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/577554">Feedback oder Issues</a> können gemeldet werden – damit lässt sich GitLab besser gestalten!</p>
<h3>Neuerungen zur GitLab Duo Agent Platform</h3>
<p><strong>Security Analyst Agent: Von manueller Vulnerability-Triage zu intelligenter Automatisierung</strong></p>
<p>Der GitLab Duo <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/security_analyst_agent/">Security Analyst Agent</a> automatisiert Vulnerability-Management-Workflows durch KI-gestützte Analyse und verwandelt stundenlanges manuelles Triaging in intelligente Automatisierung. Aufbauend auf den Vulnerability Management Tools, die über GitLab Duo Agentic Chat verfügbar sind, orchestriert der Security Analyst Agent mehrere Tools, wendet Sicherheitsrichtlinien an und erstellt automatisch benutzerdefinierte Flows für wiederkehrende Workflows.</p>
<p>Sicherheitsteams erhalten Zugriff auf angereicherte Vulnerability-Daten, einschließlich CVE-Details, statischer Erreichbarkeitsanalyse und Informationen zum Code-Fluss. Sie können Operationen wie das Verwerfen von Fehlalarmen, das Bestätigen von Bedrohungen, das Anpassen von Schweregraden und das Erstellen verknüpfter Issues zur Behebung ausführen: alles über Conversational AI. Der Agent reduziert repetitives Klicken durch Vulnerability-Dashboards und ersetzt Custom Scripts durch einfache Befehle in natürlicher Sprache.</p>
<p>Beispiel: Wenn ein Security-Scan Dutzende Schwachstellen aufdeckt, genügt der Prompt: „Dismiss vulnerabilities with reachable=FALSE and create issues for critical findings.&quot; Der Security Analyst Agent analysiert Erreichbarkeitsdaten, wendet Sicherheitsrichtlinien an und erledigt Massenoperationen in Momenten – Arbeit, die sonst Stunden dauern würde.</p>
<p>Während einzelne Vulnerability Management Tools direkt über Agentic Chat für spezifische Aufgaben zugänglich sind, orchestriert der Security Analyst Agent diese Tools intelligent und automatisiert komplexe mehrstufige Workflows. Die Vulnerability Management Tools sind über Agentic Chat auf GitLab Self-managed und GitLab.com verfügbar, der Security Analyst Agent ist in 18.5 nur auf GitLab.com verfügbar. Die Verfügbarkeit in Self-managed- und Dedicated-Umgebungen folgt mit dem nächsten Release.
Demo ansehen:</p>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1128975984?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;18.5 Security Demo&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p><strong>GitLab Duo Planner: Von Backlog-Chaos zu strategischer Klarheit</strong></p>
<p>Die Verwaltung komplexer Software-Delivery erfordert ständige Kontextwechsel zwischen Planungsaufgaben. <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/">GitLab Duo Planner</a> adressiert die realen Planungsherausforderungen, mit denen Teams täglich konfrontiert sind. Duo Planner agiert als Teammitglied mit Bewusstsein für den Projektkontext. Er versteht, wie Issues, Epics und Merge Requests verwaltet werden. Anders als generische KI-Assistenten ist er speziell konzipiert mit tiefem Wissen über GitLabs Planungs-Workflows, kombiniert mit Agile- und Priorisierungs-Frameworks, um Aufwand, Risiko und strategische Ausrichtung auszubalancieren.</p>
<p>GitLab Duo Planner kann vage Ideen in strukturierte Planungshierarchien verwandeln, veraltete Backlog-Items identifizieren und Executive Updates entwerfen. Beispiel: Beim Verfeinern eines Backlogs mit Hunderten über Monate angesammelten Issues genügt der Prompt: „Identify stale backlog items and suggest priorities.&quot; Innerhalb von Sekunden erhält man eine strukturierte Zusammenfassung mit Issues ohne aktuelle Aktivität, Items mit fehlenden Details, doppelter Arbeit und empfohlenen Prioritäten basierend auf Labels und Milestones – komplett mit umsetzbaren Empfehlungen.</p>
<p>Für Teams, die komplexe Roadmaps verwalten, zielt der Planner darauf ab, Stunden manueller Analyse und Kontextwechsel zu eliminieren und Product Managern sowie Engineering Leads zu helfen, schnellere und besser informierte Entscheidungen zu treffen. Ab 18.5 ist GitLab Duo Planner aktuell schreibgeschützt, das heißt, er kann analysieren, planen und vorschlagen, aber noch keine direkten Aktionen zur Änderung ausführen. Weitere Informationen in der <a href="https://docs.gitlab.com/user/duo_agent_platform/agents/foundational_agents/planner/">Dokumentation</a>.</p>
<p><strong>Extensible Agent Catalog: Beliebte KI-Tools als native GitLab-Agenten</strong></p>
<p>GitLab 18.5 führt beliebte KI-Agenten direkt in den <a href="https://docs.gitlab.com/user/duo_agent_platform/ai_catalog/">AI Catalog</a> ein und macht externe Tools wie Claude, OpenAI Codex, Google Gemini CLI, Amazon Q Developer und OpenCode als native GitLab-Agenten verfügbar. Nutzer können diese Agenten nun über dieselbe einheitliche Catalog-Oberfläche entdecken, konfigurieren und deployen, die auch für GitLabs integrierte Agenten verwendet wird. Foundational Agents werden automatisch über Organisations-Catalogs hinweg synchronisiert.</p>
<p>Dies eliminiert die Komplexität des manuellen Agent-Setups durch eine grafische Katalog-Oberfläche und behält dabei Sicherheit auf Enterprise-Niveau durch GitLabs Authentifizierungs- und Audit-Systeme bei. GitLab Duo Enterprise Subscriptions enthalten nun die integrierte Nutzung von Claude und Codex innerhalb von GitLab, sodass die bestehende GitLab-Subscription für diese Tools verwendet werden kann, ohne separate API-Keys oder zusätzliches Billing-Setup zu benötigen. Andere Agenten können weiterhin separate Subscriptions und Konfiguration erfordern, während die Integrationspläne finalisiert werden.</p>
<p><strong>Self-hosted GitLab Duo Agent Platform (Beta): Anforderungen an Datensouveränität erfüllen, ohne auf KI-Power zu verzichten</strong></p>
<p>GitLab 18.5 hebt die Self-hosted-Funktionen der GitLab Duo Agent Platform von experimental auf beta und ermöglicht es Organisationen, KI-Agenten und Flows vollständig innerhalb ihrer eigenen Infrastruktur auszuführen – entscheidend für regulierte Branchen und Datensouveränitätsanforderungen. Das Beta-Release umfasst verbesserte Timeout-Konfigurationen und AI-Gateway-Einstellungen und erlaubt Teams, KI-Agenten für Code-Reviews, Bug-Fixes und Feature-Implementierungen zu nutzen, während Sicherheit auf Enterprise-Niveau für sensiblen Code gewährleistet wird.</p>
<h2>Intelligentere, schnellere Sicherheit: Echte Risiken priorisieren und Entwickler im Flow halten</h2>
<p>GitLab 18.5 führt neue Application-Security-Funktionen ein, die Teams helfen, ausnutzbare Risiken zu fokussieren, Rauschen zu reduzieren und die Software-Supply-Chain-Sicherheit zu stärken. Diese Updates setzen das Commitment fort, Sicherheit direkt in den Entwicklungsprozess zu integrieren – mit Präzision, Geschwindigkeit und Einblicken, ohne den Arbeitsfluss der Entwickler zu unterbrechen.</p>
<p><strong>Statische Erreichbarkeitsanalyse</strong></p>
<p>Mit über <a href="https://www.cvedetails.com/">37 000 neuen CVEs</a> allein in diesem Jahr stehen Sicherheitsteams vor einem überwältigenden Volumen an Schwachstellen und haben Schwierigkeiten zu verstehen, welche davon tatsächlich ausnutzbar sind. Die statische Erreichbarkeitsanalyse, jetzt in Limited Availability, bringt Präzision auf Bibliotheksebene, indem sie hilft zu identifizieren, ob verwundbarer Code tatsächlich in der Anwendung aufgerufen wird und nicht nur in Abhängigkeiten vorhanden ist.</p>
<p>In Kombination mit dem kürzlich veröffentlichten <a href="https://docs.gitlab.com/user/application_security/vulnerabilities/risk_assessment_data/">Exploit Prediction Scoring System (EPSS)</a> und Known Exploited Vulnerability (KEV) Daten können Sicherheitsteams die Vulnerability-Triage effektiver beschleunigen. So lassen sich echte Risiken priorisieren und die gesamte Sicherheit der Lieferkette stärken. In 18.5 kommt Unterstützung für Java hinzu, neben der bestehenden Unterstützung für Python, JavaScript und TypeScript.</p>
<p><strong>Validierung exponierter Secrets</strong></p>
<p>Genau wie die statische Erreichbarkeitsanalyse Teams hilft, ausnutzbare Schwachstellen aus Open-Source-Abhängigkeiten zu priorisieren, bringen Secret Validity Checks denselben Einblick für exponierte Secrets – aktuell in Beta auf GitLab.com und GitLab Self-Managed verfügbar. Für von GitLab ausgestellte Security-Tokens unterscheidet GitLab automatisch aktive von abgelaufenen Secrets direkt im <a href="https://docs.gitlab.com/user/application_security/vulnerability_report/">Vulnerability Report</a>, anstatt manuell zu prüfen, ob ein geleakter Credential oder API-Key aktiv ist. Dies ermöglicht es Sicherheits- und Entwicklungsteams, Remediation-Maßnahmen auf echte Risiken zu fokussieren. Unterstützung für von AWS und GCP ausgestellte Secrets ist für zukünftige Releases geplant.</p>
<p><strong>Benutzerdefinierte Regeln für Advanced SAST</strong></p>
<p>Advanced SAST läuft auf Regeln, die vom hauseigenen Security-Research-Team entwickelt wurden, um maximale Genauigkeit out of the box zu bieten. Einige Teams benötigten jedoch zusätzliche Flexibilität, um die SAST-Engine für ihre spezifische Organisation anzupassen. Mit benutzerdefinierten Regeln für Advanced SAST können AppSec-Teams atomare, musterbasierte Erkennungslogik definieren, um organisationsspezifische Sicherheitsprobleme zu erfassen – etwa das Flaggen verbotener Funktionsaufrufe – während GitLabs kuratiertes Ruleset weiterhin als Baseline dient. Anpassungen werden über einfache TOML-Dateien verwaltet, genau wie andere SAST-Ruleset-Konfigurationen. Diese Regeln unterstützen zwar keine Taint Analysis, bieten Organisationen aber größere Flexibilität für präzise SAST-Ergebnisse.</p>
<p><strong>Advanced SAST: Unterstützung für C und C++</strong></p>
<p>Die Sprachabdeckung für Advanced SAST wird um C und C++ erweitert, die in der Embedded-Systems-Softwareentwicklung weit verbreitet sind. Um das Scannen zu aktivieren, müssen Projekte eine Compilation Database generieren, die Compiler-Befehle und Include-Pfade erfasst, die während Builds verwendet werden. Dies stellt sicher, dass der Scanner Quelldateien präzise parsen und analysieren kann und kontextbewusste Ergebnisse liefert, die Sicherheitsteams helfen, echte Schwachstellen im Entwicklungsprozess zu identifizieren. Die Implementierungsanforderungen für C und C++ erfordern spezifische Konfigurationen, die in der <a href="https://docs.gitlab.com/user/application_security/sast/cpp_advanced_sast/">Dokumentation</a> zu finden sind. Advanced SAST C- und C++-Unterstützung sind aktuell in Beta verfügbar.</p>
<p><strong>Diff-basiertes SAST-Scanning</strong></p>
<p>Traditionelle SAST-Scans analysieren mit jedem Commit die gesamte Codebase neu, verlangsamen Pipelines und unterbrechen den Arbeitsfluss der Entwickler. Die Developer Experience ist eine entscheidende Überlegung, die über die Adoption von Application Security Testing entscheiden kann. Diff-basiertes SAST-Scanning zielt darauf ab, Scan-Zeiten zu beschleunigen, indem nur der in einem Merge Request geänderte Code fokussiert wird, redundante Analysen reduziert werden und relevante Ergebnisse angezeigt werden, die mit der Arbeit des Entwicklers verknüpft sind. Durch die Ausrichtung der Scans auf tatsächliche Code-Änderungen liefert GitLab schnelleres, fokussierteres Feedback. So bleiben Entwickler im Flow, während gleichzeitig starke Security-Coverage beibehalten wird.</p>
<h2>API-Konfigurationen vereinfachen</h2>
<p>API-gesteuerte Workflows bieten Power und Flexibilität, können aber auch unnötige Komplexität für Aufgaben schaffen, die Teams regelmäßig durchführen müssen. Das neue Maven Virtual Registry Interface bringt eine UI-Ebene für diese Operationen.</p>
<h3>Maven Virtual Registry Interface</h3>
<p>Das neue webbasierte Interface für die Verwaltung von Maven Virtual Registries verwandelt komplexe API-Konfigurationen in visuelle Einfachheit und bietet eine intuitivere Experience für Paket-Administratoren und Plattform-Engineers.</p>
<p>Zuvor konfigurierten und warteten Teams Virtual Registries ausschließlich über API-Aufrufe. Dies machte routinemäßige Wartung zeitaufwändig und erforderte spezialisiertes Plattform-Wissen. Das neue Interface beseitigt diese Barriere und macht alltägliche Aufgaben schneller und einfacher.</p>
<p>Mit diesem Update lassen sich nun:</p>
<ul>
<li>Virtual Registries erstellen, um die Konfiguration von Abhängigkeiten zu vereinfachen</li>
<li>Upstreams erstellen und ordnen, um Performance und Compliance zu verbessern</li>
<li>Veraltete Cache-Einträge direkt im UI durchsuchen und löschen</li>
</ul>
<p>Diese visuelle Experience hilft, operativen Overhead zu reduzieren, und bietet Entwicklungsteams klareren Einblick, wie Abhängigkeiten aufgelöst werden, sodass bessere Entscheidungen über Build-Performance und Sicherheitsrichtlinien getroffen werden können.</p>
<p>Demo ansehen:</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/CiOZJPhAvaI?si=cYaoR_OIgqFKbyM2&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>Enterprise-Kunden sind eingeladen, am <a href="https://gitlab.com/gitlab-org/gitlab/-/issues/543045">Maven Virtual Registry Beta-Programm</a> teilzunehmen und Feedback zu teilen, um das finale Release mitzugestalten.</p>
<h2>KI, die sich an den Workflow anpasst</h2>
<p>Dieses Release steht für mehr als neue Funktionen – es geht um Wahlmöglichkeiten und Kontrolle. Walkthrough-Video hier ansehen:</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>&lt;div style=&quot;padding:56.25% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1128992281?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;18.5-tech-demo&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>GitLab Premium- und Ultimate-Nutzer können diese Funktionen ab sofort auf <a href="https://GitLab.com">GitLab.com</a> und in Self-managed-Umgebungen verwenden. Die Verfügbarkeit für GitLab Dedicated ist für nächsten Monat geplant.</p>
<p>Die GitLab Duo Agent Platform befindet sich aktuell in der <strong>Beta</strong> – Beta- und experimentelle Features aktivieren, um zu erleben, wie KI mit vollem Kontext die Art und Weise transformieren kann, wie Teams Software entwickeln. Neu bei GitLab? <a href="https://about.gitlab.com/free-trial/devsecops/">Kostenlose Testversion starten</a> und entdecken, warum die Zukunft der Entwicklung KI-gestützt, sicher und über die umfassendste DevSecOps-Plattform der Welt orchestriert ist.</p>
<p><em><strong>Hinweis:</strong> Platform-Funktionen in der Beta sind im Rahmen des GitLab-Beta-Programms verfügbar. Sie sind während der Beta-Phase kostenlos nutzbar. Bei allgemeiner Verfügbarkeit werden sie als kostenpflichtige Add-on-Option für die GitLab Duo Agent Platform angeboten.</em></p>
<h3>Mit GitLab auf dem aktuellen Stand bleiben</h3>
<p>Um sicherzustellen, dass die neuesten Features, Sicherheitsupdates und Performance-Verbesserungen genutzt werden können, empfiehlt sich, die GitLab-Instanz aktuell zu halten. Die folgenden Ressourcen helfen bei der Planung und Durchführung des Upgrades:</p>
<ul>
<li><a href="https://gitlab-com.gitlab.io/support/toolbox/upgrade-path/">Upgrade Path Tool</a> – aktuelle Version eingeben und die exakten Upgrade-Schritte für die Instanz anzeigen lassen</li>
<li><a href="https://docs.gitlab.com/update/upgrade_paths/">Upgrade-Dokumentation</a> – detaillierte Anleitungen für jede unterstützte Version, einschließlich Anforderungen, Schritt-für-Schritt-Anweisungen und Best Practices</li>
</ul>
<p>Durch regelmäßige Upgrades profitiert das Team von den neuesten GitLab-Funktionen und bleibt sicher und supportet.</p>
<p>Für Organisationen, die einen Hands-off-Ansatz bevorzugen, bietet sich <a href="https://content.gitlab.com/viewer/d1fe944dddb06394e6187f0028f010ad#1">GitLabs Managed-Maintenance-Service</a> an. Mit Managed Maintenance kann sich das Team auf Innovation konzentrieren, während GitLab-Experten die selbstverwaltete Instanz zuverlässig upgraden, sichern und für DevSecOps bereit halten. Für weitere Informationen den Account Manager kontaktieren.</p>
<p><em>Dieser Blog-Post enthält „forward‑looking statements&quot; im Sinne von Section 27A des Securities Act von 1933 in der jeweils geltenden Fassung und Section 21E des Securities Exchange Act von 1934. Obwohl wir glauben, dass die in diesen Aussagen zum Ausdruck gebrachten Erwartungen angemessen sind, unterliegen sie bekannten und unbekannten Risiken, Unsicherheiten, Annahmen und anderen Faktoren, die dazu führen können, dass tatsächliche Ergebnisse oder Entwicklungen wesentlich abweichen. Weitere Informationen zu diesen Risiken und anderen Faktoren finden sich unter der Überschrift „Risk Factors&quot; in unseren Einreichungen bei der SEC. Wir übernehmen keine Verpflichtung, diese Aussagen nach dem Datum dieses Blog-Posts zu aktualisieren oder zu überarbeiten, es sei denn, dies ist gesetzlich vorgeschrieben.</em></p>
]]></content>
        <author>
            <name>Bill Staples</name>
            <uri>https://about.gitlab.com/blog/authors/bill-staples</uri>
        </author>
        <published>2025-10-21T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Streamlit-Framework: Systematische Infrastruktur-Governance]]></title>
        <id>https://about.gitlab.com/de-de/blog/how-we-built-a-structured-streamlit-application-framework-in-snowflake/</id>
        <link href="https://about.gitlab.com/de-de/blog/how-we-built-a-structured-streamlit-application-framework-in-snowflake/"/>
        <updated>2025-10-20T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Das GitLab Data Team hat dutzende isolierte <a href="https://streamlit.io/">Streamlit</a>-Anwendungen in eine einheitliche, sichere und skalierbare Lösung für die Snowflake-Umgebung überführt. Die Kombination von Python, Snowflake, Streamlit und GitLab ermöglicht systematische Infrastrukturkontrolle. Dieser Beitrag beschreibt den methodischen Ansatz und die erzielten Ergebnisse.</p>
<h2>Die Ausgangssituation</h2>
<p>Dutzende Streamlit-Anwendungen in verschiedenen Umgebungen, unterschiedliche Python-Versionen, inkonsistente Sicherheitspraktiken beim Zugriff auf sensible Daten. Manche Anwendungen funktionieren, andere versagen ohne nachvollziehbaren Grund. Niemand weiß, wer welche Anwendung erstellt hat oder wie sie zu warten ist.</p>
<p>Genau vor dieser Situation stand unser Data Team. Anwendungen entstanden isoliert, ohne Standardisierung, ohne Security-Oversight, ohne klaren Deployment-Prozess. Das Ergebnis: ein Compliance-Risiko und eine Wartungslast, die exponentiell wuchs.</p>
<p><strong>Für Unternehmen mit regulatorischen Anforderungen (DSGVO, Branchenstandards) stellt diese dezentrale Infrastruktur ein systematisches Governance-Problem dar.</strong> Audit-Trails fehlen, Zugriffskontrollen sind inkonsistent, und nachträgliche Compliance-Implementierung verursacht erhebliche Kosten. Der hier beschriebene Ansatz zeigt, wie frühe Governance-Implementierung diese Risiken vermeidet.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1760035999/i50lpkrwy9bok056rdak.png" alt="Funktionale Architektur (High-Level-Übersicht)"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>&lt;center&gt;&lt;i&gt;Funktionale Architektur (High-Level-Übersicht)&lt;/i&gt;&lt;/center&gt;</p>
<h2>Der methodische Ansatz</h2>
<p>Als &quot;Customer Zero&quot; haben wir das gesamte Framework auf GitLabs eigener CI/CD-Infrastruktur und den Projekt-Management-Tools aufgebaut. Die Grundkomponenten:</p>
<ol>
<li>
<p><a href="https://about.gitlab.com/platform/">GitLab</a> (Produkt)</p>
</li>
<li>
<p><a href="https://about.gitlab.com/platform/">Snowflake</a> – Single Source of Truth (SSOT) für Data-Warehouse-Aktivitäten</p>
</li>
<li>
<p><a href="https://streamlit.io/">Streamlit</a> – Open-Source-Tool für visuelle Anwendungen mit Python-Code</p>
</li>
</ol>
<p>Dies ermöglichte direkten Zugriff auf Enterprise-DevSecOps-Funktionen: automatisierte Tests, Code-Review-Prozesse und Deployment-Pipelines von Beginn an. Durch GitLabs integrierte Features für Issue-Tracking, Merge-Requests und automatisierte Deployments (CI/CD-Pipelines) konnten wir schnell iterieren und das Framework gegen reale Enterprise-Anforderungen validieren. Dieser Internal-First-Ansatz stellte sicher, dass die Lösung im Produktiveinsatz bei GitLab selbst validiert wurde.</p>
<h3>Erkenntnisse aus der Implementierung</h3>
<p>Die wichtigste Erkenntnis beim Aufbau des Streamlit Application Framework in Snowflake: <strong>Struktur schlägt Chaos systematisch</strong> – Governance früh implementieren, nicht nachträglich, wenn die Wartungskosten exponentiell steigen.</p>
<p>Rollen und Verantwortlichkeiten müssen klar definiert sein. Infrastruktur-Concerns werden von Application Development getrennt, sodass jedes Team sich auf seine Stärken konzentrieren kann.</p>
<p>Security und Compliance können keine Nachgedanken sein. Sie müssen von Tag eins in Templates und automatisierte Prozesse integriert werden. Konsistente Standards vorab durchzusetzen ist wesentlich effizienter als nachträgliche Implementierung. Investitionen in Automatisierung und CI/CD-Pipelines zahlen sich aus, da manuelle Prozesse nicht skalieren und menschliche Fehler einführen.</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1760035998/qt9gfemxjnj8kjumkuh7.png" alt="Framework-Architektur (Gesamtübersicht)"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>&lt;center&gt;&lt;i&gt;Framework-Architektur (Gesamtübersicht)&lt;/i&gt;&lt;/center&gt;</p>
<h2>Das Streamlit Application Framework</h2>
<p>Das Framework verwandelt dezentrale Ansätze in eine strukturierte Lösung. Entwicklungsteams erhalten Freiheit innerhalb sicherer Leitplanken, während Deployment automatisiert und Wartungskomplexität eliminiert wird.</p>
<h3>Drei Rollen, ein einheitlicher Prozess</h3>
<p>Das Framework führt einen strukturierten Ansatz mit drei klar getrennten Rollen ein:</p>
<ol>
<li>
<p><strong>Maintainers</strong> (Data-Team-Mitglieder und Contributors) verwalten die Infrastruktur: CI/CD-Pipelines, Security-Templates und Compliance-Regeln. Sie stellen sicher, dass das Framework funktioniert und sicher bleibt.</p>
</li>
<li>
<p><strong>Creators</strong> (Anwendungsentwicklungsteams) konzentrieren sich auf ihre Kernkompetenzen: Visualisierungen erstellen, Snowflake-Daten einbinden, User Experiences gestalten. Volle Flexibilität beim Erstellen neuer Anwendungen von Grund auf, beim Hinzufügen neuer Pages zu bestehenden Apps, beim Integrieren zusätzlicher Python-Libraries und beim Bauen komplexer Datenvisualisierungen, ohne Beschäftigung mit Deployment-Pipelines oder Security-Konfigurationen.</p>
</li>
<li>
<p><strong>Viewers</strong> (Endnutzer) greifen auf fertige, sichere Anwendungen zu, ohne technischen Overhead. Benötigt wird lediglich Snowflake-Zugriff.</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1760035999/oatqyx3ug7vsgzishpma.png" alt="Rollen-Übersicht und ihre Funktionen"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>&lt;center&gt;&lt;i&gt;Rollen-Übersicht und ihre Funktionen&lt;/i&gt;&lt;/center&gt;</p>
<h2>Vollständige Automatisierung</h2>
<p>Durch CI/CD-Implementierung gehören tagelange manuelle Deployments und Konfigurationsaufwand der Vergangenheit an. Das Framework bietet:</p>
<ul>
<li><strong>Umgebungsvorbereitung per Kommando:</strong> Mit <code>make</code>-Befehlen ist die Umgebung in wenigen Sekunden installiert und einsatzbereit.</li>
</ul>
<pre><code class="language-yaml">================================================================================
✅ Snowflake CLI successfully installed and configured!
Connection: gitlab_streamlit
User: YOU@GITLAB.COM
Account: gitlab
================================================================================
Using virtualenv: /Users/YOU/repos/streamlit/.venv
📚 Installing project dependencies...
Installing dependencies from lock file
No dependencies to install or update
✅ Streamlit environment prepared!
</code></pre>
<ul>
<li>
<p><strong>Automatisierte CI/CD-Pipelines:</strong> Übernehmen Testing, Code-Review und Deployment von Development bis Production.</p>
</li>
<li>
<p><strong>Sichere Sandbox-Umgebungen:</strong> Ermöglichen sichere Entwicklung und Tests vor Production-Deployment.</p>
</li>
</ul>
<pre><code class="language-yaml">╰─$ make streamlit-rules
🔍 Running Streamlit compliance check...
================================================================================
CODE COMPLIANCE REPORT
================================================================================
Generated: 2025-07-09 14:01:16
Files checked: 1

SUMMARY:
✅ Passed: 1
❌ Failed: 0
Success Rate: 100.0%

APPLICATION COMPLIANCE SUMMARY:
📱 Total Applications Checked: 1
⚠️ Applications with Issues: 0
📊 File Compliance Rate: 100.0%

DETAILED RESULTS BY APPLICATION:
...
</code></pre>
<ul>
<li><strong>Template-basierte Anwendungserstellung:</strong> Gewährleistet Konsistenz über alle Anwendungen und Pages hinweg.</li>
</ul>
<pre><code class="language-yaml">╰─$ make streamlit-new-page STREAMLIT_APP=sales_dashboard STREAMLIT_PAGE_NAME=analytics
📝 Generating new Streamlit page: analytics for app: sales_dashboard
📃 Create new page from template:
Page name: analytics
App directory: sales_dashboard
Template path: page_template.py
✅ Successfully created 'analytics.py' in 'sales_dashboard' directory from template
</code></pre>
<ul>
<li>
<p><strong>Poetry-basiertes Dependency-Management:</strong> Verhindert Versionskonflikte und erhält saubere Umgebungen.</p>
</li>
<li>
<p><strong>Organisierte Projektstruktur:</strong> Dedizierte Ordner für Anwendungen, Templates, Compliance-Regeln und Configuration-Management.</p>
</li>
</ul>
<pre><code class="language-yaml">├── src/
│   ├── applications/     # Ordner für Streamlit-Anwendungen
│   │   ├── main_app/     # Main-Dashboard-Anwendung
│   │   ├── components/   # Gemeinsam genutzte Komponenten
│   │   └── &lt;your_apps&gt;/  # Eigene Anwendungen
│   │   └── &lt;your_apps2&gt;/ # Weitere Anwendungen
│   ├── templates/        # Anwendungs- und Page-Templates
│   ├── compliance/       # Compliance-Regeln und -Checks
│   └── setup/            # Setup- und Konfigurations-Utilities
├── tests/                # Test-Dateien
├── config.yml            # Umgebungskonfiguration
├── Makefile              # Build- und Deployment-Automatisierung
└── README.md             # Haupt-README-Datei
</code></pre>
<ul>
<li><strong>Optimierter Workflow:</strong> Von lokaler Entwicklung über Test-Schema bis Production, vollständig automatisiert durch GitLab CI/CD-Pipelines.</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1760035998/usyma2jkgiazu9iay1au.png" alt="GitLab CI/CD-Pipelines für vollständige Prozessautomatisierung"></p>
<p>&lt;p&gt;&lt;/p&gt;
&lt;center&gt;&lt;i&gt;GitLab CI/CD-Pipelines für vollständige Prozessautomatisierung&lt;/i&gt;&lt;/center&gt;</p>
<h2>Security und Compliance by Design</h2>
<p>Statt Security nachträglich hinzuzufügen, baut das Streamlit Application Framework sie von Grund auf ein. Jede Anwendung folgt denselben Security-Standards, Compliance-Anforderungen werden automatisch durchgesetzt. Audit-Trails werden über den gesamten Development-Lifecycle gepflegt.</p>
<p>Compliance-Regeln werden mit einem einzigen Kommando eingeführt und verifiziert. Beispielsweise lassen sich definieren, welche Klassen und Methoden verpflichtend sind, welche Dateien vorhanden sein müssen und welche Rollen für das Teilen der Anwendung erlaubt oder verboten sind. Die Regeln sind flexibel und beschreibend – Definition erfolgt in einer YAML-Datei:</p>
<pre><code class="language-yaml">class_rules:
  - name: &quot;Inherit code for the page from GitLabDataStreamlitInit&quot;
    description: &quot;All Streamlit apps must inherit from GitLabDataStreamlitInit&quot;
    severity: &quot;error&quot;
    required: true
    class_name: &quot;*&quot;
    required_base_classes:
      - &quot;GitLabDataStreamlitInit&quot;
    required_methods:
      - &quot;__init__&quot;
      - &quot;set_page_layout&quot;
      - &quot;setup_ui&quot;
      - &quot;run&quot;

function_rules:
  - name: &quot;Main function required&quot;
    description: &quot;Must have a main() function&quot;
    severity: &quot;error&quot;
    required: true
    function_name: &quot;main&quot;

import_rules:
  - name: &quot;Import GitLabDataStreamlitInit&quot;
    description: &quot;Must import the mandatory base class&quot;
    severity: &quot;error&quot;
    required: true
    module_name: &quot;gitlab_data_streamlit_init&quot;
    required_items:
      - &quot;GitLabDataStreamlitInit&quot;
  - name: &quot;Import streamlit&quot;
    description: &quot;Must import streamlit library&quot;
    severity: &quot;error&quot;
    required: true
    module_name: &quot;streamlit&quot;

file_rules:
  - name: &quot;Snowflake configuration required (snowflake.yml)&quot;
    description: &quot;Each application must have a snowflake.yml configuration file&quot;
    severity: &quot;error&quot;
    required: true
    file_pattern: &quot;**/applications/**/snowflake.yml&quot;
    base_path: &quot;&quot;
  - name: &quot;Snowflake environment required (environment.yml)&quot;
    description: &quot;Each application must have a environment.yml configuration file&quot;
    severity: &quot;error&quot;
    required: true
    file_pattern: &quot;**/applications/**/environment.yml&quot;
    base_path: &quot;&quot;
  - name: &quot;Share specification required (share.yml)&quot;
    description: &quot;Each application must have a share.yml file&quot;
    severity: &quot;warning&quot;
    required: true
    file_pattern: &quot;**/applications/**/share.yml&quot;
    base_path: &quot;&quot;
  - name: &quot;README.md required (README.md)&quot;
    description: &quot;Each application should have a README.md file with a proper documentation&quot;
    severity: &quot;error&quot;
    required: true
    file_pattern: &quot;**/applications/**/README.md&quot;
    base_path: &quot;&quot;
  - name: &quot;Starting point recommended (dashboard.py)&quot;
    description: &quot;Each application must have a dashboard.py as a starting point&quot;
    severity: &quot;warning&quot;
    required: true
    file_pattern: &quot;**/applications/**/dashboard.py&quot;
    base_path: &quot;&quot;

sql_rules:
  - name: &quot;SQL files must contain only SELECT statements&quot;
    description: &quot;SQL files and SQL code in other files should only contain SELECT statements for data safety&quot;
    severity: &quot;error&quot;
    required: true
    file_extensions: [&quot;.sql&quot;, &quot;.py&quot;]
    select_only: true
    forbidden_statements:
      - ....
    case_sensitive: false
  - name: &quot;SQL queries should include proper SELECT statements&quot;
    description: &quot;When SQL is present, it should contain proper SELECT statements&quot;
    severity: &quot;warning&quot;
    required: false
    file_extensions: [&quot;.sql&quot;, &quot;.py&quot;]
    required_statements:
      - &quot;SELECT&quot;
    case_sensitive: false

share_rules:
  - name: &quot;Valid functional roles in share.yml&quot;
    description: &quot;Share.yml files must contain only valid functional roles from the approved list&quot;
    severity: &quot;error&quot;
    required: true
    file_pattern: &quot;**/applications/**/share.yml&quot;
    valid_roles:
      - ...
    safe_data_roles:
      - ...
  - name: &quot;Share.yml file format validation&quot;
    description: &quot;Share.yml files must follow the correct YAML format structure&quot;
    severity: &quot;error&quot;
    required: true
    file_pattern: &quot;**/applications/**/share.yml&quot;
    required_keys:
      - &quot;share&quot;
    min_roles: 1
    max_roles: 10
</code></pre>
<p>Mit einem einzigen Kommando:</p>
<pre><code class="language-bash">╰─$ make streamlit-rules
</code></pre>
<p>lassen sich alle erstellten Regeln verifizieren und validieren, dass Entwicklungsteams (die eine Streamlit-Anwendung erstellen) die von den Creators (die Policies und Building Blocks des Frameworks festlegen) spezifizierten Richtlinien befolgen und alle Building Blocks an der richtigen Stelle sind. Dies gewährleistet konsistentes Verhalten über alle Streamlit-Anwendungen hinweg.</p>
<pre><code class="language-yaml">🔍 Running Streamlit compliance check...
================================================================================
CODE COMPLIANCE REPORT
================================================================================
Generated: 2025-08-18 17:05:12
Files checked: 4

SUMMARY:
✅ Passed: 4
❌ Failed: 0
Success Rate: 100.0%

APPLICATION COMPLIANCE SUMMARY:
📱 Total Applications Checked: 1
⚠️ Applications with Issues: 0
📊 File Compliance Rate: 100.0%

DETAILED RESULTS BY APPLICATION:
================================================================================
✅ PASS APPLICATION: main_app
------------------------------------------------------------
📁 FILES ANALYZED (4):
✅ dashboard.py
📦 Classes: SnowflakeConnectionTester
🔧 Functions: main
📥 Imports: os, pwd, gitlab_data_streamlit_init, snowflake.snowpark.exceptions, streamlit

✅ show_streamlit_apps.py
📦 Classes: ShowStreamlitApps
🔧 Functions: main
📥 Imports: pandas, gitlab_data_streamlit_init, snowflake_session, streamlit

✅ available_packages.py
📦 Classes: AvailablePackages
🔧 Functions: main
📥 Imports: pandas, gitlab_data_streamlit_init, streamlit

✅ share.yml
👥 Share Roles: snowflake_analyst_safe

📄 FILE COMPLIANCE FOR MAIN_APP:
✅ Required files found:
✓ snowflake.yml
✓ environment.yml
✓ share.yml
✓ README.md
✓ dashboard.py

RULES CHECKED:
----------------------------------------
Class Rules (1):
- Inherit code for the page from GitLabDataStreamlitInit (error)

Function Rules (1):
- Main function required (error)

Import Rules (2):
- Import GitLabDataStreamlitInit (error)
- Import streamlit (error)

File Rules (5):
- Snowflake configuration required (snowflake.yml) (error)
- Snowflake environment required (environment.yml) (error)
- Share specification required (share.yml) (warning)
- README.md required (README.md) (error)
- Starting point recommended (dashboard.py) (warning)

SQL Rules (2):
- SQL files must contain only SELECT statements (error)
🗄 SELECT-only mode enabled
🚨 Forbidden: INSERT, UPDATE, DELETE, DROP, ALTER...
- SQL queries should include proper SELECT statements (warning)

Share Rules (2):
- Valid functional roles in share.yml (error)
👥 Valid roles: 15 roles defined
🔒 Safe data roles: 11 roles
- Share.yml file format validation (error)
------------------------------------------------------------
✅ Compliance check passed
-----------------------------------------------------------
</code></pre>
<h2>Developer Experience</h2>
<p>Ob bevorzugte IDE, webbasierte Entwicklungsumgebung oder Snowflake Snowsight – die Experience bleibt konsistent. Das Framework bietet:</p>
<ul>
<li><strong>Template-basierte Entwicklung:</strong> Neue Anwendungen und Pages werden über standardisierte Templates erstellt, was Konsistenz und Best Practices von Tag eins sicherstellt. Keine verstreuten Designs und Elemente mehr.</li>
</ul>
<pre><code class="language-yaml">╰─$ make streamlit-new-app NAME=sales_dashboard
🔧 Configuration Environment: TEST
📝 Configuration File: config.yml
📜 Config Loader Script: ./setup/get_config.sh
🐍 Python Version: 3.12
📁 Applications Directory: ./src/applications
🗄 Database: ...
📊 Schema: ...
🏗 Stage: ...
🏭 Warehouse: ...
🆕 Creating new Streamlit app: sales_dashboard
Initialized the new project in ./src/applications/sales_dashboard
</code></pre>
<ul>
<li><strong>Poetry Package Management:</strong> Alle Dependencies werden über Poetry verwaltet, was isolierte Umgebungen schafft, die bestehende Python-Setups nicht stören.</li>
</ul>
<pre><code class="language-toml">[tool.poetry]
name = &quot;GitLab Data Streamlit&quot;
version = &quot;0.1.1&quot;
description = &quot;GitLab Data Team Streamlit project&quot;
authors = [&quot;GitLab Data Team &lt;*****@gitlab.com&gt;&quot;]
readme = &quot;README.md&quot;

[tool.poetry.dependencies]
python = &quot;&lt;3.13,&gt;=3.12&quot;
snowflake-snowpark-python = &quot;==1.32.0&quot;
snowflake-connector-python = {extras = [&quot;development&quot;, &quot;pandas&quot;, &quot;secure-local-storage&quot;], version = &quot;^3.15.0&quot;}
streamlit = &quot;==1.22.0&quot;
watchdog = &quot;^6.0.0&quot;
types-toml = &quot;^0.10.8.20240310&quot;
pytest = &quot;==7.0.0&quot;
black = &quot;==25.1.0&quot;
importlib-metadata = &quot;==4.13.0&quot;
pyyaml = &quot;==6.0.2&quot;
python-qualiter = &quot;*&quot;
ruff = &quot;^0.1.0&quot;
types-pyyaml = &quot;^6.0.12.20250516&quot;
jinja2 = &quot;==3.1.6&quot;

[build-system]
requires = [&quot;poetry-core&quot;]
build-backend = &quot;poetry.core.masonry.api&quot;
</code></pre>
<ul>
<li><strong>Multi-Page-Application-Support:</strong> Teams können problemlos komplexe Anwendungen mit mehreren Pages erstellen und neue Libraries nach Bedarf hinzufügen. Multi-Page-Anwendungen sind Teil des Frameworks – Fokus liegt auf der Logik, nicht auf Design und Strukturierung.</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1760035999/at1q2xgmjthkrgju4okm.png" alt="Multi-Page-Anwendungsbeispiel (in Snowflake)"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>&lt;center&gt;&lt;i&gt;Multi-Page-Anwendungsbeispiel (in Snowflake)&lt;/i&gt;&lt;/center&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<ul>
<li><strong>Nahtlose Snowflake-Integration:</strong> Integrierte Konnektoren und Authentication-Handling für sicheren Datenzugriff bieten dieselbe Experience in lokaler Entwicklung und direkt in Snowflake.</li>
</ul>
<pre><code class="language-yaml">make streamlit-push-test APPLICATION_NAME=sales_dashboard
📤 Deploying Streamlit app to test environment: sales_dashboard
...
------------------------------------------------------------------------------------------------------------
🔗 Running share command for application: sales_dashboard
Running commands to grant shares
🚀 Executing: snow streamlit share sales_dashboard with SOME_NICE_ROLE
✅ Command executed successfully
📊 Execution Summary: 1/1 commands succeeded
</code></pre>
<ul>
<li>
<p><strong>Umfassendes Makefile:</strong> Alle gängigen Kommandos sind in einfache Makefile-Befehle verpackt, von lokaler Entwicklung über Testing bis Deployment, inklusive CI/CD-Pipelines.</p>
</li>
<li>
<p><strong>Sichere lokale Entwicklung:</strong> Alles läuft in isolierten Poetry-Umgebungen, schützt das System und bietet Production-ähnliche Experiences.</p>
</li>
</ul>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1760035999/phmubsb34hn2mfefjvqh.png" alt="Konsistente Experience unabhängig von der Umgebung (Beispiel lokale Entwicklung)"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>&lt;center&gt;&lt;i&gt;Konsistente Experience unabhängig von der Umgebung (Beispiel lokale Entwicklung)&lt;/i&gt;&lt;/center&gt;</p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<ul>
<li><strong>Collaboration via Code:</strong> Alle Anwendungen und Komponenten sind in einem Repository zusammengefasst, was der gesamten Organisation ermöglicht, an denselben Ressourcen zu kollaborieren und doppelte Arbeit sowie redundante Setups zu vermeiden.</li>
</ul>
<h2>Implementierungsschritte</h2>
<p>Bei ähnlichen Herausforderungen mit verstreuten Streamlit-Anwendungen:</p>
<ol>
<li>
<p><strong>Bestandsaufnahme:</strong> Bestehende Anwendungen inventarisieren und Problembereiche identifizieren.</p>
</li>
<li>
<p><strong>Rollen definieren:</strong> Maintainer-Verantwortlichkeiten von Creator- und Endnutzer-Anforderungen trennen.</p>
</li>
<li>
<p><strong>Mit Templates beginnen:</strong> Standardisierte Anwendungs-Templates erstellen, die Security- und Compliance-Anforderungen durchsetzen.</p>
</li>
<li>
<p><strong>CI/CD implementieren:</strong> Deployment-Pipeline automatisieren, um manuelle Fehler zu reduzieren und Konsistenz sicherzustellen.</p>
</li>
</ol>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1760036003/mzge9s1fhkhnx38y1a3i.png" alt="Die in Snowflake deployte Anwendung"></p>
<p>&lt;p&gt;&lt;/p&gt;</p>
<p>&lt;center&gt;&lt;i&gt;Die in Snowflake deployte Anwendung&lt;/i&gt;&lt;/center&gt;</p>
<h2>Einordnung</h2>
<p>Dieses Framework behandelt Daten-Anwendungen als vollwertige Komponenten der Enterprise-Architektur.</p>
<p>Durch die Bereitstellung von Struktur ohne Flexibilitätsverlust hat das GitLab Data Team eine Umgebung geschaffen, in der Teams mit minimalen technischen Vorkenntnissen schnell innovieren können, während höchste Security- und Compliance-Standards gewahrt bleiben.</p>
<h3>Ausblick</h3>
<p>Wir entwickeln das Framework basierend auf User-Feedback und entstehenden Anforderungen kontinuierlich weiter. Zukünftige Verbesserungen umfassen erweiterte Template-Libraries, verbesserte Monitoring-Funktionen, mehr Flexibilität und eine optimierte User Experience.</p>
<p><strong>Das Ziel: ein Foundation schaffen, das mit den wachsenden Data-Application-Anforderungen der Organisation skaliert.</strong></p>
<p>Weitere technische Details zur Implementierung im <a href="https://about.gitlab.com/blog/how-we-built-a-structured-streamlit-application-framework-in-snowflake/">englischen Original</a>.</p>
<h2>Zusammenfassung</h2>
<p>Das <a href="https://handbook.gitlab.com/handbook/enterprise-data/">GitLab Data Team</a> hat dutzende verstreute, unsichere Streamlit-Anwendungen ohne Standardisierung in ein einheitliches, Enterprise-taugliches Framework mit klarer Rollentrennung überführt:</p>
<ol>
<li>
<p><strong>Maintainers</strong> verwalten Infrastruktur und Security.</p>
</li>
<li>
<p><strong>Creators</strong> konzentrieren sich auf Anwendungsentwicklung ohne Deployment-Overhead.</p>
</li>
<li>
<p><strong>Viewers</strong> greifen auf fertige, compliance-konforme Apps zu.</p>
</li>
</ol>
<p>Die verwendeten Building Blocks:</p>
<ol>
<li>
<p>Automatisierte <strong>CI/CD</strong>-Pipelines</p>
</li>
<li>
<p>Vollständig kollaborativer und versionierter Code in <strong>git</strong></p>
</li>
<li>
<p><strong>Template-basierte</strong> Entwicklung</p>
</li>
<li>
<p>Integrierte <strong>Security</strong>-Compliance und Testing</p>
</li>
<li>
<p><strong>Poetry-verwaltete</strong> Umgebungen</p>
</li>
</ol>
<p>Wir haben den Wartungs-Overhead eliminiert und gleichzeitig schnelle Innovation ermöglicht – der Beweis, dass Struktur und Flexibilität vereinbar sind, wenn Data Applications als vollwertige Enterprise-Assets behandelt werden, nicht als Wegwerf-Prototypen.</p>
]]></content>
        <author>
            <name>Radovan Bacovic</name>
            <uri>https://about.gitlab.com/blog/authors/radovan-bacovic</uri>
        </author>
        <published>2025-10-20T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[[Studie] Software-Innovation in Deutschland: Die 26-Milliarden-Euro-Chance]]></title>
        <id>https://about.gitlab.com/de-de/blog/software-innovation-study-germany/</id>
        <link href="https://about.gitlab.com/de-de/blog/software-innovation-study-germany/"/>
        <updated>2025-10-16T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Software-Innovationen sind heute wichtiger denn je und Deutschland steht am Scheideweg: Entweder schafft man es, an die beschleunigte Entwicklung rund um künstliche Intelligenz anzuknüpfen, oder man gerät ins Hintertreffen. Dabei können bis zu 26 Milliarden Euro an zusätzlichem wirtschaftlichem Wert geschaffen werden.</p>
<p>Um ein realistisches Bild dieser Entwicklung gewinnen zu können, hat GitLab zusammen mit The Harris Poll in einer aktuellen Studie 252 deutsche C-Level-Führungskräfte aus verschiedenen Branchen zur Rolle von Software-Innovationen für den Geschäftserfolg befragt. „Software-Innovation“ wird dabei als „die Entwicklung neuer Software oder die deutliche Verbesserung bestehender Software, um neue Funktionen einzuführen, die Effizienz zu steigern oder Probleme auf neue Weise zu lösen“ definiert.</p>
<blockquote>
<p>Den vollständigen Report für C-Level-Führungskräfte in Deutschland <a href="https://learn.gitlab.com/de-csuite-software-innovation-report/report-de-de-de-devsecops-report-csuite">findest du hier</a>.</p>
</blockquote>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1760636728/awdg4n1wwsmb7qq8klmr.jpg" alt="Infografik zu KI-Softwareinvestitionen in Deutschland mit der Überschrift Über 26 Mrd. €, darunter Kennzahlen mit Prozentangaben und Kreisdiagramme zu Themen wie Einsparungen, Bedeutung von Software-Innovation und KI-Entwicklung" title="Software-Innovation in Deutschland: Die 26-Milliarden-Euro-Chance"></p>
<h2>Kennzahlen unserer Studie</h2>
<h3>KI-gestützte Softwareinnovationen werden zum Wachstumsmotor der deutschen Wirtschaft</h3>
<ul>
<li>Führungskräfte in Deutschland sehen Software-Innovation als entscheidenden Faktor für Wettbewerbsfähigkeit und wirtschaftliches Wachstum: 90 % geben an, dass Software-Innovation heute eine zentrale Geschäftspriorität ist, 85 % haben ihre Investitionen in Softwareentwicklung im vergangenen Jahr erhöht.</li>
<li>Unternehmen berichten, dass der Einsatz von KI in der Softwareentwicklung bereits zu einem Umsatzwachstum von durchschnittlich 43 % und zu einer Produktivitätssteigerung von 46 % geführt hat.</li>
<li>Software-Innovationen werden zunehmend als strategische Investition betrachtet, nicht als Kostenfaktor: 83 % der befragten Führungskräfte wären bereit, mehr als die Hälfte ihres jährlichen IT-Budgets in Software-Innovationen zu investieren.</li>
</ul>
<h3>Agentic AI gewinnt an Dynamik – Vertrauen und Governance bleiben zentrale Themen</h3>
<ul>
<li>89 % der deutschen Führungskräfte erwarten, dass Agentic AI (agentische KI) innerhalb von drei Jahren zum Standard in der Softwareentwicklung wird.</li>
<li>Gleichzeitig sehen 80 % neue Sicherheitsherausforderungen und fordern, dass Governance und Vertrauen hier Schritt halten.</li>
<li>Zu den größten Bedenken zählen regulatorische Fragen (48 %), Fehler durch KI-Tools (46 %), Cybersicherheitsrisiken (46 %), Ethik und Transparenz (44 %) sowie Datenschutz und Sicherheit (42 %).</li>
<li>Um diesen Herausforderungen zu begegnen, implementieren Unternehmen neue Strukturen: 52 % haben interne Richtlinien eingeführt, 50 % setzen Ethikkommissionen ein, 48 % passen ihre Prozesse an gesetzliche Vorgaben an und 46 % führen Pilotprogramme oder Schulungen durch.</li>
</ul>
<h3>Weiterbildung wird zum Schlüssel im Zeitalter der KI</h3>
<ul>
<li>Neben dem Fachkräftemangel sind Qualifikationslücken mittlerweile das größte Investitionshindernis: 99 % der Führungskräfte betonen den Wert des menschlichen Beitrags in der Softwareentwicklung – 88 % sagen, dass Unternehmen gezielt in die Schulung von Mitarbeitenden investieren müssen, um Qualifikationslücken zu schließen.</li>
<li>Im Durchschnitt liegt die aktuelle Aufteilung zwischen menschlichem Input und KI bei 75 zu 25. Ideal wäre für die Mehrheit ein ausgewogenes Verhältnis von 50 zu 50.</li>
<li>Besonders geschätzt werden Fähigkeiten wie Zusammenarbeit (42 %), strategische Weitsicht (36 %) und Kommunikation (34 %), die für kreative und verantwortungsvolle Softwareentwicklung unverzichtbar bleiben.</li>
</ul>
<h3>Software-Innovation im Vorstand angekommen – messbare Ergebnisse als Maßstab</h3>
<ul>
<li>9 von 10 Führungskräften bestätigen, dass ihr Vorstand von den Vorteilen der Software-Innovation überzeugt ist.</li>
<li>88 % geben an, dass ihr Unternehmen bereits über ein Framework verfügt, das Softwareaktivitäten mit konkreten Geschäftsergebnissen verknüpft.</li>
<li>98 % messen den ROI ihrer Software-Investitionen bereits heute, wobei geschäftsorientierte Metriken wie Umsatzwachstum, Produktivität und Wettbewerbsvorteil im Vordergrund stehen.</li>
<li>Darüber hinaus berichten 92 % der Befragten, dass sich Investitionen in KI innerhalb von weniger als zwei Jahren amortisieren.</li>
</ul>
<h2>Software-Innovation entscheidet über die Wettbewerbsfähigkeit der Zukunft</h2>
<p>Der Report zeigt, dass Führungskräfte erkennen, wie KI-gestützte Softwareentwicklung nicht nur die Effizienz steigert, sondern zunehmend auch den Unternehmenserfolg bestimmt. Gleichzeitig wird deutlich, wie anspruchsvoll dieser Wandel ist. KI bringt nachweislich messbare Ergebnisse – mehr Umsatz, höhere Produktivität, schnellere Markteinführungen –, doch sie verändert auch Rollen, Kompetenzen und Verantwortlichkeiten. Deutsche Führungskräfte sehen in der Zusammenarbeit zwischen Mensch und KI die größte Chance. Doch obwohl man ein ausgewogenes Verhältnis anstrebt, dominiert aktuell noch menschliche Arbeit. Langfristiger Erfolg erfordert dabei mehr als technologische Investitionen: Weiterbildung, Governance und Vertrauen in KI werden zur Voraussetzung, um das wirtschaftliche Potenzial von Software-Innovationen voll auszuschöpfen.</p>
<p>Wenn man es also schafft, im Feld der Software-Innovation strategisch vorzugehen und Entwicklungen nutzt, lässt sich für den Wirtschaftsstandort Deutschland ein Milliardenpotenzial heben.</p>
<blockquote>
<p><a href="https://learn.gitlab.com/de-csuite-software-innovation-report/report-de-de-de-devsecops-report-csuite">Lade den vollständigen Report für C-Level-Führungskräfte in Deutschland jetzt herunter</a>.</p>
</blockquote>
]]></content>
        <author>
            <name>GitLab Germany Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-germany team</uri>
        </author>
        <published>2025-10-16T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab Object Storage für Skalierung und Performance optimieren]]></title>
        <id>https://about.gitlab.com/de-de/blog/optimize-gitlab-object-storage-for-scale-and-performance/</id>
        <link href="https://about.gitlab.com/de-de/blog/optimize-gitlab-object-storage-for-scale-and-performance/"/>
        <updated>2025-10-15T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Die Verwaltung von GitLab im Enterprise-Umfeld erfordert eine strategische Konfiguration des Object Storage. Diese Anleitung zeigt, wie Object Storage für maximale Performance, Sicherheit und Zuverlässigkeit über alle GitLab-Komponenten hinweg konfigurieren.</p>
<p><strong>Für deutsche Unternehmen besonders relevant:</strong> Diese Konfigurationsoptimierungen reduzieren Infrastructure-Kosten durch geringere Egress-Gebühren und Serverlast. Die systematische Trennung von Komponenten ermöglicht zudem granulare Zugriffskontrolle und vereinfachtes Cost Tracking – beispielsweise für Enterprise-Umgebungen mit Compliance-Anforderungen.</p>
<h2>Consolidated Form für GitLab-Komponenten verwenden</h2>
<p>Für Artifacts, LFS, Uploads, Packages und weitere GitLab-Daten eliminiert die Consolidated Form die Credential-Duplizierung:</p>
<pre><code>gitlab_rails['object_store']['enabled'] = true

gitlab_rails['object_store']['connection'] = {
  'provider' =&gt; 'AWS',
  'region' =&gt; 'us-east-1',
  'use_iam_profile' =&gt; true
}

gitlab_rails['object_store']['objects']['artifacts']['bucket'] = 'gitlab-artifacts'

gitlab_rails['object_store']['objects']['lfs']['bucket'] = 'gitlab-lfs'

# ... additional buckets for each object type

</code></pre>
<p>Diese Konfiguration reduziert die Komplexität und ermöglicht gleichzeitig verschlüsselte S3-Buckets sowie korrekte Content-MD5-Header.</p>
<h2>Container Registry separat konfigurieren</h2>
<p>Die Container Registry benötigt eine eigene Konfiguration, da sie die Consolidated Form nicht unterstützt:</p>
<pre><code>registry['storage'] = {
  's3_v2' =&gt; {  # Den neuen v2-Treiber verwenden
    'bucket' =&gt; 'gitlab-registry',
    'region' =&gt; 'us-east-1',
    # Access Keys weglassen für IAM-Rolle
  }
}

</code></pre>
<p><strong>Hinweis:</strong> Der s3_v1-Treiber ist deprecated und wird in GitLab 19.0 entfernt. Eine Migration zu s3_v2 verbessert Performance und Zuverlässigkeit.</p>
<h2>Proxy Download für Performance deaktivieren</h2>
<p><code>proxy_download</code> auf <strong>false</strong> (Standard) setzen für direkte Downloads:</p>
<pre><code># Für GitLab-Objekte - global konfigurierbar

gitlab_rails['object_store']['proxy_download'] = false

# Oder granular pro Bucket

gitlab_rails['object_store']['objects']['artifacts']['proxy_download'] = false

gitlab_rails['object_store']['objects']['lfs']['proxy_download'] = false

gitlab_rails['object_store']['objects']['uploads']['proxy_download'] = true  # Beispiel: Proxy für Uploads beibehalten

# Container Registry nutzt standardmäßig Redirect Mode (direkte Downloads)

# Nur bei Bedarf deaktivieren:

registry['storage']['redirect']['disable'] = false  # Auf false belassen

</code></pre>
<p><strong>Wichtig:</strong> Die <code>proxy_download</code>-Option kann global auf Object-Store-Ebene oder individuell pro Bucket konfiguriert werden. Das ermöglicht Optimierung nach spezifischem Use Case – beispielsweise direkte Downloads für große Artifacts und LFS-Files, aber Proxy für kleinere Uploads mit zusätzlichen Security-Kontrollen.</p>
<p>Diese Konfiguration reduziert die Serverlast und Egress-Kosten erheblich, indem Clients direkt vom Object Storage herunterladen.</p>
<h2>Identity-basierte Authentifizierung nutzen</h2>
<p><strong>AWS:</strong> IAM-Rollen statt Access Keys verwenden:</p>
<pre><code># GitLab-Objekte

gitlab_rails['object_store']['connection'] = {
  'provider' =&gt; 'AWS',
  'use_iam_profile' =&gt; true
}

# Container Registry

registry['storage'] = {
  's3_v2' =&gt; {
    'bucket' =&gt; 'gitlab-registry',
    'region' =&gt; 'us-east-1'
    # Keine Access Keys = IAM-Role-Authentifizierung
  }
}

</code></pre>
<p><strong>Google Cloud Platform:</strong> Application Default Credentials aktivieren:</p>
<pre><code>
gitlab_rails['object_store']['connection'] = {
  'provider' =&gt; 'Google',
  'google_application_default' =&gt; true
}

</code></pre>
<p><strong>Azure:</strong> Workload Identities durch Weglassen der Storage Access Keys nutzen.</p>
<h2>Verschlüsselungsebenen hinzufügen</h2>
<p>Server-side Encryption für zusätzliche Sicherheit aktivieren:</p>
<pre><code># GitLab-Objekte

gitlab_rails['object_store']['storage_options'] = {
  'server_side_encryption' =&gt; 'AES256'
}

# Container Registry

registry['storage'] = {
  's3_v2' =&gt; {
    'bucket' =&gt; 'gitlab-registry',
    'encrypt' =&gt; true
  }
}

</code></pre>
<p>Für AWS KMS Encryption den Key-ARN in <code>server_side_encryption_kms_key_id</code> angeben.</p>
<h2>Separate Buckets für Organisation verwenden</h2>
<p>Dedizierte Buckets für jede Komponente erstellen:</p>
<ul>
<li>
<p><strong>gitlab-artifacts</strong> - CI/CD Job Artifacts</p>
</li>
<li>
<p><strong>gitlab-lfs</strong> - Git LFS Objects</p>
</li>
<li>
<p><strong>gitlab-uploads</strong> - User Uploads</p>
</li>
<li>
<p><strong>gitlab-packages</strong> - Package Registry</p>
</li>
<li>
<p><strong>gitlab-registry</strong> - Container Images</p>
</li>
</ul>
<p>Diese Isolation verbessert die Sicherheit, ermöglicht granulare Zugriffskontrolle und vereinfacht Cost Tracking.</p>
<h2>Zentrale Konfigurations-Unterschiede</h2>
<table>
<thead>
<tr>
<th>Komponente</th>
<th>Consolidated Form</th>
<th>Identity Auth</th>
<th>Verschlüsselung</th>
<th>Direkte Downloads</th>
</tr>
</thead>
<tbody>
<tr>
<td>Artifacts, LFS, Packages</td>
<td>✅ Unterstützt</td>
<td>✅ use_iam_profile</td>
<td>✅ storage_options</td>
<td>✅ proxy_download: false</td>
</tr>
<tr>
<td>Container Registry</td>
<td>❌ Separate Config</td>
<td>✅ Access Keys weglassen</td>
<td>✅ encrypt: true</td>
<td>✅ Redirect standardmäßig aktiviert</td>
</tr>
</tbody>
</table>
<h2>Migrationspfad</h2>
<ol>
<li>
<p><strong>Mit GitLab-Objekten beginnen:</strong> Consolidated Form für sofortige Komplexitätsreduktion nutzen.</p>
</li>
<li>
<p><strong>Registry separat konfigurieren:</strong> s3_v2-Treiber mit IAM-Authentifizierung verwenden.</p>
</li>
<li>
<p><strong>Verschlüsselung aktivieren:</strong> Server-side Encryption für beide Komponenten hinzufügen.</p>
</li>
<li>
<p><strong>Performance optimieren:</strong> Direkte Downloads mit entsprechenden <code>proxy_download</code>-Einstellungen sicherstellen.</p>
</li>
<li>
<p><strong>Lifecycle Policies einrichten:</strong> S3 Lifecycle Rules für unvollständige Multipart-Uploads konfigurieren.</p>
</li>
</ol>
<h2>Weitere Ressourcen</h2>
<p>Ein vollständiges AWS S3 Konfigurationsbeispiel finden Sie in der <a href="https://docs.gitlab.com/administration/object_storage/#aws-s3">GitLab-Dokumentation zum AWS S3 Object Storage Setup</a>.</p>
<p>Details zur Konfiguration von proxy_download-Parametern pro Bucket enthält die <a href="https://docs.gitlab.com/administration/object_storage/#configure-the-parameters-of-each-object">GitLab Object Storage Configuration Documentation</a>.</p>
<p><em>Diese Konfigurationen skalieren mit Ihrem Wachstum und wahren gleichzeitig Sicherheit und Performance. Die Trennung zwischen GitLab Object Storage und Container Registry Configuration spiegelt unterschiedliche zugrunde liegende Architekturen wider – beide profitieren jedoch von denselben Optimierungsprinzipien.</em></p>
]]></content>
        <author>
            <name>Tim Rizzi</name>
            <uri>https://about.gitlab.com/blog/authors/tim-rizzi</uri>
        </author>
        <published>2025-10-15T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Was ist ein Large Language Model (LLM)?]]></title>
        <id>https://about.gitlab.com/de-de/blog/what-is-a-large-language-model-llm/</id>
        <link href="https://about.gitlab.com/de-de/blog/what-is-a-large-language-model-llm/"/>
        <updated>2025-10-15T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Large Language Models (LLMs) verändern DevOps- und DevSecOps-Ansätze grundlegend, indem sie komplexe Aufgaben wie Code-Erstellung, Log-Analyse und Vulnerability Detection vereinfachen.
In diesem Artikel erfährst du, wie LLMs funktionieren, welche praktischen Anwendungen es gibt und welche Herausforderungen gemeistert werden müssen, um ihr Potenzial voll auszuschöpfen.</p>
<p>Für deutsche Entwicklungsteams sind LLMs besonders relevant, da sie repetitive Aufgaben automatisieren und die Einhaltung von Compliance-Anforderungen unterstützen können – beispielsweise in regulierten Branchen wie Finanzdienstleistungen oder der Automobilindustrie.</p>
<h2>Was ist ein LLM?</h2>
<p>LLMs sind KI-Systeme (Künstliche Intelligenz), die autonom Text verarbeiten und generieren können. Sie werden trainiert, indem sie große Datenmengen aus verschiedenen Quellen analysieren, wodurch sie linguistische Strukturen, kontextuelle Beziehungen und sprachliche Nuancen beherrschen.</p>
<p>LLMs stellen einen bedeutenden Fortschritt im KI-Bereich dar. Ihre Fähigkeit, Text zu verarbeiten, zu generieren und zu interpretieren, basiert auf ausgereiften Machine-Learning- und Natural-Language-Processing-Techniken (NLP). Diese Systeme verarbeiten nicht nur einzelne Wörter, sondern analysieren komplexe Sequenzen, um die Gesamtbedeutung, subtile Kontexte und linguistische Nuancen zu erfassen.</p>
<h2>Wie funktionieren LLMs?</h2>
<p>Um besser zu verstehen, wie sie funktionieren, betrachten wir einige Schlüsseleigenschaften von Large Language Models.</p>
<h3>Supervised und Unsupervised Learning</h3>
<p>LLMs werden mit zwei komplementären Ansätzen trainiert: Supervised Learning und Unsupervised Learning. Diese beiden Machine-Learning-Ansätze maximieren ihre Fähigkeit, Text zu analysieren und zu generieren.</p>
<ul>
<li>
<p><strong>Supervised Learning</strong> basiert auf gelabelten Daten, bei denen jeder Input mit einem erwarteten Output verknüpft ist. Das Modell lernt, diese Inputs mit den korrekten Outputs zu assoziieren, indem es seine internen Parameter anpasst, um Vorhersagefehler zu reduzieren. Durch diesen Ansatz erwirbt das Modell präzises Wissen über spezifische Aufgaben wie Textklassifikation oder Named Entity Recognition.</p>
</li>
<li>
<p><strong>Unsupervised Learning (oder maschinelles Lernen)</strong> benötigt hingegen keine gelabelten Daten. Das Modell erkundet große Textmengen, um versteckte Strukturen zu entdecken und semantische Beziehungen zu identifizieren. Das Modell kann daher wiederkehrende Muster, implizite grammatikalische Regeln im Text und die Kontextualisierung von Sätzen und Konzepten lernen. Diese Methode ermöglicht es, LLMs auf großen Datenkorpora zu trainieren, was ihren Fortschritt ohne direkte menschliche Intervention erheblich beschleunigt.</p>
<p>Durch die Kombination dieser beiden Ansätze gewinnen Large Language Models die Vorteile sowohl präzisen, menschlich geführten Lernens als auch unbegrenzter autonomer Exploration. Diese Komplementarität ermöglicht es ihnen, sich schnell zu entwickeln und gleichzeitig ihre Fähigkeit zu verbessern, Text kohärent und kontextuell zu verstehen und zu generieren.</p>
</li>
</ul>
<h3>Training auf großen Datenmengen</h3>
<p>LLMs werden auf Milliarden von Sätzen aus verschiedenen Quellen trainiert, wie Nachrichtenartikeln, Online-Foren, technischer Dokumentation, wissenschaftlichen Studien und mehr. Diese Quellenvielfalt ermöglicht es ihnen, ein breites und nuanciertes Verständnis natürlicher Sprache zu erwerben, das von alltäglichen Ausdrücken bis zu Fachterminologie reicht.</p>
<p>Der Reichtum der verwendeten Daten ist ein Schlüsselfaktor für die Leistung von LLMs. Jede Quelle bringt unterschiedliche Schreibstile, kulturelle Kontexte und technische Niveaus mit sich.
Zum Beispiel:</p>
<ul>
<li><strong>Nachrichtenartikel</strong>, um informative und faktische Sprache zu beherrschen</li>
<li><strong>Online-Foren</strong>, um informelle Unterhaltungen und Fachsprache spezialisierter Communities zu verstehen</li>
<li><strong>Technische Dokumentation und wissenschaftliche Studien</strong>, um komplexe Konzepte und spezifische Terminologie zu assimilieren, besonders in Bereichen wie DevOps und DevSecOps
Diese Inhaltsvielfalt ermöglicht es LLMs, komplexe linguistische Strukturen zu erkennen, Sätze in verschiedenen Kontexten zu interpretieren und sich an hochgradig technische Domänen anzupassen. In DevSecOps bedeutet dies, Commands, Konfigurationen, Sicherheitsprotokolle und sogar Konzepte im Zusammenhang mit der Entwicklung und Wartung von Computersystemen zu verstehen.
Mit diesem groß angelegten Training können LLMs komplexe Fragen präzise beantworten, technische Dokumentation schreiben oder Schwachstellen in Computersystemen identifizieren.</li>
</ul>
<h3>Neuronale Netzwerkarchitektur und Deep Learning</h3>
<p>LLMs basieren auf fortgeschrittenen neuronalen Netzwerkarchitekturen. Diese Netzwerke sind speziell darauf ausgelegt, große Textsequenzen zu verarbeiten und dabei ein genaues Verständnis des Kontexts beizubehalten. Dieses auf Deep Learning basierende Training ist ein wichtiger Vorteil im NLP-Bereich.
Die bekannteste dieser Strukturen ist die Architektur von Sequence-to-Sequence-Modellen (Transformers). Diese Architektur hat NLP mit ihrer Fähigkeit, alle Teile eines Textes gleichzeitig zu analysieren, grundlegend verändert – im Gegensatz zu sequenziellen Ansätzen, die Wörter einzeln verarbeiten.</p>
<p>Sequence-to-Sequence-Modelle eignen sich hervorragend für die Verarbeitung langer Texte. Beispielsweise können sie in einer Konversation oder einem detaillierten technischen Dokument entfernte Informationen im Text verknüpfen, um präzise und gut begründete Antworten zu produzieren. Dieses Kontextmanagement ist in einem DevSecOps-Ansatz essenziell, wo Anweisungen komplex sein und sich über mehrere Codezeilen oder Konfigurationsschritte erstrecken können.</p>
<h3>Prädiktive Textgenerierung</h3>
<p>Wenn der Benutzer einen Text, eine Abfrage oder eine Frage einreicht, nutzt ein LLM seine prädiktive Fähigkeit, um die wahrscheinlichste Sequenz basierend auf dem gegebenen Kontext zu generieren.
Das Modell analysiert jedes Wort, untersucht grammatikalische und semantische Beziehungen und wählt dann die passendsten Begriffe aus, um einen kohärenten und informativen Text zu produzieren. Dieser Ansatz ermöglicht es, präzise, detaillierte und an den erwarteten Ton angepasste Antworten zu generieren.</p>
<p>In DevSecOps-Umgebungen wird diese Fähigkeit besonders nützlich für:</p>
<ul>
<li><strong>Coding-Unterstützung:</strong> Generierung von Code-Blöcken oder Scripts, die an spezifische Konfigurationen angepasst sind</li>
<li><strong>Technische Problemlösung:</strong> Lösungsvorschläge basierend auf Beschreibungen von Bugs oder Fehlern</li>
<li><strong>Erstellung technischer Dokumentation:</strong> Automatische Erstellung von Anleitungen, Handbüchern oder Anweisungen
Die prädiktive Textgenerierung ermöglicht es somit, viele repetitive Aufgaben zu automatisieren und die Arbeit technischer Teams zu beschleunigen.</li>
</ul>
<h2>Anwendungen von Large Language Models im DevSecOps-Ansatz</h2>
<p>Mit dem Aufstieg der Automatisierung sind LLMs zu unverzichtbaren Unterstützern für technische Teams geworden. Ihre Fähigkeit, Text kontextuell zu verstehen und zu generieren, ermöglicht es ihnen, effektiv in komplexen Umgebungen wie <a href="https://about.gitlab.com/de-de/topics/devsecops/">DevSecOps</a> zu arbeiten.</p>
<p>Mit ihrer Analysekraft und Anpassungsfähigkeit an spezifische Bedürfnisse bieten diese Modelle maßgeschneiderte Lösungen, um Prozesse zu straffen und die Arbeitslast technischer Teams zu reduzieren.</p>
<p>Entwicklungsteams können LLMs nutzen, um funktionale Spezifikationen automatisch in Quellcode umzuwandeln.</p>
<p>Mit dieser Fähigkeit können sie folgende Aktionen durchführen:</p>
<ul>
<li>Komplexe Automatisierungsskripte generieren</li>
<li>CI/CD-Pipelines erstellen, die auf spezifische Geschäftsprozesse zugeschnitten sind</li>
<li>Individuelle Sicherheitspatches produzieren</li>
<li>Code-Erklärungen generieren und Dokumentation erstellen</li>
<li>Code refaktorisieren, indem Struktur und Lesbarkeit verbessert werden, ohne die Funktionalität zu ändern</li>
<li>Tests generieren
Durch den Einsatz von LLMs können Teams die Entwicklung ihrer Software beschleunigen und gleichzeitig das Risiko menschlicher Fehler reduzieren.</li>
</ul>
<h3>Verbesserte Dokumentation und Wissensaustausch</h3>
<p>Diese leistungsstarken Tools ermöglichen es, maßgeschneiderte Benutzerhandbücher, API-Beschreibungen und Tutorials zu erstellen, die perfekt auf das Expertise-Level jedes Benutzers abgestimmt sind. Durch die Nutzung vorhandener Wissensbasen erstellen LLMs kontextuelle Antworten auf häufig gestellte Fragen. Dies verbessert den Wissensaustausch innerhalb von Teams, beschleunigt das Onboarding neuer Mitglieder und hilft, Best Practices zu zentralisieren.</p>
<h3>Incident Management und Troubleshooting</h3>
<p>Während eines Incidents spielen LLMs eine entscheidende Rolle bei der Echtzeit-Analyse von Logs und <a href="https://docs.gitlab.com/ee/development/tracing.html">Trace-Dateien</a>. Dank ihrer Fähigkeit, Informationen aus mehreren Quellen zu verknüpfen, identifizieren sie Anomalien und schlagen Lösungen basierend auf ähnlichen vergangenen Incidents vor. Dieser Ansatz reduziert die Diagnosezeit erheblich. Zusätzlich können LLMs die Erstellung detaillierter Incident-Reports automatisieren und spezifische Korrekturmaßnahmen empfehlen.</p>
<h3>Erstellung und Verbesserung von CI/CD-Pipelines</h3>
<p>LLMs verändern die Konfiguration von <a href="https://about.gitlab.com/de-de/topics/ci-cd/cicd-pipeline/">CI/CD-Pipelines</a> grundlegend. Sie können nicht nur bei der Erstellung von Pipelines helfen, sondern auch diesen Prozess automatisieren und optimale Konfigurationen basierend auf Industriestandards vorschlagen. Durch die Anpassung von Workflows an spezifische Bedürfnisse gewährleisten sie perfekte Konsistenz zwischen verschiedenen Entwicklungsumgebungen. Automatisierte Tests werden durch relevante Vorschläge verbessert, wodurch das Fehlerrisiko begrenzt wird. LLMs überwachen auch kontinuierlich die Effizienz von Pipelines und passen Prozesse an, um einen reibungslosen und unterbrechungsfreien Rollout sicherzustellen.</p>
<h3>Sicherheit und Compliance</h3>
<p>In einer DevSecOps-Umgebung werden Large Language Models zu wertvollen Unterstützern für Sicherheit und Compliance. Sie analysieren den Quellcode auf potenzielle Schwachstellen und generieren detaillierte Patch-Empfehlungen. LLMs können auch die Anwendung von Sicherheitsstandards in Echtzeit überwachen, umfassende Compliance-Reports produzieren und die Anwendung von Sicherheitspatches automatisieren, sobald eine Schwachstelle identifiziert wird. Diese Automatisierung erhöht die Gesamtsicherheit und gewährleistet konsistente Compliance mit rechtlichen und branchenspezifischen Anforderungen.</p>
<h2>Was sind die Vorteile von Large Language Models?</h2>
<p>LLMs gestalten DevOps- und DevSecOps-Ansätze neu und bringen substanzielle Verbesserungen in Produktivität, Sicherheit und Softwarequalität. Durch die Integration in bestehende Workflows verändern LLMs traditionelle Ansätze, indem sie komplexe Aufgaben automatisieren und innovative Lösungen bieten.</p>
<h3>Verbesserte Produktivität und Effizienz</h3>
<p>LLMs spielen eine zentrale Rolle bei der Verbesserung der Produktivität und Effizienz technischer Teams. Durch die Automatisierung einer breiten Palette repetitiver Aufgaben befreien sie Entwicklungsteams von Routineoperationen und ermöglichen es ihnen, sich auf strategische Aktivitäten mit höherem Mehrwert zu konzentrieren.</p>
<p>Darüber hinaus agieren LLMs als intelligente technische Assistenten, die sofort relevante Code-Snippets liefern können, die auf den spezifischen Kontext jedes Projekts zugeschnitten sind. Auf diese Weise reduzieren sie die Recherchezeit erheblich, indem sie gebrauchsfertige Lösungen zur Unterstützung von Teams bei ihrer Arbeit anbieten. Diese gezielte Unterstützung beschleunigt die Problemlösung und reduziert Unterbrechungen in Workflows.</p>
<p>Als Ergebnis steigt die Produktivität und Projekte kommen schneller voran. Technische Teams können mehr Aufgaben übernehmen, ohne die Qualität der Deliverables zu beeinträchtigen.</p>
<h3>Verbesserte Code-Qualität und Sicherheit</h3>
<p>Der Einsatz von Large Language Models in der Softwareentwicklung ist ein wichtiger Hebel zur Verbesserung sowohl der Code-Qualität als auch der Anwendungssicherheit. Mit ihren fortgeschrittenen Analysefähigkeiten können LLMs Quellcode Zeile für Zeile scannen und sofort Syntaxfehler, logische Inkonsistenzen und potenzielle Schwachstellen erkennen. Ihre Fähigkeit, fehlerhaften Code zu erkennen, ermöglicht es ihnen, angemessene Korrekturen zu empfehlen, die den Best Practices der Branche entsprechen.</p>
<p>LLMs spielen auch eine wichtige präventive Rolle. Sie sind hervorragend darin, komplexe Sicherheitslücken zu identifizieren, die für Menschen oft schwer zu erkennen sind. Durch die Analyse von Dependencies können sie veraltete oder anfällige Bibliotheken kennzeichnen und sicherere, aktualisierte Versionen empfehlen. Dieser Ansatz trägt dazu bei, eine sichere Umgebung aufrechtzuerhalten, die den aktuellen Sicherheitsstandards entspricht.</p>
<p>Über die Behebung bestehender Fehler hinaus bieten LLMs Verbesserungen, indem sie optimierte Coding-Praktiken und Projektstrukturen vorschlagen. Sie können Code generieren, der den fortschrittlichsten Sicherheitsstandards von den frühesten Entwicklungsstadien an entspricht.</p>
<h3>Beschleunigung von Entwicklungszyklen</h3>
<p>Large Language Models spielen eine Schlüsselrolle bei der Beschleunigung von Softwareentwicklungszyklen, indem sie zentrale Aufgaben automatisieren, die andernfalls wertvolle menschliche Ressourcen binden würden. Komplexe und repetitive Aufgaben wie das Schreiben von Funktionen, die Erstellung von Unit-Tests oder die Implementierung von Standardkomponenten werden in wenigen Momenten automatisiert.</p>
<p>LLMs beschleunigen auch die Validierungsphase mit ihrer Fähigkeit, vollständige und angemessene Testfälle vorzuschlagen. Sie gewährleisten eine breitere Testabdeckung in kürzerer Zeit, reduzieren das Fehlerrisiko und ermöglichen die frühzeitige Erkennung von Anomalien. Dieser präventive Ansatz verkürzt den Korrekturzyklus und begrenzt Verzögerungen im Zusammenhang mit Code-Qualitätsproblemen.
Indem sie technische Aufgaben vereinfachen und schnelle, maßgeschneiderte Lösungen bieten, ermöglichen Large Language Models Unternehmen, agiler auf Marktanforderungen zu reagieren. Diese Beschleunigung des Entwicklungszyklus führt zu häufigeren Updates, schnelleren Iterationen und einer besseren Fähigkeit, Produkte an die sich ändernden Bedürfnisse der Benutzer anzupassen.
Entwicklungszyklen werden kürzer und bieten einen kritischen strategischen Vorteil in einer zunehmend anspruchsvollen Technologielandschaft.</p>
<h2>Was sind die Herausforderungen beim Einsatz von LLMs?</h2>
<p>Trotz ihrer vielen Vorteile haben Large Language Models bestimmte Einschränkungen, die sorgfältig verwaltet werden müssen. Ihre Effektivität hängt stark von der Qualität der während des Trainings verwendeten Daten und regelmäßigen Updates ihrer Wissensbasen ab. Darüber hinaus können Probleme im Zusammenhang mit algorithmischen Verzerrungen, Datensicherheit und Datenschutz auftreten, die Unternehmen operativen und rechtlichen Risiken aussetzen. Eine sorgfältige menschliche Überwachung bleibt unerlässlich, um die Zuverlässigkeit der Ergebnisse sicherzustellen, die regulatorische Compliance aufrechtzuerhalten und kritische Fehler zu vermeiden.</p>
<h3>Datenschutz und Sicherheit</h3>
<p>Das Training von LLMs basiert auf großen Datenmengen, oft aus verschiedenen Quellen, was Fragen zum Schutz vertraulicher Informationen aufwirft. Sensible Daten, die mit Cloud-Plattformen geteilt werden, können daher potenziellen Sicherheitsverletzungen ausgesetzt sein. Dies ist besonders besorgniserregend für Unternehmen, die in regulierten Sektoren tätig sind.</p>
<p>In Europa, wo strenge Vorschriften wie die DSGVO das Datenmanagement regeln, zögern viele Unternehmen, ihre Informationen an externe Dienste zu übertragen. Die regulatorischen Anforderungen, verbunden mit der Angst vor unbefugter Nutzung sensibler Daten, haben einige Unternehmen dazu veranlasst, sich für selbst gehostete Lösungen zu entscheiden, um die vollständige Kontrolle über ihre Systeme zu behalten.</p>
<p>Anbieter wie GitLab haben robuste Sicherheitsgarantien implementiert, wie die absichtliche Nicht-Speicherung persönlicher Daten und End-to-End-Verschlüsselung. Dies reicht jedoch möglicherweise nicht für die anspruchsvollsten Kunden aus, die eine vollständige Kontrolle über ihre Umgebungen bevorzugen. Die Implementierung hybrider oder On-Premises-Lösungen wird dann zu einer strategischen Notwendigkeit, um die Sicherheitsanforderungen bestimmter Unternehmen zu erfüllen.
Erfahre mehr über GitLab Duo Self-Hosted, indem du auf das Bild unten klickst, um auf unsere Produkttour zuzugreifen.
<a href="https://gitlab.navattic.com/gitlab-duo-self-hosted"><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673815/Blog/Content%20Images/Screenshot_2025-05-29_at_8.29.30%C3%A2__AM.png" alt="GitLab Duo Self-Hosted tour"></a></p>
<h3>Genauigkeit und Zuverlässigkeit</h3>
<p>Obwohl Large Language Models beeindruckende Ergebnisse produzieren können, ist ihre Leistung nicht unfehlbar. Sie können falsche, unvollständige oder inkonsistente Antworten produzieren. Diese Ungenauigkeit wird besonders problematisch im Kontext kritischer Aufgaben wie der Generierung von Sicherheitscode oder der Analyse sensibler Daten.</p>
<p>Darüber hinaus arbeiten LLMs auf der Grundlage probabilistischer Modelle, was bedeutet, dass sie den Inhalt, den sie verarbeiten, nicht wirklich &quot;verstehen&quot;, sondern Vorhersagen basierend auf statistischen Wahrscheinlichkeiten produzieren. Dies kann zu technisch falschen oder sogar gefährlichen Empfehlungen führen, wenn sie ohne menschliche Validierung verwendet werden.</p>
<p>Um diese Fallstricke zu vermeiden, ist es unerlässlich, eine konstante Überwachung aufrechtzuerhalten und rigorose Validierungsprozesse zu etablieren. Die von LLMs bereitgestellten Ergebnisse müssen immer von Menschen überprüft werden, bevor sie in kritische Systeme integriert werden.</p>
<p>Eine Strategie regelmäßiger Modell-Updates, kombiniert mit proaktiver menschlicher Überwachung, kann Fehler reduzieren und die Zuverlässigkeit der Ergebnisse schrittweise verbessern.</p>
<h2>Wie GitLab LLMs für GitLab Duo-Features nutzt</h2>
<p><a href="https://about.gitlab.com/de-de/gitlab-duo/">GitLab Duo</a> nutzt die Kraft von Large Language Models, um DevSecOps-Prozesse zu transformieren, indem KI-gestützte Fähigkeiten über den gesamten Softwareentwicklungszyklus integriert werden. Dieser Ansatz zielt darauf ab, die Produktivität zu verbessern, die Sicherheit zu stärken und komplexe Aufgaben zu automatisieren, damit sich Entwicklungsteams auf Aufgaben mit hohem Mehrwert konzentrieren können.</p>
<h3>KI-unterstützte Softwareentwicklung</h3>
<p>GitLab Duo bietet kontinuierliche Unterstützung während des gesamten Softwareentwicklungszyklus mit Echtzeit-Empfehlungen. Entwicklungsteams können automatisch Unit-Tests generieren, detaillierte Erklärungen komplexer Code-Segmente erhalten und von Vorschlägen zur Verbesserung ihrer Code-Qualität profitieren.</p>
<h3>Proaktive CI/CD-Fehleranalyse</h3>
<p>Eine der Schlüsselfunktionen von GitLab Duo ist die Unterstützung bei der Analyse von CI/CD-Job-Fehlern. Mit LLM und KI können Teams schnell Fehlerquellen in ihren Continuous-Integration- und Deployment-Pipelines identifizieren.</p>
<h3>Verbesserte Code-Sicherheit</h3>
<p>GitLab Duo integriert KI-basierte Sicherheitsfunktionen. Das System erkennt Schwachstellen im Quellcode und schlägt detaillierte Patches vor, um die Risiken zu reduzieren. Teams erhalten klare Erklärungen zur Art der identifizierten Schwachstellen und können automatisierte Patches über <a href="https://docs.gitlab.com/ee/user/project/merge_requests/">Merge Requests</a> anwenden, die direkt von GitLab Duo generiert werden. Diese Funktion hilft, die Entwicklung zu sichern, ohne die Entwicklungszyklen zu verlangsamen.</p>
<p>Erfahre mehr über GitLab Duo Vulnerability Explanation and Resolution, indem du auf das Bild unten klickst, um auf unsere Produkttour zuzugreifen.
<a href="https://gitlab.navattic.com/ve-vr-short"><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673816/Blog/Content%20Images/Screenshot_2025-05-29_at_8.32.15%C3%A2__AM.png" alt="Vulnerability report interactive tour"></a></p>
<h3>Schlüsselfunktionen von GitLab Duo</h3>
<ul>
<li><a href="https://about.gitlab.com/de-de/blog/10-best-practices-for-using-ai-powered-gitlab-duo-chat/">GitLab Duo Chat</a>: Diese Konversationsfunktion verarbeitet und generiert Text und Code intuitiv. Sie ermöglicht es Benutzern, schnell relevante Informationen in großen Textmengen zu suchen, einschließlich in Tickets, <a href="https://docs.gitlab.com/ee/user/group/epics/">Epics</a>, Quellcode und der <a href="https://docs.gitlab.com/">GitLab-Dokumentation</a>.</li>
<li><a href="https://about.gitlab.com/de-de/blog/gitlab-duo-self-hosted-enterprise-ai-built-for-data-privacy/">GitLab Duo Self-Hosted</a>: GitLab Duo Self-Hosted ermöglicht es Unternehmen mit strengen Datenschutzanforderungen, von den KI-Fähigkeiten von GitLab Duo mit Flexibilität bei der Wahl der Bereitstellung und LLMs aus einer Liste unterstützter Optionen zu profitieren.</li>
<li><a href="https://about.gitlab.com/direction/create/code_creation/code_suggestions/">GitLab Duo Code Suggestions</a>: Entwicklungsteams profitieren von automatisierten Code-Vorschlägen, die es ihnen ermöglichen, schneller sicheren Code zu schreiben. Repetitive und routinemäßige Codierungsaufgaben werden automatisiert, wodurch Softwareentwicklungszyklen erheblich beschleunigt werden.</li>
<li>GitLab Duo ist nicht auf diese Funktionen beschränkt. Es bietet eine breite Palette von Features, die darauf ausgelegt sind, die Softwareentwicklung zu vereinfachen und zu optimieren. Ob es um die Automatisierung von Tests, die Verbesserung der Zusammenarbeit zwischen Teams oder die Stärkung der Projektsicherheit geht, GitLab Duo ist eine vollständige Lösung für intelligente und effiziente DevSecOps-Prozesse.</li>
<li>Erfahre mehr über GitLab Duo Enterprise, indem du auf das Bild unten klickst, um auf unsere Produkttour zuzugreifen.
<a href="https://gitlab.navattic.com/duo-enterprise"><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749673816/Blog/Content%20Images/Screenshot_2025-05-29_at_8.33.40%C3%A2__AM.png" alt="GitLab Duo Enterprise interactive tour"></a></li>
</ul>
]]></content>
        <author>
            <name>Itzik Gan Baruch</name>
            <uri>https://about.gitlab.com/blog/authors/itzik-gan baruch</uri>
        </author>
        <published>2025-10-15T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Git-Workflows systematisch optimieren]]></title>
        <id>https://about.gitlab.com/de-de/blog/supercharge-your-git-workflows/</id>
        <link href="https://about.gitlab.com/de-de/blog/supercharge-your-git-workflows/"/>
        <updated>2025-10-14T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p><strong>7 Minuten Lesezeit</strong></p>
<h2>Der Geschäftsfall: Was Git-Performance kostet</h2>
<p>Stellen wir uns vor: Arbeit am Chromium-Projekt, das Repository muss geklont werden. <code>git clone</code> starten, einen Kaffee holen, E-Mails checken, vielleicht eine Mittagspause – und 95 Minuten später ist endlich das Arbeitsverzeichnis da. Das ist die Realität für Entwickler, die mit großen Repositories von 50 GB+ arbeiten.</p>
<p>Die Produktivitätsauswirkungen sind erheblich: CI/CD-Pipelines kommen zum Erliegen während sie auf Repository-Klone warten. Infrastrukturkosten steigen, da Compute-Ressourcen untätig bleiben. Entwickler-Frustration wächst, während Context-Switching zur Norm wird. Das Problem zeigt sich überall: Embedded-Teams erben Repositories mit Legacy-Firmware und Vendor-SDKs. Web-Anwendungen akkumulieren Marketing-Assets. Game-Development-Projekte enthalten 3D-Modelle und Audio-Dateien – Repository-Größen erreichen Dutzende von Gigabytes.</p>
<p>Enterprise-CI/CD-Pipelines leiden besonders: Jeder Job braucht frische Repository-Klone. Bei 20-90 Minuten Operationszeit erliegen ganze Entwicklungsworkflows. Infrastrukturkosten steigen durch untätige Compute-Ressourcen.</p>
<h2>8-60x schneller – je nach Repository-Größe:</h2>
<p><a href="https://gitlab.com/gitlab-accelerates-embedded/misc/git-much-faster">Git Much Faster</a> demonstriert dramatische Verbesserungen durch rigoroses Benchmarking über reale Repositories mit konsistenter AWS-Infrastruktur:</p>
<p><strong>Linux-Kernel-Repository (7,5 GB total):</strong> Standard clone dauerte 6 Minuten 29 Sekunden. Optimized clone erreichte 46,28 Sekunden – eine 88,1%ige Verbesserung, wodurch das .git-Verzeichnis von 5,9 GB auf 284 MB reduziert wurde.</p>
<p><strong>Chromium-Repository (60,9 GB total):</strong> Standard clone benötigte 95 Minuten 12 Sekunden. Optimized clone erreichte 6 Minuten 41 Sekunden – eine beeindruckende 93%ige Verbesserung, wodurch das .git-Verzeichnis von 55,7 GB auf 850 MB komprimiert wurde.</p>
<p><strong>GitLab-Website-Repository (8,9 GB total):</strong> Standard clone dauerte 6 Minuten 23 Sekunden. Optimized clone erreichte 6,49 Sekunden – eine bemerkenswerte 98,3%ige Verbesserung, wodurch das .git-Verzeichnis auf 37 MB reduziert wurde.</p>
<p>Die Benchmark-Daten zeigen klare Muster: Größere Repositories zeigen dramatischere Verbesserungen, binär-lastige Repositories profitieren am meisten von intelligenten Filtern, und optimierte Ansätze übertreffen konsistent sowohl standard Git als auch Gits eigenes Scalar-Tool.</p>
<h2>Kosteneinsparungen für die gesamte Infrastruktur</h2>
<p>Git clone-Optimierung reduziert auch die Systembelastung durch kleinere Anfragegrößen. GitLabs <a href="https://docs.gitlab.com/administration/gitaly/praefect/">Gitaly Cluster</a> profitiert direkt: Weniger server-seitige &quot;pack file&quot;-Erstellung bedeutet niedrigere Memory-, CPU- und I/O-Anforderungen. Der gesamte Stack wird schneller und günstiger.</p>
<p>Diese Infrastructure-Einsparungen multiplizieren sich in Enterprise-Umgebungen: Reduzierte Dimensionierung der Git-Server, weniger Netzwerk-Overhead, optimierte Storage-Nutzung. Alle Schichten profitieren gleichzeitig.</p>
<h2>Typische Enterprise-Anwendungsfälle</h2>
<p><strong>Embedded Development:</strong> Legacy-Firmware, FPGA-Bitstreams, PCB-Layouts treiben Repository-Größen hoch. Build-Prozesse klonen oft Dutzende externe Repositories, multiplizieren die Performance-Auswirkungen.</p>
<p><strong>Enterprise-Monorepos:</strong> Mehrere Projekte, akkumulierte Historie. Media-Assets verstärken das Problem – Web-Apps mit Marketing-Assets, Games mit 3D-Modellen über 100 GB.</p>
<p><strong>CI/CD-Pipelines:</strong> Jeder Job braucht frische Klone. Bei 20-90 Minuten werden Workflows unbrauchbar. Hier zeigen sich die größten Produktivitätsgewinne.</p>
<p><strong>Verteilte Teams:</strong> Limitierte Netzwerk-Performance zu Development-Workstations profitiert von reduzierten Over-the-Wire-Größen.</p>
<hr>
<h2>Die technische Umsetzung: Wie es funktioniert</h2>
<p>Git Much Faster ist ein Script, das ich als Enablement-Tool entwickelt habe, um verschiedene Clone-Optimierungsansätze auf demselben Client zu benchmarken – ob Entwickler-Workstation, CI, Cloud-Umgebungen oder GitOps-Klone. Es enthält kuratierte Konfigurationen für schnellste Clone-Optimierung, die sich als Ausgangspunkt nutzen lassen.</p>
<p>Die Lösung adressiert die grundlegende Herausforderung: Gits Standard-Clone-Verhalten priorisiert Sicherheit über Geschwindigkeit. Bei großen Codebasen, Binär-Assets oder Monorepo-Strukturen wird das zum erheblichen Engpass.</p>
<h2>Vier Benchmark-Strategien im Vergleich</h2>
<p>Git Much Faster löst dies durch umfassendes Benchmarking, das vier verschiedene Strategien vergleicht: standard git clone (Baseline mit vollständiger Historie), optimized git clone (custom Konfigurationen mit deaktivierter Kompression und sparse checkout), Gits Scalar clone (integriertes partial cloning) und current directory assessment (Analyse bestehender Repositories ohne erneutes Klonen).</p>
<p>Das Tool bietet messbare, wiederholbare Benchmarks in kontrollierten AWS-Umgebungen. Die wahre Stärke: alle Benchmarks lassen sich in der spezifischen Umgebung ausführen – auch bei langsamen Netzwerkverbindungen findet sich die optimale Clone-Strategie.</p>
<h2>Zwei Schlüssel-Konfigurationen für 93% Zeitersparnis</h2>
<p>Die bedeutendsten Gewinne stammen aus zwei Optimierungen:</p>
<p><strong>Erste Optimierung – <code>core.compression=0</code>:</strong> Eliminiert CPU-intensive Kompression während Netzwerkoperationen. Bei modernen Hochgeschwindigkeitsnetzwerken überschreiten CPU-Zyklen oft die Bandbreiteneinsparungen. Allein diese Optimierung reduziert Clone-Zeiten um 40%–60%.</p>
<p><strong>Zweite Optimierung – <code>http.postBuffer=1024M</code>:</strong> Erhöht Gits konservative HTTP-Buffer-Größe. Große Repositories profitieren enorm – Git kann größere Operationen handhaben ohne Aufteilen in mehrere Requests.</p>
<p>Zusätzlich nutzt Git Much Faster shallow clones (<code>--depth=1</code>) und partial clones (<code>--filter=blob:none</code>). Shallow clones reduzieren Daten um 70%–90%, partial clones helfen bei Repositories mit großen Binär-Assets. Sparse checkout kontrolliert ausgecheckte Dateien chirurgisch präzise – 30+ Binärdateitypen werden ausgeschlossen, Working-Directory-Größe sinkt um 78%.</p>
<p>Gits Scalar-Tool kombiniert partial clone, sparse checkout und Background-Wartung. Tests zeigen jedoch: Der custom optimized approach übertrifft Scalar um 48%–67% bei ähnlichen Disk-Space-Einsparungen.</p>
<h2>Sofortige Implementierung in drei Schritten</h2>
<p>Die Implementierung erfordert das Verständnis, wann welche Technik basierend auf Use Case und Risikotoleranz anzuwenden ist. Für Development, das vollständigen Repository-Zugang erfordert: standard Git cloning nutzen. Für read-heavy Workflows, die schnellen Zugang zu aktuellem Code benötigen: optimized cloning einsetzen. Für CI/CD-Pipelines, wo Geschwindigkeit paramount ist: optimized cloning bietet maximalen Nutzen.</p>
<p>Der Einstieg erfordert nur einfachen Download und Ausführung:</p>
<pre><code class="language-bash">

curl -L https://gitlab.com/gitlab-accelerates-embedded/misc/git-much-faster/-/raw/master/git-much-faster.sh -o ./git-much-faster.sh




# Für Benchmarking



bash ./git-much-faster.sh --methods=optimized,standard --repo=https://github.com/your-org/your-repo.git


</code></pre>
<p>Für production-grade Testing enthält das Git Much Faster-Projekt komplette Terraform-Infrastruktur für AWS-Deployment, wodurch sich Variablen eliminieren lassen, die lokale Testergebnisse verzerren.</p>
<h2>Wichtige Einschränkungen beachten</h2>
<p>Optimized clones haben Limitierungen: Shallow clones verhindern Zugang zu historischen Commits. Lösung: Entwickler starten optimized, konvertieren bei Bedarf via <code>git fetch --unshallow</code> zu full clones. CI-Jobs mit Commit-Historie-Zugriff brauchen möglicherweise vollständige Historie.</p>
<hr>
<h2>Transformative Ergebnisse für deutsche Teams</h2>
<p>Git clone-Optimierung liefert messbare Verbesserungen – bis zu 93% weniger Clone-Zeit, 98% weniger Disk-Space-Usage. Gits konservativer Standard-Ansatz lässt erhebliche Performance-Gelegenheiten ungenutzt.</p>
<p><strong>Für deutsche Entwicklungsteams:</strong> Reduzierte CI/CD-Wartezeiten steigern tägliche Produktivität, geringere Infrastrukturkosten ermöglichen relevante Kosteneinsparungen in Enterprise-Umgebungen.</p>
<p><a href="https://gitlab.com/gitlab-accelerates-embedded/misc/git-much-faster">Einfach starten mit dem Git Much Faster Repository</a> – read-only Optimierung in CI/CD-Pipelines beginnen, schrittweise auf Development-Workflows erweitern basierend auf gemessenen Ergebnissen.</p>
]]></content>
        <author>
            <name>Darwin Sanoy</name>
            <uri>https://about.gitlab.com/blog/authors/darwin-sanoy</uri>
        </author>
        <published>2025-10-14T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[gRPC-Dokumentation automatisieren mit Duo Agent Platform]]></title>
        <id>https://about.gitlab.com/de-de/blog/accelerate-learning-with-gitlab-duo-agent-platform/</id>
        <link href="https://about.gitlab.com/de-de/blog/accelerate-learning-with-gitlab-duo-agent-platform/"/>
        <updated>2025-10-10T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Die Analyse komplexer Kommunikationsflüsse in modernen Software-Architekturen erfordert systematische Dokumentation. Die manuelle Nachverfolgung von gRPC-Verbindungen zwischen Microservices kann mehrere Stunden Entwicklungszeit pro System beanspruchen – Zeit, die für die eigentliche Entwicklungsarbeit fehlt. <a href="https://about.gitlab.com/blog/gitlab-duo-agent-platform-what-is-next-for-intelligent-devsecops/">GitLab Duo Agent Platform</a> automatisiert diese Aufgabe durch kontextbasierte Codeanalyse und erstellt detaillierte Architekturdiagramme mit vollständiger Payload-Spezifikation.</p>
<p>Die <a href="https://about.gitlab.com/gitlab-duo/agent-platform/">Duo Agent Platform</a> reduziert mehrere Stunden Codeanalyse auf wenige Minuten durch automatisierte Analyse, kontinuierliche menschliche Kontrolle und systematische Dokumentationserstellung. Die folgende Demonstration zeigt die Erstellung einer vollständigen gRPC-Dokumentation für ein Golang-Projekt.</p>
<p>Das folgende Video dokumentiert den vollständigen Workflow:</p>
<p>&lt;div style=&quot;padding:75% 0 0 0;position:relative;&quot;&gt;&lt;iframe src=&quot;https://player.vimeo.com/video/1098569263?badge=0&amp;autopause=0&amp;player_id=0&amp;app_id=58479&quot; frameborder=&quot;0&quot; allow=&quot;autoplay; fullscreen; picture-in-picture; clipboard-write; encrypted-media; web-share&quot; style=&quot;position:absolute;top:0;left:0;width:100%;height:100%;&quot; title=&quot;AI Agent Generates Complete gRPC Documentation in Minutes | GitLab Duo Agent Platform Demo&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;script src=&quot;https://player.vimeo.com/api/player.js&quot;&gt;&lt;/script&gt;</p>
<h2>Aufgabenstellung: gRPC-Kommunikationsflüsse analysieren</h2>
<p>Das Beispielprojekt &quot;Duo Workflow Executor&quot; kommuniziert mit einem gRPC-Server über bidirektionale Streaming-Verbindungen. Die Dokumentationsaufgabe umfasst die Darstellung des vollständigen Kommunikationsflusses mit empfangenen Payloads, ausgeführten Aktionen und zurückgesendeten Responses.</p>
<p>Die Implementierung erfolgt in VS Code mit installierter GitLab Workflow Extension. Der spezifische Prompt für die Duo Agent Platform definiert die Anforderungen präzise:</p>
<p>&quot;Can you prepare a mermaid diagram that shows the gRPC connection between duo-workflow-service and this project. It should show what this project receives in gRPC payload, and what actions it executes based on the payload, and what it sends back. Study internal/services/runner/runner.go, especially the Run method, and write the mermaid output to a grpc.md file.&quot;</p>
<p>Die Duo Agent Platform analysiert die Anforderung und erstellt einen systematischen Ausführungsplan. Der Agent führt automatisch folgende Schritte aus:</p>
<ul>
<li>Durchsuchen relevanter Go-Dateien im Projekt</li>
<li>Lesen der spezifizierten Datei runner.go</li>
<li>Identifizierung zusätzlicher Dateien für notwendigen Kontext</li>
<li>Analyse der Codebase-Struktur zur Erfassung der gRPC-Implementierung</li>
</ul>
<p>Diese kontextbasierte Analyse unterscheidet Agenten-Systeme mit vollständigem Projektverständnis von einfachen Code-Generierungs-Tools. Die Duo Agent Platform erfasst die Beziehungen zwischen verschiedenen Komponenten des Projekts und berücksichtigt diese bei der Dokumentationserstellung.</p>
<h2>Kollaborative Verfeinerung</h2>
<p>Die Duo Agent Platform ist darauf ausgelegt, bei kritischen Momenten der Aufgabenausführung menschliche Rückmeldung einzuholen. Im vorliegenden Beispiel pausiert der Agent zur Klärung des gewünschten Detailgrads.</p>
<p><strong>Agent:</strong> &quot;Should I include error handling details in the diagram?&quot;</p>
<p><strong>Antwort:</strong> &quot;Don't focus on error handling. Include all actions. Focus on gRPC payload.&quot;</p>
<p>Dieser iterative Verfeinerungs-Prozess stellt sicher, dass die Dokumentation die spezifischen Anforderungen erfüllt. Der Agent arbeitet kollaborativ mit dem Entwickler zusammen, anstatt Annahmen über die gewünschte Ausgabe zu treffen.</p>
<h2>Ausführung und Ergebnisse</h2>
<p>Nach der Klärung finalisiert die Duo Agent Platform den Ausführungsplan und fordert Bestätigung vor der Ausführung an. Der Plan kann zu diesem Zeitpunkt noch angepasst werden.</p>
<p>Der Agent führt anschließend die Aufgaben sequenziell aus und liefert Fortschrittsmeldungen in Echtzeit. Innerhalb weniger Minuten werden folgende Ergebnisse erstellt:</p>
<ul>
<li>Analyse aller relevanten Dateien im Projekt</li>
<li>Erstellung detaillierter Dokumentation mit vollständigem Mermaid-Diagramm</li>
<li>Speicherung in der angeforderten Datei grpc.md</li>
<li>Integration wertvoller Kontextinformationen zu ausgehenden Payloads und Verbindungsverwaltung</li>
</ul>
<p>Die resultierende Dokumentation ist nicht nur ein grundlegendes Diagramm, sondern eine detaillierte, präzise und unmittelbar verwendbare Architekturübersicht.</p>
<h2>Analyse der Ausgabe</h2>
<p>Das folgende Mermaid-Diagramm zeigt den vollständigen gRPC-Kommunikationsfluss, den die Duo Agent Platform erstellt hat:</p>
<pre><code class="language-mermaid">sequenceDiagram
participant DWS as duo-workflow-service
participant DWE as duo-workflow-executor
participant Runner as ExecutionRunner
participant ActionExecutor as Action Executor
participant FileSystem as File System/Commands


Note over DWS, DWE: gRPC Bidirectional Streaming (ExecuteWorkflow)

%% Connection Establishment
DWE-&gt;&gt;DWS: gRPC Connection with Headers
Note over DWE, DWS: Headers: authorization (Bearer token)&lt;br/&gt;x-gitlab-authentication-type: oidc&lt;br/&gt;x-gitlab-realm, x-gitlab-global-user-id&lt;br/&gt;x-gitlab-oauth-token, x-gitlab-base-url&lt;br/&gt;x-gitlab-instance-id, x-request-id&lt;br/&gt;x-gitlab-namespace-id, x-gitlab-project-id


%% Workflow Start Request
DWE-&gt;&gt;DWS: ClientEvent{StartWorkflowRequest}
Note over DWE, DWS: StartWorkflowRequest:&lt;br/&gt;- ClientVersion&lt;br/&gt;- WorkflowDefinition&lt;br/&gt;- Goal&lt;br/&gt;- WorkflowID&lt;br/&gt;- WorkflowMetadata&lt;br/&gt;- ClientCapabilities[]


%% Action Processing Loop
loop Action Processing
    DWS-&gt;&gt;DWE: Action Message
    Note over DWS, DWE: Action Types:&lt;br/&gt;- Action_RunCommand {program, flags[], arguments[]}&lt;br/&gt;- Action_RunGitCommand {command, arguments[], repositoryUrl}&lt;br/&gt;- Action_RunReadFile {filepath}&lt;br/&gt;- Action_RunWriteFile {filepath, contents}&lt;br/&gt;- Action_RunEditFile {filepath, oldString, newString}&lt;br/&gt;- Action_RunHTTPRequest {method, path, body}&lt;br/&gt;- Action_ListDirectory {directory}&lt;br/&gt;- Action_FindFiles {namePattern}&lt;br/&gt;- Action_Grep {searchDirectory, pattern, caseInsensitive}&lt;br/&gt;- Action_NewCheckpoint {}&lt;br/&gt;- Action_RunMCPTool {}


    DWE-&gt;&gt;Runner: Receive Action
    Runner-&gt;&gt;Runner: processWorkflowActions()
    Runner-&gt;&gt;ActionExecutor: executeAction(ctx, action)
    
    alt Action_RunCommand
        ActionExecutor-&gt;&gt;FileSystem: Execute Shell Command
        Note over ActionExecutor, FileSystem: Executes: program + flags + arguments&lt;br/&gt;in basePath directory
        FileSystem--&gt;&gt;ActionExecutor: Command Output + Exit Code
    
    else Action_RunReadFile
        ActionExecutor-&gt;&gt;FileSystem: Read File
        Note over ActionExecutor, FileSystem: Check gitignore rules&lt;br/&gt;Read file contents
        FileSystem--&gt;&gt;ActionExecutor: File Contents
    
    else Action_RunWriteFile
        ActionExecutor-&gt;&gt;FileSystem: Write File
        Note over ActionExecutor, FileSystem: Check gitignore rules&lt;br/&gt;Create/overwrite file
        FileSystem--&gt;&gt;ActionExecutor: Success/Error Message
    
    else Action_RunEditFile
        ActionExecutor-&gt;&gt;FileSystem: Edit File
        Note over ActionExecutor, FileSystem: Read → Replace oldString with newString → Write&lt;br/&gt;Check gitignore rules
        FileSystem--&gt;&gt;ActionExecutor: Edit Result Message
    
    else Action_RunGitCommand
        ActionExecutor-&gt;&gt;FileSystem: Execute Git Command 
        Note over ActionExecutor, FileSystem: Git operations with authentication&lt;br/&gt;Uses provided git config
        FileSystem--&gt;&gt;ActionExecutor: Git Command Output
    
    else Action_RunHTTPRequest
        ActionExecutor-&gt;&gt;DWS: HTTP Request to GitLab API
        Note over ActionExecutor, DWS: Method: GET/POST/PUT/DELETE&lt;br/&gt;Path: API endpoint&lt;br/&gt;Body: Request payload&lt;br/&gt;Headers: Authorization
        DWS--&gt;&gt;ActionExecutor: HTTP Response
    
    else Action_ListDirectory
        ActionExecutor-&gt;&gt;FileSystem: List Directory Contents
        Note over ActionExecutor, FileSystem: Respect gitignore rules
        FileSystem--&gt;&gt;ActionExecutor: Directory Listing
    
    else Action_FindFiles
        ActionExecutor-&gt;&gt;FileSystem: Find Files by Pattern
        Note over ActionExecutor, FileSystem: Recursive search with name pattern&lt;br/&gt;Respect gitignore rules
        FileSystem--&gt;&gt;ActionExecutor: File Paths List
    
    else Action_Grep
        ActionExecutor-&gt;&gt;FileSystem: Search Text Pattern
        Note over ActionExecutor, FileSystem: Recursive text search&lt;br/&gt;Case sensitive/insensitive option
        FileSystem--&gt;&gt;ActionExecutor: Search Results
    
    else Action_NewCheckpoint/Action_RunMCPTool
        ActionExecutor-&gt;&gt;ActionExecutor: No-op Action
        Note over ActionExecutor: Returns empty success result
    end


    ActionExecutor--&gt;&gt;Runner: Action Result (string)
    
    alt Result Size Check
        Runner-&gt;&gt;Runner: Check if result &gt; 4MB
        Note over Runner: If result exceeds MaxMessageSize (4MB)&lt;br/&gt;Replace with error message about size limit
    end


    Runner-&gt;&gt;DWE: ActionResponse
    DWE-&gt;&gt;DWS: ClientEvent{ActionResponse}
    Note over DWE, DWS: ActionResponse:&lt;br/&gt;- RequestID (matches Action.RequestID)&lt;br/&gt;- Response (execution result string)
end


%% Workflow Completion
DWE-&gt;&gt;DWS: CloseSend()
Note over DWE, DWS: Signal end of workflow execution


%% Analytics and Cleanup
Runner-&gt;&gt;Runner: Send Analytics Event (Finish)
DWE-&gt;&gt;DWE: Token Revocation (if enabled)
DWE-&gt;&gt;DWS: Close gRPC Connection
</code></pre>
<p>Das Diagramm zeigt mehrere wichtige Architektur-Aspekte, deren manuelle Erfassung erhebliche Zeit erfordern würde:</p>
<ul>
<li><strong>Bidirektionale Kommunikation:</strong> Der Workflow Executor initiiert Requests und antwortet auf Service-Aktionen.</li>
<li><strong>Strukturierte Payload-Definitionen:</strong> Jeder Aktionstyp definiert spezifische Parameter und erwartete Responses.</li>
<li><strong>Multiple Integrationspunkte:</strong> Der Executor interagiert mit lokalem Filesystem, Git-Repositories und GitLab-APIs.</li>
<li><strong>Vollständiger Aktionssatz:</strong> Neun verschiedene Aktionstypen decken Dateioperationen, HTTP-Requests und Git-Kommandos ab.</li>
<li><strong>Lebenszyklus-Verwaltung:</strong> Klare Muster für Verbindungsaufbau, Ausführung und Token-Widerruf.</li>
</ul>
<p>Der Agent integriert automatisch die detaillierten Payload-Strukturen für jeden Aktionstyp in das Diagramm. Dieser Detailgrad transformiert eine Übersicht auf hohem Level in eine unmittelbar verwendbare technische Dokumentation für Entwickler-Teams.</p>
<h2>Systematische Anwendungsfälle</h2>
<p>Der Agent-Workflow folgt einem systematischen Ansatz: Kontexterfassung durch Analyse relevanter Dateien, kollaborative Verfeinerung durch gezielte Rückfragen, Erstellung eines Ausführungsplans zur Bestätigung, schrittweise Ausführung mit Fortschrittsmeldungen. Diese Transparenz entspricht den Anforderungen an nachvollziehbare Automatisierung in Entwicklungsteams.</p>
<p>Das demonstrierte Vorgehen kann auf weitere DevSecOps-Aufgaben übertragen werden:</p>
<ul>
<li><strong>Code Reviews:</strong> Agenten analysieren Merge Requests mit vollständigem Projekt-Kontext</li>
<li><strong>Testing:</strong> Generierung umfassender Test-Suites basierend auf tatsächlichen Nutzungsmustern</li>
<li><strong>Debugging:</strong> Nachverfolgung von Problemen über multiple Services und Komponenten</li>
<li><strong>Security Scanning:</strong> Identifizierung von Schwachstellen unter Berücksichtigung der spezifischen Architektur</li>
<li><strong>CI/CD-Optimierung:</strong> Verbesserung der Pipeline-Performance basierend auf historischen Daten</li>
</ul>
<p>Die GitLab Duo Agent Platform tritt demnächst in die öffentliche Beta-Phase ein. <a href="https://about.gitlab.com/gitlab-duo/agent-platform/">Registrierung für die Warteliste</a> möglich.</p>
<p>Weitere Updates zum Stand der Entwicklung werden im <a href="https://about.gitlab.com/blog/">GitLab Blog</a> sowie über die Social-Media-Kanäle veröffentlicht. Die Roadmap umfasst spezialisierte Agenten, Custom Workflows und Community-Extensions.</p>
<h2>Weitere Informationen</h2>
<ul>
<li><a href="https://about.gitlab.com/blog/agentic-ai-guides-and-resources/">Agentic AI Guides und Ressourcen</a></li>
<li><a href="https://about.gitlab.com/blog/gitlab-duo-agent-platform-what-is-next-for-intelligent-devsecops/">GitLab Duo Agent Platform: Die Zukunft intelligenter DevSecOps</a></li>
<li><a href="https://about.gitlab.com/topics/agentic-ai/">Was ist Agentic AI?</a></li>
<li><a href="https://about.gitlab.com/the-source/ai/from-vibe-coding-to-agentic-ai-a-roadmap-for-technical-leaders/">Von Vibe Coding zu Agentic AI: Roadmap für technische Führungskräfte</a></li>
</ul>
]]></content>
        <author>
            <name>Halil Coban</name>
            <uri>https://about.gitlab.com/blog/authors/halil-coban</uri>
        </author>
        <published>2025-10-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[GitLab erhält ISO/IEC 42001-Zertifizierung für KI-Governance]]></title>
        <id>https://about.gitlab.com/de-de/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance/</id>
        <link href="https://about.gitlab.com/de-de/blog/gitlab-achieves-iso-iec-42001-certification-for-ai-governance/"/>
        <updated>2025-10-10T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Künstliche Intelligenz verändert die Art, wie wir arbeiten und Probleme lösen. Mit zunehmender Integration von KI in Geschäftsprozesse und Entscheidungsfindung werden robuste KI-Governance-Frameworks immer wichtiger. Organisationen müssen das Potenzial von KI nutzen und gleichzeitig sicherstellen, dass KI-Systeme sicher, ethisch und verantwortungsvoll entwickelt werden.</p>
<p>Als Teil des Engagements für verantwortungsvolles KI-Management hat GitLab die ISO/IEC 42001-Zertifizierung erhalten – den ersten international anerkannten Standard für Einrichtung, Implementierung, Aufrechterhaltung und kontinuierliche Verbesserung eines KI-Management-Systems (AIMS) in Organisationen.</p>
<p>Dieser Meilenstein ist beispielsweise für deutsche Unternehmen relevant, die mit den EU AI Act-Anforderungen navigieren müssen. Die schrittweise Implementierung des EU AI Act bringt ab August 2025 konkrete Governance-Verpflichtungen für KI-Systeme mit sich. ISO/IEC 42001 bietet einen systematischen Rahmen, der Organisationen bei der Erfüllung dieser regulatorischen Anforderungen unterstützt – besonders in Branchen wie Automotive, Financial Services oder Industrieautomation, wo KI-Governance und Nachvollziehbarkeit zunehmend geschäftskritisch werden.</p>
<h2>Zertifizierungsumfang</h2>
<p>Der Zertifizierungsumfang umfasst das umfassende KI-Angebot GitLab Duo sowie die GitLab Duo Agent Platform mit allen Komponenten. Als führende DevSecOps-Plattform bietet GitLab KI-gestützte Funktionen über den gesamten Entwicklungslebenszyklus:</p>
<ul>
<li>
<p><strong>GitLab Duo Agent Platform</strong> (jetzt in Public Beta, allgemeine Verfügbarkeit geplant für später dieses Jahr): Ermöglicht asynchrone Zusammenarbeit zwischen Entwicklern und spezialisierten KI-Agenten während des Software-Entwicklungslebenszyklus. Die Plattform transformiert lineare Entwicklungsprozesse in dynamische, parallele Workflows und verschafft Agenten Zugriff auf den gesamten Software-Engineering-Kontext innerhalb von GitLabs einheitlicher Plattform.</p>
</li>
<li>
<p><strong>Code Suggestions</strong> (allgemein verfügbar): Ermöglicht Entwicklern, im Flow zu bleiben, indem Code-Blöcke prädiktiv vervollständigt, Funktionslogik definiert, Tests generiert und gängige Code-Patterns wie Regex vorgeschlagen werden – alles in der gewohnten Entwicklungsumgebung.</p>
</li>
<li>
<p><strong>Vulnerability Explanation</strong> (allgemein verfügbar): Hilft Entwicklern und Sicherheitsanalysten, Schwachstellen zu verstehen, wie sie ausgenutzt werden könnten und wie sie behoben werden können.</p>
</li>
<li>
<p><strong>Test Generation</strong> (allgemein verfügbar): Erstellt automatisch Tests für ausgewählten Code, verbessert die Testabdeckung und reduziert manuellen Aufwand.</p>
</li>
</ul>
<h2>Was diese Zertifizierung bedeutet</h2>
<p><strong>Vertrauen und Transparenz:</strong> Die KI-Features von GitLab werden nach global anerkannten Best Standards für KI-Governance entwickelt und verwaltet. Das unterstützt Zuverlässigkeit und ethische Implementierung.</p>
<p><strong>Strategisches Risikomanagement:</strong> GitLab hat Risk-Assessment- und Risk-Treatment-Strategien für KI-Komponenten innerhalb der Plattform implementiert. Diese berücksichtigen Aspekte wie operative Business-Continuity-Risiken, technische Risiken, Security- und Privacy-Risiken sowie breitere gesellschaftliche Implikationen. Dieser proaktive Ansatz verbessert den Datenschutz und ermöglicht zuverlässigere KI-gestützte Features.</p>
<p><strong>Kontinuierliche Verbesserung:</strong> Unter dem ISO/IEC 42001-Framework wird GitLab die KI-Capabilities kontinuierlich evaluieren und verbessern – durch jährliche externe Surveillance-Audits, regelmäßige interne Assessments und Leadership-AIMS-Reviews bei gleichzeitiger Wahrung von Qualitäts- und Verantwortungsstandards.</p>
<p><strong>Regulatorische Ausrichtung:</strong> Da sich KI-Regulierungen global weiterentwickeln – wie der EU AI Act – unterstützt diese Zertifizierung GitLabs Ausrichtung an aufkommenden regulatorischen Anforderungen.</p>
<p>Diese Zertifizierung bestätigt GitLabs Position als vertrauenswürdige Plattform für KI-gestützte DevSecOps.</p>
<h2>Mehr erfahren</h2>
<ul>
<li>ISO/IEC 42001-Zertifikat im <a href="https://trust.gitlab.com/">GitLab Trust Center</a> einsehen</li>
<li>Über unser <a href="https://handbook.gitlab.com/handbook/security/isms/">AIMS im Handbook</a> lesen</li>
<li>Das <a href="https://about.gitlab.com/ai-transparency-center/">GitLab AI Transparency Center</a> besuchen</li>
<li>Alle <a href="https://docs.gitlab.com/user/gitlab_duo/">GitLab Duo Features und Capabilities</a> in der Dokumentation entdecken</li>
</ul>
]]></content>
        <author>
            <name>Davoud Tu</name>
            <uri>https://about.gitlab.com/blog/authors/davoud-tu</uri>
        </author>
        <published>2025-10-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Was ist YAML? Alles erklärt, von den Grundlagen bis zur Anwendung]]></title>
        <id>https://about.gitlab.com/de-de/blog/what-is-yaml/</id>
        <link href="https://about.gitlab.com/de-de/blog/what-is-yaml/"/>
        <updated>2025-10-10T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>YAML ist ein Daten-Serialisierungsformat, das in <a href="https://about.gitlab.com/de-de/blog/definition-what-is-kubernetes/">Kubernetes</a>-Dateien und <a href="https://about.gitlab.com/de-de/blog/using-ansible-and-gitlab-as-infrastructure-for-code/">Ansible</a>-Playbooks verwendet wird. Dieser Artikel erklärt detailliert die grundlegende Syntax von YAML-Dateien und konkrete Anwendungsfälle.</p>
<h2>Was ist YAML?</h2>
<p>YAML ist eine Programmiersprache, die entwickelt wurde, damit Menschen Daten prägnant und verständlich darstellen können. Sie wird häufig für Konfigurationsdateien und Datenübertragung verwendet. YAML eignet sich hervorragend zur Organisation hierarchischer Informationen und wird manchmal als Alternative zu JSON oder XML eingesetzt.</p>
<h2>Wofür wird YAML verwendet?</h2>
<p>Aufgrund seiner hohen Lesbarkeit wird YAML für Konfigurationsdateien und Playbooks verwendet. Hier sind einige Beispiele als Referenz:</p>
<ul>
<li>Erstellung von Konfigurationsdateien</li>
<li>Log-Dateien</li>
<li>Nachrichtenaustausch zwischen Prozessen</li>
<li>Datenaustausch zwischen Anwendungen</li>
<li>Beschreibung strukturierter Daten</li>
</ul>
<h2>Was ist der Unterschied zwischen YAML und YML?</h2>
<p>Beide bezeichnen Dateien im gleichen Format – der einzige Unterschied ist die Dateierweiterung &quot;.yml&quot; oder &quot;.yaml&quot;. Die offizielle Erweiterung für YAML-Dateien ist .yaml, aber da Dateierweiterungen (.txt, .zip, .exe, .png usw.) üblicherweise aus drei Buchstaben bestehen, wurde .yml an diese Drei-Buchstaben-Regel angepasst. Entwickler(innen), die es kurz und prägnant mögen, wählen oft &quot;.yml&quot;.</p>
<blockquote>
<p><strong>Über 6,4 Mio. Builds pro Monat: So transformiert Siemens seine Softwareentwicklung mit GitLab</strong> Über 40.000 Entwickler(innen) bei Siemens nutzen GitLab, um weltweit zusammenzuarbeiten und jeden Monat mehr als 6,4 Millionen Software-Versionen automatisch bereitzustellen. Erfahre, wie eine offene DevOps-Kultur und eine zentrale Plattform die Effizienz und Sicherheit steigern. <a href="https://about.gitlab.com/de-de/customers/siemens/">Erfolgsstory lesen</a></p>
</blockquote>
<h2>Der Unterschied zwischen YAML und JSON</h2>
<p>Während JSON geschweifte Klammern zur Definition von Anforderungen verwendet, wird bei YAML die Struktur durch Einrückungen deutlich gemacht, was die Lesbarkeit erhöht. Vergleiche die folgenden Beispiele: Du wirst sehen, dass YAML auf Benutzerfreundlichkeit für Programmierer(innen) ausgelegt ist.</p>
<p>YAML: <img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687456/Blog/Content%20Images/yaml-coding-sample-01.png" alt="YAML Key-Value Beispiel"></p>
<p>JSON:</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687456/Blog/Content%20Images/json-format-coding-sample-01.png" alt="JSON Format Key-Value Beispiel"></p>
<h2>YAML vs. CUE im Vergleich</h2>
<p>Während YAML eine hohe Lesbarkeit und einfache Struktur bietet, integriert CUE Schema und Daten, wodurch auch komplexe Konfigurationen in einer einzigen Datei verwaltet werden können. Außerdem verfügt CUE über Schema-Validierungsfunktionen, die mit YAML allein nicht möglich sind, was die Datenintegrität besser gewährleistet.</p>
<p>Flexibilität ist ebenfalls ein großes Merkmal. CUE ist eine <a href="https://about.gitlab.com/de-de/blog/what-is-open-source-software/">Open-Source</a>-Sprache (genauer gesagt ein Superset von JSON), die zur Definition, Generierung und Validierung aller Arten von Daten verwendet wird. Sie kann mit vielen anderen Sprachen wie Go, JSON, OpenAPI, Protocol Buffers und YAML zusammenarbeiten.</p>
<p>Mit Scripting-Funktionen über die Go-API gibt es Anwendungsfälle wie die Anzeige von CUE-Manifesten als finale Kubernetes-Ressourcen-YAML oder die Implementierung von Befehlen zur Auflistung von Ressourcen für die Bereitstellung in bestimmten Clustern.</p>
<h2>YAML-Datenstruktur und Syntax (Grundlagen)</h2>
<h3>Wichtige Hinweise zum Schreiben von YAML-Dateien</h3>
<p>Denk daran, dass Einrückungen und Tabs sehr wichtig sind. Zusätzliche Einrückungen oder verwendete Tabs können die Bedeutung von YAML-Objekten verändern, daher sind diese besonders wichtig.</p>
<h3>YAML-Datenstruktur</h3>
<p>YAML besteht hauptsächlich aus zwei Datentypen: Collections und Skalare. Collections bestehen aus Sequenzen und Mappings. Sequenzen sind Arrays, Mappings sind Name-Wert-Paare (Arrays, die als Key : Value ausgedrückt werden). Skalare dienen zur Typidentifizierung und repräsentieren Strings, Zahlen usw.</p>
<ul>
<li>
<p>Collections</p>
<ul>
<li>Sequenzen</li>
<li>Mappings</li>
</ul>
</li>
<li>
<p>Skalare</p>
</li>
</ul>
<h3>YAML-Syntax</h3>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1761788623/onxxrfm1rqo3fslerqxu.png" alt="YAML-Syntax"></p>
<ul>
<li>Mehrzeilige Collections: Verwende das | (vertikaler Balken) Symbol, wenn du das Format mehrerer Zeilen beibehalten musst.</li>
<li>Mehrzeiliges Format: Verwende &gt;, wenn du lange String-Werte hast und diese über mehrere Zeilen mit beibehaltener Formatierung schreiben musst.</li>
<li>Listen: Listen werden mit - (Bindestrich) dargestellt.</li>
<li>Verschachtelung: Verschachtelte Datenstrukturen werden durch Einrückungen dargestellt.</li>
</ul>
<h3>Wie man Kubernetes (k8s) YAML-Dateien schreibt</h3>
<p>In Kubernetes werden YAML-Dateien zur Definition von Ressourcen verwendet. Hier zeige ich dir, wie man YAML-Manifeste schreibt.</p>
<p>YAML-Manifest: <img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1749687456/Blog/Content%20Images/YAML-manufest-sample-Kubernetes.png" alt="YAML Kubernetes Manifest Beispiel"></p>
<h3>Wie man Ansible YAML-Dateien schreibt</h3>
<p>In Ansible werden Playbooks, die Verarbeitungsabläufe beschreiben, in YAML geschrieben. Hier ist ein einfaches Beispiel eines Ansible-Playbooks:</p>
<p><img src="https://res.cloudinary.com/about-gitlab-com/image/upload/v1761788623/snfw8tz8gvos859lbqw1.png" alt="Wie man Ansible YAML-Dateien schreibt"></p>
<h2>YAML in GitLab verwenden</h2>
<p>GitLab CI/CD-Pipelines verwenden für jedes Projekt eine YAML-Datei namens <a href="https://docs.gitlab.com/ee/ci/examples/index.html">.gitlab-ci.yml</a>, um <a href="https://docs.gitlab.com/ee/ci/yaml/">die Pipeline-Struktur und Ausführungsreihenfolge zu definieren</a>. Die in dieser Datei konfigurierten Inhalte werden im GitLab Runner verarbeitet. Weitere Informationen zur CI/CD YAML-Syntax findest du auf <a href="https://docs.gitlab.com/ee/ci/yaml/">dieser Übersichtsseite</a>.</p>
<h2>Lass uns gemeinsam eine YAML-Datei bearbeiten</h2>
<p>Dank seiner Einfachheit und hohen Lesbarkeit wird YAML vielseitig eingesetzt – für Konfigurationsdateien, <a href="https://about.gitlab.com/de-de/blog/ultimate-guide-to-ci-cd-fundamentals-to-advanced-implementation/">CI/CD-Pipelines</a>, <a href="https://about.gitlab.com/de-de/blog/gitlab-container-registry/">Container-Orchestrierung</a> mit Kubernetes, Dokumentation und Konfigurationsmanagement. Die hohe Lesbarkeit ermöglicht es Entwicklern und Betriebsingenieuren, Konfigurationen und Daten einfach zu verwalten und effizient zu arbeiten. Wenn du YAML verstehst, kannst du Einstellungen für verschiedene Systeme und Tools einfacher und intuitiver vornehmen.</p>
<h2>Häufig gestellte Fragen zu YAML</h2>
<h3>Wofür wird YAML verwendet?</h3>
<p>Dank seiner Einfachheit und hohen Lesbarkeit wird YAML vielseitig eingesetzt – für Konfigurationsdateien, CI/CD-Pipelines, Container-Orchestrierung mit Kubernetes, Dokumentation und Konfigurationsmanagement.</p>
<h3>Was ist der Unterschied zwischen YAML und JSON?</h3>
<p>JSON-Dateien verwenden geschweifte Klammern zur Definition von Anforderungen, während bei YAML die Struktur durch Einrückungen deutlich gemacht wird, was die Lesbarkeit erhöht. Beachte jedoch, dass bei YAML Einrückungen und Leerzeichen sehr wichtig sind.</p>
<h3>Warum ist YAML so beliebt?</h3>
<p>YAML ist eine beliebte Daten-Serialisierungssprache unter Entwicklern. Das liegt an seiner Lesbarkeit, Vielseitigkeit und dem Python-ähnlichen Einrückungssystem. YAML unterstützt mehrere Datentypen und bietet Parser-Bibliotheken für viele Programmiersprachen. Dadurch kann es verschiedene Daten-Serialisierungsaufgaben bewältigen und wird in vielen Bereichen eingesetzt.</p>
<blockquote>
<p>Möchtest du GitLab Ultimate mit Duo Enterprise ausprobieren? <a href="https://about.gitlab.com/de-de/gitlab-duo/">Melde dich heute für eine kostenlose Testversion an.</a></p>
</blockquote>
]]></content>
        <author>
            <name>GitLab Team</name>
            <uri>https://about.gitlab.com/blog/authors/gitlab-team</uri>
        </author>
        <published>2025-10-10T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Artifact Management systematisch konsolidieren mit GitLab]]></title>
        <id>https://about.gitlab.com/de-de/blog/streamline-enterprise-artifact-management-with-gitlab/</id>
        <link href="https://about.gitlab.com/de-de/blog/streamline-enterprise-artifact-management-with-gitlab/"/>
        <updated>2025-10-08T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Artifact Management in Unternehmen hat sich zu einer systematischen Herausforderung entwickelt. Was als einfache Docker-Registries und Maven-Repositories begann, ist heute ein komplexes Netz aus Tools, Richtlinien und operativem Overhead, das mehr Zeit und Budget verschlingt als geplant. Platform-Engineers berichten von einem Grundproblem: Die Verwaltung fragmentierter Artifact-Repositories bindet Ressourcen, die für Platform-Verbesserungen fehlen.</p>
<p>Diese Situation erfordert eine ehrliche Betrachtung der tatsächlichen Kosten fragmentierten Artifact Managements – und realistische Lösungsansätze für Platform-Teams. Dieser Artikel analysiert die Problematik und zeigt, wie GitLab durch strategische Konsolidierung messbare Verbesserungen ermöglicht.</p>
<h2>Die messbaren Auswirkungen</h2>
<p>Basierend auf Kundendaten und Branchenanalysen verursacht fragmentiertes Artifact Management typischerweise folgende Kosten für mittelgroße Organisationen (500+ Entwickler(innen)):</p>
<ul>
<li><strong>Lizenzierung:</strong> 50.000-200.000 US-Dollar jährlich über mehrere Tools verteilt</li>
<li><strong>Operativer Overhead:</strong> 2-3 FTE-Äquivalent für Artifact-Management-Aufgaben</li>
<li><strong>Storage-Ineffizienz:</strong> 20-30 % höhere Storage-Kosten durch Duplikation und mangelhaftes Lifecycle Management</li>
<li><strong>Produktivitätsverlust:</strong> 15-20 Minuten täglich pro Entwickler(in) durch Artifact-bezogene Reibungsverluste</li>
</ul>
<p>Bei Großunternehmen multiplizieren sich diese Zahlen erheblich. Ein Kunde berechnete über 500.000 US-Dollar jährliche Kosten allein für den operativen Overhead der Verwaltung von sieben verschiedenen Artifact-Storage-Systemen.</p>
<p>Die versteckten Kosten summieren sich täglich:</p>
<p><strong>Zeit-Multiplikation:</strong> Jede Lifecycle-Policy, Sicherheitsregel oder Zugriffskontrolle muss über mehrere Systeme implementiert werden. Eine 15-minütige Konfiguration wird zu stundenlanger Arbeit.</p>
<p><strong>Sicherheitslücken-Risiken:</strong> Die Verwaltung von Sicherheitsrichtlinien über disparate Systeme schafft blinde Flecken. Vulnerability Scanning, Zugriffskontrollen und Audit Trails werden fragmentiert.</p>
<p><strong>Kontextwechsel-Kosten:</strong> Entwickler(innen) verlieren Produktivität, wenn sie Artifacts nicht finden oder sich merken müssen, welches System was speichert.</p>
<h2>Das Multiplikationsproblem</h2>
<p>Die Artifact-Management-Landschaft ist explodiert. Wo Teams früher ein einzelnes Maven-Repository verwalteten, jonglieren Platform-Engineers heute mit:</p>
<ul>
<li>Container-Registries (Docker Hub, ECR, GCR, Azure ACR)</li>
<li>Package-Repositories (JFrog Artifactory, Sonatype Nexus)</li>
<li>Sprachspezifische Registries (npm, PyPI, NuGet, Conan)</li>
<li>Infrastructure-Artifacts (Terraform-Module, Helm-Charts)</li>
<li>ML-Model-Registries (MLflow, Weights &amp; Biases)</li>
</ul>
<p>Jedes Tool bringt eigene Authentifizierungssysteme, Lifecycle-Policies, Security Scanning und operative Anforderungen mit. Für Organisationen mit Hunderten oder Tausenden von Projekten entsteht eine exponentielle Management-Belastung.</p>
<h2>GitLabs strategischer Ansatz: Tiefe statt Breite</h2>
<p>Bei der Entwicklung von GitLabs Artifact-Management-Fähigkeiten stand eine klassische Produktentscheidung an: Unterstützung für jedes erdenkliche Artifact-Format oder tiefgehende Implementierung für die Formate, die für Enterprise-Teams wirklich zählen. Die Entscheidung für Tiefe prägt alles, was seitdem entwickelt wurde.</p>
<h3>Die Kernfokusbereiche</h3>
<p>Statt oberflächlicher Unterstützung für 20+ Formate wurde Enterprise-Grade-Funktionalität für ein strategisches Set entwickelt:</p>
<ul>
<li><strong>Maven</strong> (Java-Ökosystem)</li>
<li><strong>npm</strong> (JavaScript/Node.js)</li>
<li><strong>Docker/OCI</strong> (Container-Images)</li>
<li><strong>PyPI</strong> (Python-Packages)</li>
<li><strong>NuGet</strong> (C#/.NET-Packages)</li>
<li><strong>Generic Packages</strong> (beliebige binäre Artifacts)</li>
<li><strong>Terraform-Module</strong> (Infrastructure as Code)</li>
</ul>
<p>Diese sieben Formate decken basierend auf Kundendaten etwa 80 % der Artifact-Nutzung in Enterprise-Umgebungen ab.</p>
<h3>Was &quot;Enterprise-Grade&quot; konkret bedeutet</h3>
<p>Durch Fokussierung auf weniger Formate können Fähigkeiten geliefert werden, die in Produktionsumgebungen mit Hunderten von Entwickler(innen), Terabytes von Artifacts und strengen Compliance-Anforderungen funktionieren:</p>
<p><strong><a href="https://docs.gitlab.com/user/packages/virtual_registry/">Virtual Registries</a>:</strong> Proxy und Cache für Upstream-Dependencies für zuverlässige Builds und Supply-Chain-Kontrolle. Aktuell produktionsreif für Maven, npm und Docker folgen Anfang 2026.</p>
<p><strong>Lifecycle Management:</strong> Automatisierte Cleanup-Policies, die Storage-Kosten kontrollieren und gleichzeitig Artifacts für Compliance bewahren. Heute auf Projektebene verfügbar, organisationsweite Policies für Mitte 2026 geplant.</p>
<p><strong><a href="https://docs.gitlab.com/user/application_security/">Security-Integration</a>:</strong> Integriertes Vulnerability Scanning, Dependency-Analyse und Policy-Enforcement. Die kommende Dependency Firewall (geplant für Ende 2026) wird Supply-Chain-Security-Kontrolle über alle Formate bieten.</p>
<p><strong><a href="https://docs.gitlab.com/ci/">Tiefe CI/CD-Integration</a>:</strong> Vollständige Nachverfolgbarkeit vom Source-Commit zum deployed Artifact, mit Build-Provenance und Security-Scan-Ergebnissen in Artifact-Metadaten.</p>
<h2>Aktuelle Fähigkeiten: Praxiserprobte Features</h2>
<p><strong>Maven Virtual Registries:</strong> Das Flaggschiff der Enterprise-Fähigkeiten, bewährt bei 15+ Enterprise-Kunden. Die meisten komplettieren das <a href="https://about.gitlab.com/blog/tutorial-secure-and-optimize-your-maven-repository-in-gitlab/">Maven Virtual Registry</a>-Setup innerhalb von zwei Monaten mit minimaler GitLab-Unterstützung.</p>
<p><strong>Lokal gehostete Repositories:</strong> Alle sieben unterstützten Formate bieten komplette Upload-, Download-, Versionierungs- und Zugriffskontroll-Fähigkeiten und unterstützen kritische Workloads bei Organisationen mit Tausenden von Entwickler(innen).</p>
<p><strong>Protected Artifacts:</strong> Umfassender Schutz vor unautorisierten Änderungen mit feingranularen Zugriffskontrollen über alle Formate.</p>
<p><strong>Projekt-Level Lifecycle Policies:</strong> Automatisierte Cleanup- und Retention-Policies für Storage-Kostenkontrolle und Compliance.</p>
<h3>Performance- und Skalierungscharakteristika</h3>
<p>Basierend auf aktuellen Produktions-Deployments:</p>
<ul>
<li><strong>Durchsatz:</strong> 10.000+ Artifact-Downloads pro Minute/pro Instanz</li>
<li><strong>Storage:</strong> Kunden verwalten erfolgreich 50+ TB Artifacts</li>
<li><strong>Gleichzeitige Nutzer(innen):</strong> 1.000+ Entwickler(innen) greifen simultan auf Artifacts zu</li>
<li><strong>Verfügbarkeit:</strong> 99,99 % Uptime für GitLab.com seit über 2 Jahren</li>
</ul>
<h2>Strategische Roadmap: Die nächsten 18 Monate</h2>
<h3>Q1 2026</h3>
<ul>
<li><strong>npm Virtual Registries:</strong> Enterprise Proxy/Cache für JavaScript-Packages</li>
<li><strong>Docker Virtual Registries:</strong> Container-Registry-Proxy-Fähigkeiten</li>
</ul>
<h3>Q2 2026</h3>
<ul>
<li><strong>Organisations-Level Lifecycle Policies (Beta):</strong> Zentralisierte Cleanup-Policies mit Projekt-Overrides</li>
<li><strong>NuGet Virtual Registries (Beta):</strong> .NET-Package-Proxy-Unterstützung</li>
<li><strong>PyPI Virtual Registries (Beta):</strong> Vervollständigung der Virtual-Registry-Unterstützung für Python</li>
</ul>
<h3>Q3 2026</h3>
<ul>
<li><strong>Advanced Analytics Dashboard:</strong> Storage-Optimierung und Nutzungs-Insights</li>
</ul>
<h3>Q4 2026</h3>
<ul>
<li><strong>Dependency Firewall (Beta):</strong> Supply-Chain-Security-Kontrolle für alle Artifact-Typen</li>
</ul>
<h2>Entscheidungsframework: Wann GitLab die richtige Wahl ist</h2>
<p><strong>GitLab ist wahrscheinlich die richtige Wahl, wenn:</strong></p>
<ul>
<li>80 %+ deiner Artifacts in unseren sieben unterstützten Formaten sind</li>
<li>Du bereits GitLab für Source Code oder CI/CD nutzt</li>
<li>Du integrierte Workflows über Standalone-Feature-Reichtum stellst</li>
<li>Du die operative Komplexität mehrerer Systeme reduzieren willst</li>
<li>Du vollständige Nachverfolgbarkeit von Source bis Deployment benötigst</li>
</ul>
<h3>Migrationsüberlegungen</h3>
<p><strong>Typische Timeline:</strong> 2-4 Monate für komplette Migration von Artifactory/Nexus</p>
<p><strong>Häufige Herausforderungen:</strong> Virtual-Registry-Konfiguration, Access-Control-Mapping und Entwickler(innen)-Workflow-Änderungen</p>
<p><strong>Erfolgsfaktoren:</strong> Phasenansatz, umfassendes Testing und Entwickler(innen)-Training</p>
<p>Die erfolgreichsten Migrationen folgen diesem Muster:</p>
<ol>
<li><strong>Assessment</strong> (2-4 Wochen): Katalogisierung aktueller Artifacts und Nutzungsmuster</li>
<li><strong>Pilot</strong> (4-6 Wochen): End-to-End-Migration eines Teams/Projekts</li>
<li><strong>Rollout</strong> (6-12 Wochen): Graduelle Migration mit parallelen Systemen</li>
<li><strong>Optimierung</strong> (fortlaufend): Implementierung fortgeschrittener Features und Policies</li>
</ol>
<h2>Besseres Artifact Management kann heute beginnen</h2>
<p>GitLabs Artifact Management versucht nicht, alles für jeden zu sein. Strategische Trade-offs wurden getroffen: tiefe Fähigkeiten für Kern-Enterprise-Formate statt oberflächlicher Unterstützung für alles.</p>
<p>Wenn deine Artifact-Anforderungen mit unseren unterstützten Formaten übereinstimmen und du integrierte Workflows schätzt, können wir deinen operativen Overhead signifikant reduzieren und gleichzeitig die Developer Experience verbessern.</p>
<p>Unser Ziel ist es, dir bei informierten Entscheidungen über deine Artifact-Management-Strategie zu helfen – mit klarem Verständnis der Fähigkeiten und unserer Roadmap.</p>
<p>Kontaktiere mich gerne unter <a href="mailto:trizzi@gitlab.com">trizzi@gitlab.com</a>(bitte auf Englisch anschreiben), um mehr über GitLab Artifact Management zu erfahren. Ich kann spezifische Anforderungen diskutieren und dich mit unserem technischen Team für eine tiefere Evaluierung verbinden.</p>
<p>Weitere technische Details und Implementierungsbeispiele findest du im <a href="https://about.gitlab.com/blog/streamline-enterprise-artifact-management-with-gitlab/">englischen Original</a>.</p>
<p><em>Dieser Blog enthält Informationen zu kommenden Produkten, Features und Funktionalitäten. Es ist wichtig zu beachten, dass die Informationen in diesem Blogpost nur zu Informationszwecken dienen. Bitte verlasse dich nicht auf diese Informationen für Kauf- oder Planungszwecke. Wie bei allen Projekten können die in diesem Blog und verlinkten Seiten erwähnten Elemente Änderungen oder Verzögerungen unterliegen. Die Entwicklung, Veröffentlichung und das Timing von Produkten, Features oder Funktionalitäten liegen im alleinigen Ermessen von GitLab.</em></p>
]]></content>
        <author>
            <name>Tim Rizzi</name>
            <uri>https://about.gitlab.com/blog/authors/tim-rizzi</uri>
        </author>
        <published>2025-10-08T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Atlassian beendet Data Center – GitLab bietet Wahlfreiheit]]></title>
        <id>https://about.gitlab.com/de-de/blog/atlassian-ending-data-center-as-gitlab-maintains-deployment-choice/</id>
        <link href="https://about.gitlab.com/de-de/blog/atlassian-ending-data-center-as-gitlab-maintains-deployment-choice/"/>
        <updated>2025-10-07T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Atlassians Ankündigung, dass <a href="https://www.atlassian.com/blog/announcements/atlassian-ascend">alle Data Center-Produkte bis zum 28. März 2029 das End-of-Life erreichen</a>, bedeutet für tausende Organisationen eine grundlegende Neubewertung ihrer DevSecOps-Deployment- und Infrastruktur-Strategien.</p>
<p>GitLab bewahrt die Wahlfreiheit – ob Self-Managed für Compliance, Cloud für Flexibilität oder Hybrid für spezifische Anforderungen – alles innerhalb einer einzigen KI-gestützten DevSecOps-Plattform, die alle Geschäftsanforderungen respektiert.</p>
<p>Während andere Anbieter Migrationen zu reinen Cloud-Architekturen erzwingen, unterstützt GitLab weiterhin alle Deployment-Optionen, die zu individuellen Geschäftsanforderungen passen. Ob du sensible Regierungsdaten verwaltest, in air-gapped Umgebungen arbeitest oder die Kontrolle selbstverwalteter Deployments bevorzugst – wir verstehen, dass es keine Einheitslösung gibt. Besonders für deutsche Unternehmen mit strengen Datenschutzanforderungen nach DSGVO und branchenspezifischen Regularien ist diese Flexibilität geschäftskritisch.</p>
<h2>Cloud-Architekturen erfüllen nicht alle Compliance-Anforderungen</h2>
<p>Für viele Unternehmen, die Millionen in Data Center-Deployments investiert haben – einschließlich derer, die nach der <a href="https://about.gitlab.com/blog/atlassian-server-ending-move-to-a-single-devsecops-platform/">Einstellung der Server-Produkte zu Data Center migriert sind</a> – stellt diese Ankündigung mehr als eine Produktabkündigung dar. Sie signalisiert eine grundlegende Abkehr von kundenorientierten Architekturentscheidungen und zwingt Unternehmen, zwischen nicht passenden Deployment-Modellen oder einem Anbieterwechsel zu wählen.</p>
<p>Viele Organisationen, die selbstverwaltete Deployments benötigen, gehören zu den wichtigsten Institutionen: Gesundheitssysteme mit Patientendatenschutz, Finanzinstitute mit BaFin-Auflagen, Regierungsbehörden mit nationalen Sicherheitsanforderungen und Verteidigungsunternehmen in air-gapped Umgebungen.</p>
<p>Diese Organisationen wählen selbstverwaltete Deployments nicht aus Bequemlichkeit, sondern aufgrund von Compliance-, Sicherheits- und Souveränitätsanforderungen, die reine Cloud-Architekturen nicht erfüllen können. Organisationen in geschlossenen Umgebungen ohne Internetzugang sind keine Ausnahmen – sie repräsentieren einen signifikanten Anteil von Unternehmenskunden verschiedener Branchen.</p>
<table>
<thead>
<tr>
<th>Plattform</th>
<th>Self-managed</th>
<th>Multi-tenant SaaS</th>
<th>Single-tenant SaaS</th>
<th>FedRAMP-konformes Single-tenant SaaS</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>GitLab</strong></td>
<td>✅ GitLab Self-Managed</td>
<td>✅ GitLab.com</td>
<td>✅ GitLab Dedicated</td>
<td>✅ GitLab Dedicated for Government</td>
</tr>
<tr>
<td><strong>Atlassian</strong></td>
<td>⚠️ Atlassian Data Center (Abkündigung ab 2026)</td>
<td>✅ Atlassian Cloud</td>
<td>❌ Nicht verfügbar (Atlassian Isolated Cloud angekündigt für 2026)</td>
<td>❌ Nicht verfügbar (Atlassian Government Cloud ist multi-tenant; nur für Jira, Confluence und Jira Service Management)</td>
</tr>
</tbody>
</table>
<h2>Die wahren Kosten erzwungener Cloud-Migration</h2>
<p>Während Cloud-Anbieter Zwangsmigrationen als &quot;Upgrades&quot; darstellen, stehen Organisationen vor erheblichen Herausforderungen jenseits reiner Kostenbetrachtungen:</p>
<ul>
<li>
<p><strong>Verlust von Integrationsfähigkeiten:</strong> Jahre sorgfältig entwickelter Integrationen mit Legacy-Systemen, maßgeschneiderte Workflows und unternehmensspezifische Automatisierungen werden obsolet. Für Organisationen mit tiefen Legacy-System-Integrationen ist Cloud-Migration oft technisch nicht durchführbar.</p>
</li>
<li>
<p><strong>Regulatorische Einschränkungen:</strong> Für Organisationen in regulierten Branchen ist Cloud-Migration nicht nur komplex – sie ist oft nicht zulässig. Datenresidenz-Anforderungen, air-gapped Umgebungen und strenge regulatorische Rahmenwerke richten sich nicht nach Anbieterpräferenzen. Das Fehlen von Single-Tenant-Lösungen in vielen Cloud-Only-Ansätzen schafft unüberwindbare Compliance-Hürden.</p>
</li>
<li>
<p><strong>Produktivitätseinbußen:</strong> Cloud-Only-Architekturen erfordern oft die Verwaltung mehrerer Produkte: separate Tools für Planung, Code-Management, CI/CD und Dokumentation. Jedes Tool bedeutet einen weiteren Kontextwechsel, eine weitere zu wartende Integration, einen weiteren potenziellen Fehlerpunkt. Eine GitLab-Studie zeigt, dass <a href="https://about.gitlab.com/developer-survey/">30 % der Entwickler mindestens 50 % ihrer Arbeitszeit mit der Wartung und/oder Integration ihrer DevSecOps-Toolchain verbringen</a>. Fragmentierte Architekturen verschärfen diese Herausforderung, anstatt sie zu lösen.</p>
</li>
</ul>
<h2>GitLab bietet Wahlfreiheit, Verlässlichkeit und Konsolidierung</h2>
<p>Unternehmenskunden verdienen einen verlässlichen Technologiepartner. Deshalb haben wir uns zur Unterstützung verschiedener Deployment-Optionen verpflichtet – ob du On-Premises für Compliance, Hybrid für Flexibilität oder Cloud für Skalierbarkeit benötigst, du hast die freie Auswahl. Diese Verpflichtung setzt sich mit <a href="https://about.gitlab.com/de-de/gitlab-duo/">GitLab Duo</a> fort, unserer KI-Lösung, die Entwickler in jeder Phase ihres Workflows unterstützt.</p>
<p>Wir bieten mehr als nur Deployment-Flexibilität. Während dich andere Anbieter zwingen, deine Produkte zu einer fragmentierten Toolchain zusammenzufügen, bietet GitLab alles in einer <strong>umfassenden KI-nativen DevSecOps-Plattform</strong>. Source Code Management, CI/CD, Security Scanning, Agile-Planung und Dokumentation werden innerhalb einer einzigen Anwendung und einer einzigen Anbieterbeziehung verwaltet.</p>
<p>Dies ist keine Theorie. Als <a href="https://about.gitlab.com/de-de/customers/airbus/">Airbus</a> und <a href="https://about.gitlab.com/de-de/customers/iron-mountain/">Iron Mountain</a> ihre bestehenden fragmentierten Toolchains evaluierten, identifizierten sie konsistent dieselben Herausforderungen: schlechte Benutzererfahrung, fehlende Funktionalitäten wie integriertes Security Scanning und Review Apps sowie Verwaltungskomplexität durch Plugin-Troubleshooting. <strong>Das sind keine kleineren Herausforderungen, sondern ernsthafte Hindernisse für moderne Software-Delivery.</strong></p>
<h2>Dein Migrationspfad: Systematisch und planbar</h2>
<p>Wir haben tausenden Organisationen bei der Migration von anderen Anbietern geholfen und die Tools sowie Expertise entwickelt, um deinen Übergang reibungslos zu gestalten:</p>
<ul>
<li>
<p><strong>Automatisierte Migrationstools:</strong> Unser <a href="https://docs.gitlab.com/user/project/import/bitbucket_server/">Bitbucket Server Importer</a> überträgt Repositories, Pull Requests, Kommentare und sogar Large File Storage (LFS) Objekte. Für Jira übernimmt unser <a href="https://docs.gitlab.com/user/project/import/jira/">integrierter Importer</a> Issues, Beschreibungen und Labels. Professional Services stehen für komplexe Migrationen zur Verfügung.</p>
</li>
<li>
<p><strong>Bewährt im großen Maßstab:</strong> Ein 500 GiB Repository mit 13.000 Pull Requests, 10.000 Branches und 7.000 Tags benötigt mit Parallelverarbeitung <a href="https://docs.gitlab.com/user/project/import/bitbucket_server/">nur etwa 8 Stunden für die Migration</a> von Bitbucket zu GitLab.</p>
</li>
<li>
<p><strong>Sofortiger ROI:</strong> Eine <a href="https://about.gitlab.com/resources/study-forrester-tei-gitlab-ultimate/">von GitLab beauftragte Forrester Consulting Total Economic Impact™ Studie</a> bestätigt messbare Geschäftsvorteile: 483 % ROI über drei Jahre, 5-fache Zeitersparnis bei sicherheitsbezogenen Aktivitäten und 25% Einsparungen bei Software-Toolchain-Kosten.</p>
</li>
</ul>
<h2>Beginne die Transformation zu einer einheitlichen DevSecOps-Plattform</h2>
<p>Vorausschauende Organisationen warten nicht auf anbieterdiktierte Fristen. Sie evaluieren jetzt Alternativen, während noch Zeit für eine durchdachte Migration zu Plattformen bleibt, die ihre Investitionen schützen und Versprechen einhalten.</p>
<p>Organisationen investieren in selbstverwaltete Deployments, weil sie Kontrolle, Compliance und Anpassungsfähigkeit benötigen. Wenn Anbieter diese Fähigkeiten abkündigen, entfernen sie nicht nur Features, sondern die grundlegende Fähigkeit, Umgebungen entsprechend der Geschäftsanforderungen zu wählen.</p>
<p>Moderne DevSecOps-Plattformen sollten vollständige Funktionalität bieten, die Deployment-Anforderungen respektiert, Toolchains konsolidiert und Software-Delivery beschleunigt – ohne Kompromisse bei Sicherheit oder Datensouveränität zu erzwingen.</p>
<p><a href="https://about.gitlab.com/de-de/sales/">Sprich noch heute mit unserem Vertrieb</a> über alle Migrationsoptionen oder erkunde unsere <a href="https://about.gitlab.com/move-to-gitlab-from-atlassian/">umfassenden Migrationsressourcen</a>, um zu sehen, wie tausende Organisationen bereits migriert sind.</p>
<p>Alternativ bieten wir einen <a href="https://about.gitlab.com/free-trial/devsecops/">kostenlosen 30-tägigen Test von GitLab Ultimate mit GitLab Duo Enterprise</a> an, damit du live erleben kannst, was eine einheitliche DevSecOps-Plattform für deine Organisation leisten kann.</p>
<p>Weitere technische Details zur Migration und Deployment-Architektur finden sich im <a href="https://about.gitlab.com/blog/atlassian-ending-data-center-as-gitlab-maintains-deployment-choice/">englischen original Blogpost</a>.</p>
]]></content>
        <author>
            <name>Emilio Salvador</name>
            <uri>https://about.gitlab.com/blog/authors/emilio-salvador</uri>
        </author>
        <published>2025-10-07T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Vier Ansätze für Embedded-Entwicklung mit GitLab]]></title>
        <id>https://about.gitlab.com/de-de/blog/4-ways-to-accelerate-embedded-development-with-gitlab/</id>
        <link href="https://about.gitlab.com/de-de/blog/4-ways-to-accelerate-embedded-development-with-gitlab/"/>
        <updated>2025-10-02T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Embedded-Entwicklung unterscheidet sich grundlegend von herkömmlicher Software-Entwicklung. Die Kombination aus Hardware-Constraints, langen Release-Zyklen und strengen Compliance-Anforderungen erfordert einen systematischen Ansatz – besonders in regulierten Branchen wie Automotive, Medizintechnik oder industrielle Automation.</p>
<p>Diese vier Ansätze zeigen, wie sich typische Herausforderungen der Embedded-Entwicklung mit GitLab adressieren lassen.</p>
<h2>1. Dependency-Management für Embedded-Systeme</h2>
<p>Embedded-Projekte nutzen häufig spezialisierte Bibliotheken und Hardware-spezifische Abhängigkeiten. Das manuelle Tracking dieser Dependencies ist fehleranfällig und erschwert die Nachvollziehbarkeit – ein kritischer Aspekt für Compliance-Audits.</p>
<p>GitLab bietet mehrere Ansätze für systematisches Dependency-Management:</p>
<p><strong>Dependency Scanning:</strong> GitLab scannt automatisch die Abhängigkeiten im Projekt und identifiziert bekannte Sicherheitslücken. Die Ergebnisse erscheinen direkt in Merge Requests, sodass Probleme frühzeitig adressiert werden können.</p>
<p><strong>Dependency-Proxy:</strong> Der GitLab Dependency-Proxy cached externe Abhängigkeiten lokal. Das reduziert die Abhängigkeit von externen Repositories und verbessert die Build-Performance – besonders relevant für große Embedded-Projekte mit vielen Dependencies.</p>
<p><strong>Container Registry:</strong> Viele Embedded-Toolchains lassen sich in Container-Images paketieren. Die GitLab Container Registry ermöglicht versioniertes Management dieser Images, sodass alle Teammitglieder mit identischen Build-Umgebungen arbeiten.</p>
<p>Dieser systematische Ansatz ist beispielsweise relevant für deutsche Entwicklungsteams in regulierten Branchen, wo Nachvollziehbarkeit und Audit-Trails zu den Compliance-Anforderungen gehören.</p>
<h2>2. Sicherheitsscans für Embedded-Code</h2>
<p>Embedded-Systeme sind zunehmend vernetzt und damit potenzielle Angriffsziele. Sicherheitslücken in Embedded-Software können schwerwiegende Folgen haben – von Datenlecks bis hin zu Safety-Risiken in kritischen Systemen.</p>
<p>GitLab integriert mehrere Scan-Mechanismen in die CI/CD-Pipeline:</p>
<p><strong>Static Application Security Testing (SAST):</strong> SAST analysiert den Source Code auf bekannte Sicherheitsmuster und Schwachstellen. Für C/C++ – die dominierenden Sprachen in der Embedded-Entwicklung – unterstützt GitLab mehrere SAST-Analyzer.</p>
<p><strong>Secret Detection:</strong> Embedded-Projekte enthalten oft API-Keys für Cloud-Services oder Hardware-Zugangsdaten. GitLabs Secret Detection identifiziert versehentlich committete Credentials automatisch.</p>
<p><strong>Dependency Scanning:</strong> Wie bereits erwähnt, scannt GitLab auch Dependencies auf bekannte CVEs – essentiell, da Embedded-Projekte oft Legacy-Bibliotheken nutzen.</p>
<p>Die Security-Findings erscheinen zentral im Security Dashboard und in Merge Requests. Teams können Vulnerabilities priorisieren, Verantwortlichkeiten zuweisen und den Remediation-Progress tracken.</p>
<h2>3. Compliance-Automatisierung</h2>
<p>Embedded-Entwicklung in regulierten Branchen erfordert strikte Compliance mit Standards wie ISO 26262 (Automotive), IEC 62304 (Medizintechnik) oder DO-178C (Luftfahrt). Die manuelle Dokumentation von Compliance-Prozessen ist zeitaufwändig und fehleranfällig.</p>
<p>GitLab ermöglicht Compliance-Automatisierung auf mehreren Ebenen:</p>
<p><strong>Compliance Pipelines:</strong> Mit Compliance-Frameworks lassen sich Pipeline-Policies zentral definieren und durchsetzen. Beispielsweise kann eine Policy verlangen, dass alle Builds bestimmte Sicherheitsscans durchlaufen oder dass Code-Reviews von mindestens zwei Personen genehmigt werden.</p>
<p><strong>Audit Events:</strong> GitLab loggt alle sicherheitsrelevanten Aktionen automatisch – von Code-Changes über Pipeline-Executions bis hin zu Access-Grants. Diese Audit-Trails sind für Compliance-Audits unverzichtbar.</p>
<p><strong>Merge Request Approvals:</strong> Approval-Rules stellen sicher, dass kritischer Code vor dem Merge von autorisierten Personen reviewt wird. Das lässt sich beispielsweise nach Code-Ownership-Bereichen oder Compliance-Anforderungen konfigurieren.</p>
<p><strong>Protected Branches:</strong> Produktions-Branches lassen sich gegen direkte Commits schützen. Änderungen müssen durch definierte Approval- und Testing-Prozesse gehen.</p>
<p>Diese Automatisierung reduziert den manuellen Aufwand für Compliance-Dokumentation erheblich und schafft gleichzeitig eine nachvollziehbare, audit-fähige Entwicklungshistorie.</p>
<h2>4. Build-Optimierung für Embedded-Projekte</h2>
<p>Embedded-Builds sind oft langwierig – Cross-Compilation, Hardware-spezifische Toolchains und umfangreiche Test-Suites summieren sich. Lange Build-Zeiten beeinträchtigen die Entwicklerproduktivität und verlangsamen Entwicklungszyklen.</p>
<p>GitLab bietet mehrere Ansätze zur Build-Optimierung:</p>
<p><strong>Parallel Jobs:</strong> GitLab-Pipelines lassen sich parallelisieren. Statt sequenzieller Builds können unabhängige Jobs gleichzeitig laufen – beispielsweise Tests für verschiedene Hardware-Targets.</p>
<p><strong>Caching:</strong> GitLab-Runner unterstützen Caching von Build-Artefakten und Dependencies. Das vermeidet redundante Downloads und Kompilierungen über mehrere Pipeline-Runs hinweg.</p>
<p><strong>Distributed Runners:</strong> Für größere Teams lassen sich mehrere GitLab-Runner bereitstellen. Jobs werden automatisch auf verfügbare Runner verteilt, sodass mehrere Entwickler parallel arbeiten können ohne Wartezeiten.</p>
<p><strong>Merge Request Pipelines:</strong> Pipelines lassen sich so konfigurieren, dass sie nur bei Merge Requests laufen – nicht bei jedem einzelnen Commit. Das spart Ressourcen für experimentelle Branches.</p>
<p>Die Kombination dieser Ansätze kann Build-Zeiten erheblich reduzieren und ermöglicht schnellere Entwicklungszyklen – selbst bei komplexen Embedded-Projekten mit mehreren Hardware-Targets.</p>
<h2>Embedded-Entwicklung systematisch angehen</h2>
<p>Die vier beschriebenen Ansätze adressieren zentrale Herausforderungen der Embedded-Entwicklung: Dependency-Management für Supply-Chain-Security, automatisierte Sicherheitsscans für vernetzte Systeme, Compliance-Automatisierung für regulierte Branchen und Build-Optimierung für effiziente Entwicklungszyklen.</p>
<p>GitLab integriert diese Capabilities in eine einheitliche Plattform. Teams müssen keine separaten Tools für Dependency-Scanning, Security-Testing, Compliance-Tracking und CI/CD orchestrieren – alles läuft in einem System mit einheitlicher Datenbasis.</p>
<p>Mehr Details zu GitLabs Embedded-Development-Capabilities gibt es in der <a href="https://about.gitlab.com/blog/4-ways-to-accelerate-embedded-development-with-gitlab/">englischen Originaldokumentation</a>. Für spezifische Fragen zu Sicherheitsscans, Compliance-Features oder Pipeline-Optimierung stehen die <a href="https://docs.gitlab.com">GitLab-Docs</a> zur Verfügung.</p>
]]></content>
        <author>
            <name>Matt DeLaney</name>
            <uri>https://about.gitlab.com/blog/authors/matt-delaney</uri>
        </author>
        <author>
            <name>Darwin Sanoy</name>
            <uri>https://about.gitlab.com/blog/authors/darwin-sanoy</uri>
        </author>
        <published>2025-10-02T00:00:00.000Z</published>
    </entry>
    <entry>
        <title type="html"><![CDATA[Von manuellen Testzyklen zu automatisierten Embedded-Workflows: GitLabs Ansatz für virtuelle Testumgebungen]]></title>
        <id>https://about.gitlab.com/de-de/blog/how-gitlab-transforms-embedded-systems-testing-cycles/</id>
        <link href="https://about.gitlab.com/de-de/blog/how-gitlab-transforms-embedded-systems-testing-cycles/"/>
        <updated>2025-10-02T00:00:00.000Z</updated>
        <content type="html"><![CDATA[<p>Embedded-Entwickler(innen) kennen diesen Zyklus: Code schreiben, Tage oder Wochen auf einen Hardware-Testplatz warten, Fehler entdecken, korrigieren und erneut warten. Virtuelle Testumgebungen versprechen schnelleres Feedback, schaffen in der Praxis aber oft neue Probleme wie unkontrollierten Umgebungs-Wildwuchs und explodierende Kosten.</p>
<p>GitLabs Managed Lifecycle Environments lösen diese Herausforderungen systematisch. Durch automatisierte virtuelle Umgebungen beschleunigt GitLab Embedded-Entwicklungszyklen ohne die typische Konfigurationskomplexität und Kostenexplosion. Für Teams, die mit komplexen Test-Setups arbeiten – etwa MATLAB/Simulink MIL-Tests oder Testing auf spezialisierten Prozessoren wie Infineon AURIX – bietet dieser Ansatz messbare Vorteile.</p>
<h2>Die Herausforderungen virtueller Testumgebungen</h2>
<p>Virtuelle Testumgebungen – simulierte Hardware-Setups, die das Verhalten von Embedded-Systemen und reale Bedingungen nachbilden – können Hardware-Engpässe reduzieren. Teams testen Firmware auf simulierten Prozessoren, führen Model-in-the-Loop (MIL) Tests in MATLAB/Simulink durch oder verifizieren Software auf virtuellen Embedded-Systemen ohne physischen Hardware-Zugriff.</p>
<p>Die meisten Teams implementieren virtuelle Umgebungen jedoch mit einem von zwei gängigen Ansätzen, die beide zu nicht nachhaltigen Problemen führen.</p>
<h3>Problematischer Ansatz 1: Pipeline Lifecycle Environments</h3>
<p><strong>Pipeline Lifecycle Environments erstellen die gesamte Testumgebung für jeden CI/CD-Durchlauf neu.</strong> Bei Code-Änderungen provisioniert das System Infrastruktur, installiert Software-Simulationen und konfiguriert alles von Grund auf, bevor Tests laufen.</p>
<p>Dieser Ansatz funktioniert für einfache Szenarien, wird aber mit steigender Komplexität ineffizient. Betrachte beispielsweise Software-in-the-Loop (SIL) Tests in einer komplexen virtuellen Umgebung. Jeder Pipeline-Durchlauf erfordert die vollständige Neuerstellung der Umgebung, einschließlich virtueller Prozessor-Provisionierung, Toolchain-Installationen und Zielkonfigurationen. <strong>Diese Prozesse verschlingen erhebliche Zeit.</strong></p>
<p>Mit zunehmend anspruchsvolleren virtuellen Hardware-Konfigurationen für Embedded-Systeme <strong>summieren sich die Provisionierungskosten schnell.</strong></p>
<p>Um diese Rebuild-Kosten und Verzögerungen zu vermeiden, setzen viele Teams auf langlebige Umgebungen, die zwischen Testläufen bestehen bleiben. Diese bringen jedoch eigene Nachteile mit sich.</p>
<h3>Problematischer Ansatz 2: Long-lived Environments</h3>
<p><strong>Long-lived Environments bleiben dauerhaft bestehen</strong>, um ständige Neuaufbauten zu vermeiden. Entwickler(innen) fordern diese Umgebungen bei IT- oder DevOps-Teams an, warten auf Genehmigung und benötigen dann manuelle Provisionierung der Infrastruktur. Diese Umgebungen sind an einzelne Entwickler(innen)/Teams gebunden statt an spezifische Code-Änderungen und unterstützen laufende Entwicklungsarbeit über mehrere Projekte hinweg.</p>
<p>Dies eliminiert zwar den Rebuild-Overhead, <strong>erzeugt aber Umgebungs-Wildwuchs.</strong> Umgebungen akkumulieren ohne klares Enddatum. Infrastrukturkosten steigen, da Umgebungen unbegrenzt Ressourcen verbrauchen.</p>
<p>Long-lived Environments leiden zudem unter <strong>&quot;Config Rot&quot;</strong> – Umgebungen behalten Einstellungen, gecachte Daten oder Software-Versionen früherer Tests, die nachfolgende Ergebnisse beeinflussen können. Ein Test, der fehlschlagen sollte, wird durch Rückstände vorheriger Tests erfolgreich.</p>
<p>Letztlich ist die Verwaltung langlebiger Umgebungen ein manueller Prozess, der die Entwicklungsgeschwindigkeit bremst und den operativen Overhead erhöht.</p>
<p><strong>GitLab bietet einen dritten Ansatz</strong> durch &quot;Managed Lifecycle Environments&quot;. Dieser Ansatz vereint die Vorteile von langlebigen und Pipeline-Lifecycle-Umgebungen bei gleichzeitiger Vermeidung der Nachteile.</p>
<h2>Die Lösung: Managed Lifecycle Environments</h2>
<p>GitLabs Managed Lifecycle Environments binden virtuelle Test-Setups an Merge Requests (<a href="https://docs.gitlab.com/user/project/merge_requests/">MRs</a>) statt an Pipeline-Läufe oder einzelne Entwickler(innen). Man kann sie auch als &quot;verwaltete MR-Testumgebungen&quot; bezeichnen. Beim Erstellen eines MR für ein neues Feature orchestriert GitLab automatisch die Provisionierung notwendiger virtueller Testumgebungen. Diese Umgebungen bleiben während des gesamten Feature-Entwicklungsprozesses bestehen.</p>
<h3>Die wichtigsten Vorteile</h3>
<ul>
<li>
<p><strong>Persistente Umgebungen ohne Neuaufbau:</strong> Die gleiche virtuelle Umgebung verarbeitet mehrere Pipeline-Läufe während der Feature-Iteration. Ob MIL-Tests in MATLAB/Simulink oder SIL-Tests auf spezialisierten Embedded-Prozessoren – die Umgebung bleibt konfiguriert und bereit.</p>
</li>
<li>
<p><strong>Automatische Bereinigung:</strong> Beim Merge des Features und Löschen des Branches löst GitLab automatisch die Umgebungsbereinigung aus und eliminiert Umgebungs-Wildwuchs.</p>
</li>
<li>
<p><strong>Single Source of Truth:</strong> Der MR dokumentiert alle Build-Ergebnisse, Testergebnisse und Umgebungs-Metadaten an einem Ort. Teammitglieder können Fortschritte verfolgen und zusammenarbeiten, ohne zwischen verschiedenen Tools oder Tabellen zu wechseln.</p>
</li>
</ul>
<p>Dieses Übersichtsvideo zeigt, wie Managed Lifecycle Environments in der Praxis funktionieren:</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/9tfyVPK5DuI?si=Kj_xXNo02bnFBDhy&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<p>GitLab automatisiert den gesamten Test-Workflow. Bei jedem Firmware-Test orchestriert GitLab Tests in der entsprechenden virtuellen Umgebung, dokumentiert Ergebnisse und bietet volle Transparenz über jeden Pipeline-Lauf. Dieser Ansatz verwandelt komplexes virtuelles Testen von einem manuellen, fehleranfälligen Prozess in automatisierte, zuverlässige Workflows.</p>
<p><strong>Das Ergebnis:</strong> Teams erhalten wiederverwendbare Umgebungen ohne ausufernde Kosten. Sie steigern die Effizienz bei gleichzeitiger Aufrechterhaltung sauberer, isolierter Test-Setups für jedes Feature.</p>
<p>Hier ist eine Demo von Managed Lifecycle Environments für Firmware-Tests auf virtueller Hardware:</p>
<p>&lt;!-- blank line --&gt;
&lt;figure class=&quot;video_container&quot;&gt;
&lt;iframe src=&quot;https://www.youtube.com/embed/iWdY-kTlpH4?si=D6rpoulr9sv6Sl6E&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;true&quot;&gt; &lt;/iframe&gt;
&lt;/figure&gt;
&lt;!-- blank line --&gt;</p>
<h2>Geschäftsnutzen</h2>
<p>GitLabs Managed Lifecycle Environments liefern messbare Verbesserungen über Embedded-Entwicklungsworkflows hinweg. Teams, die MIL-Tests in MATLAB/Simulink und SIL-Tests auf spezialisierten Prozessoren wie Infineon AURIX oder BlackBerry QNX-Systemen durchführen, müssen nicht mehr zwischen ständigen Umgebungs-Neuaufbauten oder unkontrolliertem Umgebungs-Wildwuchs wählen. Stattdessen bleiben diese komplexen virtuellen Test-Setups während der Feature-Entwicklung bestehen und bereinigen sich automatisch bei Abschluss. Dies ermöglicht:</p>
<ul>
<li>Schnellere Produktentwicklungszyklen</li>
<li>Kürzere Time-to-Market</li>
<li>Niedrigere Infrastrukturkosten</li>
<li>Höhere Qualitätssicherung</li>
</ul>
<h2>Virtuelle Testprozesse systematisch verbessern</h2>
<p><a href="https://learn.gitlab.com/embedded-en/whitepaper-unlocking-agility-embedded-development"><strong>Lade das Whitepaper &quot;Unlocking agility and avoiding runaway costs in embedded development&quot; herunter</strong></a> für eine tiefergehende Betrachtung von Managed Lifecycle Environments und erfahre, wie du Embedded-Entwicklungsworkflows nachhaltig beschleunigen kannst.</p>
<p>Weitere technische Details und Implementierungsbeispiele findest du im <a href="https://about.gitlab.com/blog/how-gitlab-transforms-embedded-systems-testing-cycles/">englischen original Blogpost</a>.</p>
]]></content>
        <author>
            <name>Matt DeLaney</name>
            <uri>https://about.gitlab.com/blog/authors/matt-delaney</uri>
        </author>
        <author>
            <name>Darwin Sanoy</name>
            <uri>https://about.gitlab.com/blog/authors/darwin-sanoy</uri>
        </author>
        <published>2025-10-02T00:00:00.000Z</published>
    </entry>
</feed>