[{"data":1,"prerenderedAt":755},["ShallowReactive",2],{"/de-de/blog/how-gitlab-duo-agent-platform-transforms-dataops":3,"navigation-de-de":35,"banner-de-de":439,"footer-de-de":449,"blog-post-authors-de-de-Dennis van Rooijen":654,"blog-related-posts-de-de-how-gitlab-duo-agent-platform-transforms-dataops":669,"assessment-promotions-de-de":707,"next-steps-de-de":745},{"id":4,"title":5,"authorSlugs":6,"body":8,"categorySlug":9,"config":10,"content":14,"description":8,"extension":26,"isFeatured":12,"meta":27,"navigation":12,"path":28,"publishedDate":20,"seo":29,"stem":32,"tagSlugs":33,"__hash__":34},"blogPosts/de-de/blog/how-gitlab-duo-agent-platform-transforms-dataops.yml","How Gitlab Duo Agent Platform Transforms Dataops",[7],"dennis-van-rooijen",null,"ai-ml",{"slug":11,"featured":12,"template":13},"how-gitlab-duo-agent-platform-transforms-dataops",true,"BlogPost",{"title":15,"description":16,"authors":17,"heroImage":19,"date":20,"category":9,"tags":21,"body":25},"Wie du mit der GitLab Duo Agent Platform deine DataOps transformiert","So wird aus manueller Programmierung eine vollautomatische Generierung, erklärt am Beispiel der dbt-Modellerstellung.",[18],"Dennis van Rooijen","blog/hero%20images/workflow_1800x945.png","2025-09-16",[22,23,24],"product","tutorial","features","Die manuelle Erstellung von dbt-Modellen ist ein mühsamer Prozess, der Stunden an Arbeitszeit verschlingt. Besonders wenn keine (größeren) Geschäftstransformationen vorgenommen werden, gehört diese Aufgabe nicht zu den attraktivsten Tätigkeiten eines Dateningenieurs.\n\nAber was wäre, wenn du diesen gesamten Prozess automatisieren könntest? In dieser Anleitung zeige ich dir genau, wie [GitLab Duo Agent Platform](https://about.gitlab.com/de-de/gitlab-duo-agent-platform/) umfassende dbt-Modelle in nur wenigen Minuten generiert – komplett mit ordnungsgemäßer Struktur, Tests und Dokumentation.\n\n## Was wir aufbauen\n\nUnser Marketing-Team möchte Werbeinvestitionen effektiv verwalten und optimieren. Eine der Werbeplattformen ist Reddit, daher extrahieren wir Daten von der Reddit Ads API in unsere unternehmensweite [Datenplattform](https://handbook.gitlab.com/handbook/enterprise-data/platform/) Snowflake. Bei GitLab haben wir drei Speicherebenen:\n\n1. `raw`-Ebene – erster Landepunkt für unverarbeitete Daten aus externen Quellen; noch nicht für geschäftliche Nutzung bereit\n2. `prep`-Ebene – erste Transformationsebene mit Quellmodellen; noch nicht für allgemeine geschäftliche Nutzung bereit\n3. `prod`-Ebene – final transformierte Daten, bereit für geschäftliche Nutzung und Tableau-Berichte\n\n![Diagramm der Speicherebenen](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/zo7vespktzfdtdtiauz7.png)\n\nFür diese Anleitung sind die Daten bereits durch unsere Extraktionslösung Fivetran in der raw-Ebene gelandet, und wir werden dbt-Modelle generieren, die die Daten von der `prep`-Ebene zur `prod`-Ebene verarbeiten.\n\nOhne eine einzige Zeile dbt-Code selbst schreiben zu müssen, werden wir am Ende der Anleitung Folgendes haben:\n\n* **Quellmodelle** in der prep-Ebene\n* **Workspace-Modelle** in der prod-Ebene\n* **Vollständige dbt-Konfigurationen** für alle 13 Tabellen (einschließlich 112 Spalten) im Reddit Ads-Datensatz\n* **Test-Abfragen** zur Validierung der Ergebnisse\n\nDer gesamte Prozess dauert weniger als 10 Minuten – im Vergleich zu den Stunden, die normalerweise dafür benötigt würden. Hier sind die zu befolgenden Schritte:\n\n## 1. Die Datenstruktur vorbereiten\n\nBevor GitLab Duo unsere Modelle generieren kann, muss es die vollständige Tabellenstruktur verstehen. Der Schlüssel liegt darin, eine Abfrage gegen Snowflakes Informationsschema auszuführen, da wir derzeit untersuchen, wie wir GitLab Duo über das Model Context Protocol ([MCP](https://about.gitlab.com/topics/ai/model-context-protocol/)) mit unserer Snowflake-Instanz verbinden können:\n\n```sql\nSELECT \n    table_name,\n    column_name,\n    data_type,\n    is_nullable,\n    CASE \n        WHEN is_nullable = 'NO' THEN 'PRIMARY_KEY'\n        ELSE NULL \n    END as key_type\nFROM raw.information_schema.columns\nWHERE table_schema = 'REDDIT_ADS'\nORDER BY table_name, ordinal_position;\n```\n\nDiese Abfrage erfasst:\n\n* Alle Tabellen- und Spaltennamen\n* Datentypen für die korrekte Modellstruktur\n* Nullable-Einschränkungen\n* Primärschlüssel-Identifikation (nicht-nullable Spalten in diesem Datensatz)\n\n**Profi-Tipp:** Im Reddit Ads-Datensatz dienen alle nicht-nullable Spalten als Primärschlüssel – ein Muster. Ich habe dies überprüft, indem ich Tabellen wie `ad_group` kontrollierte, die zwei nicht-nullable Spalten (`account_id` und `id`) hat, die beide als Primärschlüssel markiert sind. Die Ausführung dieser Abfrage lieferte 112 Zeilen Metadaten, die ich als CSV-Datei für die Modellgenerierung exportierte. Während dieser manuelle Schritt heute gut funktioniert, untersuchen wir eine direkte Integration von GitLab Duo mit unserer Datenplattform über MCP, um diesen Prozess vollständig zu automatisieren.\n\n## 2. GitLab Duo einrichten\n\nEs gibt zwei Möglichkeiten, mit [GitLab Duo](https://docs.gitlab.com/user/get_started/getting_started_gitlab_duo/) zu interagieren:\n\n1. **Web-UI-Chat-Funktion**\n2. **Visual Studio Code-Plugin**\n\nIch habe mich für das VS Code-Plugin entschieden, da ich die dbt-Modelle lokal ausführen kann, um sie zu testen.\n\n## 3. Den 'magischen' Prompt eingeben\n\nHier ist der exakte Prompt, den ich zur Generierung des gesamten dbt-Codes verwendet habe:\n\n```text\nCreate dbt models for all the tables in the file structure.csv.\n\nI want to have the source models created, with a filter that dedupes the data based on the primary key. Create these in a new folder reddit_ads.\nI want to have workspace models created and store these in the workspace_marketing schema.\n\nTake this MR as example: [I've referenced to previous source implementation]. Here is the same done for Source A, but now it needs to be done for Reddit Ads. \n\nPlease check the dbt style guide when creating the code: https://handbook.gitlab.com/handbook/enterprise-data/platform/dbt-guide/\n```\n\nSchlüsselelemente, die diesen Prompt effektiv machten:\n\n* **Klare Spezifikationen** für sowohl Quell- als auch Workspace-Modelle\n* **Referenzbeispiel** aus einem vorherigen ähnlichen Merge Request\n* **Style Guide-Referenz** zur Sicherstellung von Codequalität und Konsistenz\n* **Spezifisches Schema-Targeting** für ordnungsgemäße Organisation\n\n## 4. GitLab Duos Prozess\n\nNach dem Einreichen des Prompts machte sich GitLab Duo an die Arbeit. Der gesamte Generierungsprozess dauerte einige Minuten, während dessen GitLab Duo:\n\n1. **Die CSV-Eingabedatei las und analysierte**\n2. **Tabellenstrukturen aus den Metadaten untersuchte**\n3. **Unseren dbt-Style-Guide als Referenz für Coding-Standards nutzte**\n4. **Ähnliche Merge Requests berücksichtigte** für die korrekte Strukturierung\n5. **Quellmodelle für alle 13 Tabellen generierte**\n6. **Workspace-Modelle für alle 13 Tabellen erstellte**\n7. **Unterstützende dbt-Dateien generierte**:\n\n   * `sources.yml`-Konfiguration\n   * `schema.yml`-Dateien mit Tests und Dokumentation\n   * Aktualisierte `dbt_project.yml` mit Schema-Referenzen\n\n## Die Ergebnisse\n\nDie Ausgabe war bemerkenswert:\n\n* **1 modifizierte Datei:** dbt_project.yml (reddit_ads Schema-Konfiguration hinzugefügt)\n* **29 neue Dateien:**\n\n  * **26 dbt-Modelle** (13 Quell- + 13 Workspace-Modelle)\n  * **3 YAML-Dateien**\n* **Fast 900 Zeilen Code** automatisch generiert\n* **Integrierte Daten-Tests,** einschließlich Unique-Constraints auf Primärschlüssel-Spalten\n* **Generische Beschreibungen** für alle Modelle und Spalten\n* **Saubere Deduplizierungs-Logik** in Quellmodellen\n* **Saubere, konsistente Code-Struktur** gemäß dem GitLab dbt-Style-Guide\n\n```text\ntransform/snowflake-dbt/\n├── dbt_project.yml                                                    [MODIFIZIERT]\n└── models/\n    ├── sources/\n    │   └── reddit_ads/\n    │       ├── reddit_ads_ad_group_source.sql                        [NEU]\n    │       ├── reddit_ads_ad_source.sql                              [NEU]\n    │       ├── reddit_ads_business_account_source.sql                [NEU]\n    │       ├── reddit_ads_campaign_source.sql                        [NEU]\n    │       ├── reddit_ads_custom_audience_history_source.sql         [NEU]\n    │       ├── reddit_ads_geolocation_source.sql                     [NEU]\n    │       ├── reddit_ads_interest_source.sql                        [NEU]\n    │       ├── reddit_ads_targeting_community_source.sql             [NEU]\n    │       ├── reddit_ads_targeting_custom_audience_source.sql       [NEU]\n    │       ├── reddit_ads_targeting_device_source.sql                [NEU]\n    │       ├── reddit_ads_targeting_geolocation_source.sql           [NEU]\n    │       ├── reddit_ads_targeting_interest_source.sql              [NEU]\n    │       ├── reddit_ads_time_zone_source.sql                       [NEU]\n    │       ├── schema.yml                                            [NEU]\n    │       └── sources.yml                                           [NEU]\n    └── workspaces/\n        └── workspace_marketing/\n            └── reddit_ads/\n                ├── schema.yml                                        [NEU]\n                ├── wk_reddit_ads_ad.sql                              [NEU]\n                ├── wk_reddit_ads_ad_group.sql                        [NEU]\n                ├── wk_reddit_ads_business_account.sql                [NEU]\n                ├── wk_reddit_ads_campaign.sql                        [NEU]\n                ├── wk_reddit_ads_custom_audience_history.sql         [NEU]\n                ├── wk_reddit_ads_geolocation.sql                     [NEU]\n                ├── wk_reddit_ads_interest.sql                        [NEU]\n                ├── wk_reddit_ads_targeting_community.sql             [NEU]\n                ├── wk_reddit_ads_targeting_custom_audience.sql       [NEU]\n                ├── wk_reddit_ads_targeting_device.sql                [NEU]\n                ├── wk_reddit_ads_targeting_geolocation.sql           [NEU]\n                ├── wk_reddit_ads_targeting_interest.sql              [NEU]\n                └── wk_reddit_ads_time_zone.sql                       [NEU]\n\n```\n\n### Beispiel des generierten Codes\n\nHier ist ein Beispiel für die Qualität des generierten Codes. Für die `time_zone`-Tabelle erstellte GitLab Duo:\n\n**Prep-Ebene Quellmodell**\n\n```sql\nWITH source AS (\n  SELECT *\n  FROM {{ source('reddit_ads','time_zone') }}\n  QUALIFY ROW_NUMBER() OVER (PARTITION BY id ORDER BY _fivetran_synced DESC) = 1\n),\n\nrenamed AS (\n  SELECT\n    id::VARCHAR                               AS time_zone_id,\n    code::VARCHAR                             AS time_zone_code,\n    dst_offset::NUMBER                        AS time_zone_dst_offset,\n    is_dst_active::BOOLEAN                    AS is_time_zone_dst_active,\n    name::VARCHAR                             AS time_zone_name,\n    offset::NUMBER                            AS time_zone_offset,\n    _fivetran_synced::TIMESTAMP               AS fivetran_synced_at\n  FROM source\n)\n\nSELECT * FROM renamed\n```\n\n**Schema.yml**\n\n```yaml\nmodels:\n  - name: reddit_ads_time_zone_source\n    description: Zeitzonendaten aus dem Reddit Ads-System\n    columns:\n      - name: time_zone_id\n        description: Eindeutige Kennung für Zeitzoneneinträge\n        data_tests:\n          - unique\n          - not_null\n      - name: time_zone_code\n        description: Code für die Zeitzone\n      - name: time_zone_dst_offset\n        description: Sommerzeitverschiebung für die Zeitzone\n      - name: is_time_zone_dst_active\n        description: Flag, das angibt, ob Sommerzeit aktiv ist\n      - name: time_zone_name\n        description: Name der Zeitzone\n      - name: time_zone_offset\n        description: Verschiebung für die Zeitzone\n      - name: fivetran_synced_at\n        description: Zeitstempel, wann der Datensatz zuletzt von Fivetran synchronisiert wurde\n\n```\n\n**Source.yml**\n\n```yaml\nsources:\n  - name: reddit_ads\n    database: RAW\n    schema: reddit_ads\n    loaded_at_field: _fivetran_synced\n    loader: fivetran\n    description: Reddit Ads-Daten\n\n    quoting:\n      database: true\n      schema: false\n      identifier: false\n\n    tables:\n      - name: time_zone\n\n```\n\n**Workspace-Modell**\n\n```sql\nWITH source AS (\n  SELECT *\n  FROM {{ ref('reddit_ads_time_zone_source') }}\n)\n\nSELECT * FROM source\n```\n\n## 5. Qualitätsvalidierung\n\nNachdem der Code gut aussah, habe ich ihn zum MR gepusht und die [CI-Test-Pipeline](https://handbook.gitlab.com/handbook/enterprise-data/platform/ci-jobs/#build_changes) ausgeführt, um den Code zu testen und das Ergebnis zu validieren. Ich bat GitLab Duo, eine Validierungsabfrage zu erstellen:\n\n```text\nCreate a test query to test the row counts between the raw layer and the workspace layer. Keep in mind that we do deduplication, so we can compare both using distinct on the primary keys.\n```\n\nDie KI generierte eine umfassende Validierungsabfrage, die:\n\n* Zeilenanzahlen zwischen raw- und workspace-Ebenen verglich\n* Die Deduplizierungs-Logik berücksichtigte\n* Alle 13 Tabellen testete\n* Datenerhaltungsprozentsätze berechnete\n\n\u003Cdetails>\n\u003Csummary>Generierte SQL-Test-Abfrage\u003C/summary>\n\n```sql\n-- Reddit Ads Zeilenanzahl-Validierungstest\n-- Vergleicht eindeutige Zählungen zwischen RAW-Ebene und WORKSPACE_MARKETING-Ebene\n-- Berücksichtigt Deduplizierungs-Logik in Quellmodellen\n\nWITH raw_counts AS (\n  -- Tabellen mit einzelnem Primärschlüssel\n  SELECT 'ad' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.AD\n  \n  UNION ALL\n  \n  SELECT 'business_account' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.BUSINESS_ACCOUNT\n  \n  UNION ALL\n  \n  SELECT 'campaign' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.CAMPAIGN\n  \n  UNION ALL\n  \n  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.CUSTOM_AUDIENCE_HISTORY\n  \n  UNION ALL\n  \n  SELECT 'geolocation' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'interest' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.INTEREST\n  \n  UNION ALL\n  \n  SELECT 'time_zone' AS table_name, COUNT(DISTINCT id) AS raw_count\n  FROM RAW.REDDIT_ADS.TIME_ZONE\n  \n  -- Tabellen mit zusammengesetzten Primärschlüsseln\n  UNION ALL\n  \n  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(account_id, '|', id)) AS raw_count\n  FROM RAW.REDDIT_ADS.AD_GROUP\n  \n  UNION ALL\n  \n  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', community_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_COMMUNITY\n  \n  UNION ALL\n  \n  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', custom_audience_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_CUSTOM_AUDIENCE\n  \n  UNION ALL\n  \n  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT _fivetran_id) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_DEVICE\n  \n  UNION ALL\n  \n  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', geolocation_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(ad_group_id, '|', interest_id)) AS raw_count\n  FROM RAW.REDDIT_ADS.TARGETING_INTEREST\n),\n\nworkspace_counts AS (\n  -- Workspace-Ebene zählt unter Verwendung von Primärschlüsseln aus schema.yml\n  SELECT 'ad' AS table_name, COUNT(DISTINCT ad_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD\n  \n  UNION ALL\n  \n  SELECT 'business_account' AS table_name, COUNT(DISTINCT business_account_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_BUSINESS_ACCOUNT\n  \n  UNION ALL\n  \n  SELECT 'campaign' AS table_name, COUNT(DISTINCT campaign_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CAMPAIGN\n  \n  UNION ALL\n  \n  SELECT 'custom_audience_history' AS table_name, COUNT(DISTINCT custom_audience_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_CUSTOM_AUDIENCE_HISTORY\n  \n  UNION ALL\n  \n  SELECT 'geolocation' AS table_name, COUNT(DISTINCT geolocation_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'interest' AS table_name, COUNT(DISTINCT interest_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_INTEREST\n  \n  UNION ALL\n  \n  SELECT 'time_zone' AS table_name, COUNT(DISTINCT time_zone_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TIME_ZONE\n  \n  -- Tabellen mit zusammengesetzten Primärschlüsseln\n  UNION ALL\n  \n  SELECT 'ad_group' AS table_name, COUNT(DISTINCT CONCAT(ad_group_account_id, '|', ad_group_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_AD_GROUP\n  \n  UNION ALL\n  \n  SELECT 'targeting_community' AS table_name, COUNT(DISTINCT CONCAT(targeting_community_ad_group_id, '|', targeting_community_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_COMMUNITY\n  \n  UNION ALL\n  \n  SELECT 'targeting_custom_audience' AS table_name, COUNT(DISTINCT CONCAT(targeting_custom_audience_ad_group_id, '|', targeting_custom_audience_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_CUSTOM_AUDIENCE\n  \n  UNION ALL\n  \n  SELECT 'targeting_device' AS table_name, COUNT(DISTINCT targeting_device_fivetran_id) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_DEVICE\n  \n  UNION ALL\n  \n  SELECT 'targeting_geolocation' AS table_name, COUNT(DISTINCT CONCAT(targeting_geolocation_ad_group_id, '|', targeting_geolocation_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_GEOLOCATION\n  \n  UNION ALL\n  \n  SELECT 'targeting_interest' AS table_name, COUNT(DISTINCT CONCAT(targeting_interest_ad_group_id, '|', targeting_interest_id)) AS workspace_count\n  FROM REDDIT_DBT_MODEL_GENERATION_PROD.WORKSPACE_MARKETING.WK_REDDIT_ADS_TARGETING_INTEREST\n)\n\n-- Abschließender Vergleich mit Validierungsergebnissen\nSELECT \n  r.table_name,\n  r.raw_count,\n  w.workspace_count,\n  r.raw_count - w.workspace_count AS count_difference,\n  CASE \n    WHEN r.raw_count = w.workspace_count THEN '✅ BESTANDEN'\n    WHEN r.raw_count > w.workspace_count THEN '⚠️ RAW > WORKSPACE (Erwartet durch Deduplizierung)'\n    ELSE '❌ FEHLGESCHLAGEN - WORKSPACE > RAW (Unerwartet)'\n  END AS validation_status,\n  ROUND((w.workspace_count::FLOAT / r.raw_count::FLOAT) * 100, 2) AS data_retention_percentage\nFROM raw_counts r\nJOIN workspace_counts w ON r.table_name = w.table_name\nORDER BY r.table_name;\n```\n\n\u003C/details>\n\n![Tabelle mit Abfrageergebnissen](https://res.cloudinary.com/about-gitlab-com/image/upload/v1758030995/guicjhzwvrz3czwjs3xo.png)\n\nDie Ausführung dieser Abfrage zeigte:\n\n* **Null Unterschiede** in der Zeilenanzahl nach Deduplizierung\n* **100% Datenerhaltung** über alle Tabellen hinweg\n* **Alle Tests erfolgreich bestanden**\n\n## Das Fazit: Massive Zeitersparnis\n\n* **Traditioneller Ansatz:** 6-8 Stunden manuelles Programmieren, Testen und Debugging\n* **GitLab Duo-Ansatz:** 6-8 Minuten Generierung + Überprüfungszeit\n\nDies bedeutet eine 60-fache Verbesserung der Entwicklereffizienz (von 6-8 Stunden auf 6-8 Minuten) bei gleichbleibend hoher Codequalität.\n\n## Best Practices für den Erfolg\n\nBasierend auf dieser Erfahrung sind hier die wichtigsten Empfehlungen:\n\n### Bereite deine Metadaten vor\n\n* Extrahiere vollständige Tabellenstrukturen einschließlich Datentypen und Einschränkungen\n* Identifiziere Primärschlüssel und Beziehungen im Voraus\n* Exportiere saubere, gut formatierte CSV-Eingabedateien\n\n**Hinweis:** Durch die Verbindung von GitLab Duo über MCP mit deinen (Meta-)Daten könntest du diesen manuellen Schritt ausschließen.\n\n### Biete klaren Kontext\n\n* Referenziere nach Möglichkeit bestehende Beispiel-MRs\n* Spezifiziere deine Codierungsstandards und Style Guides\n* Sei explizit bei Ordnerstruktur und Namenskonventionen\n\n### Validiere gründlich\n\n* Erstelle immer Validierungsabfragen für die Datenintegrität\n* Teste lokal vor dem Mergen\n* Führe deine CI/CD-Pipeline aus, um Probleme zu erkennen\n\n### Nutze KI für Folgeaufgaben\n\n* Generiere Testabfragen automatisch\n* Erstelle Dokumentationsvorlagen\n* Baue Validierungsskripte\n\n## Was kommt als Nächstes\n\nDiese Demonstration zeigt, wie KI-gestützte Entwicklungstools wie GitLab Duo auch Data-Engineering-Workflows transformieren. Die Fähigkeit, Hunderte von Zeilen produktionsreifem Code in Minuten zu generieren – komplett mit Tests, Dokumentation und ordnungsgemäßer Struktur – stellt einen fundamentalen Wandel dar, wie wir an repetitive Entwicklungsaufgaben herangehen.\n\nIndem wir KI nutzen, um die repetitiven Aspekte der dbt-Modellerstellung zu bewältigen, können sich Dateningenieure auf Aktivitäten mit höherem Wert konzentrieren, wie Datenmodellierungsstrategie, Performance-Optimierung und Implementierung von Geschäftslogik.\n\n**Bereit, es selbst auszuprobieren?** Beginne mit einem kleinen Datensatz, bereite deine Metadaten sorgfältig vor und sieh zu, wie GitLab Duo Stunden an Arbeit in Minuten automatisierter Generierung verwandelt.\n\n> [Teste GitLab Duo Agent Platform noch heute.](https://about.gitlab.com/de-de/gitlab-duo-agent-platform/)\n\n## Weiterlesen\n\n* [GitLab 18.3: KI-Orchestrierung im Software Engineering erweitern](https://about.gitlab.com/de-de/blog/gitlab-13-expanding-ai-orchestration-in-software-engineering/)\n* [GitLab Duo Agent Platform Public Beta: Next-Gen KI-Orchestrierung und mehr](https://about.gitlab.com/de-de/blog/gitlab-duo-agent-platform-public-beta/)\n","yml",{},"/de-de/blog/how-gitlab-duo-agent-platform-transforms-dataops",{"title":30,"description":31},"Wie GitLab Duo Agent Platform DataOps transformiert","Erfahre, wie du manuelle Programmierung in voll automatisierte Generierung verwandelst – am Beispiel der dbt-Modellerstellung.","de-de/blog/how-gitlab-duo-agent-platform-transforms-dataops",[22,23,24],"mPzWVZ1n2k_NXaPO3jPu6x9WYndL8CsOZLS26x84N1I",{"data":36},{"logo":37,"freeTrial":42,"sales":47,"login":52,"items":57,"search":366,"minimal":401,"duo":419,"pricingDeployment":429},{"config":38},{"href":39,"dataGaName":40,"dataGaLocation":41},"/de-de/","gitlab logo","header",{"text":43,"config":44},"Kostenlose Testversion anfordern",{"href":45,"dataGaName":46,"dataGaLocation":41},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":48,"config":49},"Vertrieb kontaktieren",{"href":50,"dataGaName":51,"dataGaLocation":41},"/de-de/sales/","sales",{"text":53,"config":54},"Anmelden",{"href":55,"dataGaName":56,"dataGaLocation":41},"https://gitlab.com/users/sign_in/","sign in",[58,85,181,186,287,347],{"text":59,"config":60,"cards":62},"Plattform",{"dataNavLevelOne":61},"platform",[63,69,77],{"title":59,"description":64,"link":65},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":66,"config":67},"Erkunde unsere Plattform",{"href":68,"dataGaName":61,"dataGaLocation":41},"/de-de/platform/",{"title":70,"description":71,"link":72},"GitLab Duo Agent Platform","Agentische KI für den gesamten Softwareentwicklungszyklus",{"text":73,"config":74},"Lerne GitLab Duo kennen",{"href":75,"dataGaName":76,"dataGaLocation":41},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":78,"description":79,"link":80},"Gründe, die für GitLab sprechen","Erfahre, warum Unternehmen auf GitLab setzen",{"text":81,"config":82},"Mehr erfahren",{"href":83,"dataGaName":84,"dataGaLocation":41},"/de-de/why-gitlab/","why gitlab",{"text":86,"left":12,"config":87,"link":89,"lists":93,"footer":163},"Produkt",{"dataNavLevelOne":88},"solutions",{"text":90,"config":91},"Alle Lösungen anzeigen",{"href":92,"dataGaName":88,"dataGaLocation":41},"/de-de/solutions/",[94,119,141],{"title":95,"description":96,"link":97,"items":102},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":98},{"icon":99,"href":100,"dataGaName":101,"dataGaLocation":41},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[103,107,110,115],{"text":104,"config":105},"CI/CD",{"href":106,"dataGaLocation":41,"dataGaName":104},"/de-de/solutions/continuous-integration/",{"text":70,"config":108},{"href":75,"dataGaLocation":41,"dataGaName":109},"gitlab duo agent platform - product menu",{"text":111,"config":112},"Quellcodeverwaltung",{"href":113,"dataGaLocation":41,"dataGaName":114},"/de-de/solutions/source-code-management/","Source Code Management",{"text":116,"config":117},"Automatisierte Softwarebereitstellung",{"href":100,"dataGaLocation":41,"dataGaName":118},"Automated software delivery",{"title":120,"description":121,"link":122,"items":127},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":123},{"href":124,"dataGaName":125,"dataGaLocation":41,"icon":126},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[128,132,137],{"text":129,"config":130},"Application Security Testing",{"href":124,"dataGaName":131,"dataGaLocation":41},"Application security testing",{"text":133,"config":134},"Schutz der Software-Lieferkette",{"href":135,"dataGaLocation":41,"dataGaName":136},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":138,"config":139},"Software Compliance",{"href":140,"dataGaName":138,"dataGaLocation":41},"/de-de/solutions/software-compliance/",{"title":142,"link":143,"items":148},"Bewertung",{"config":144},{"icon":145,"href":146,"dataGaName":147,"dataGaLocation":41},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[149,153,158],{"text":150,"config":151},"Sichtbarkeit und Bewertung",{"href":146,"dataGaLocation":41,"dataGaName":152},"Visibility and Measurement",{"text":154,"config":155},"Wertstrommanagement",{"href":156,"dataGaLocation":41,"dataGaName":157},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":159,"config":160},"Analysen und Einblicke",{"href":161,"dataGaLocation":41,"dataGaName":162},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":164,"items":165},"GitLab für",[166,171,176],{"text":167,"config":168},"Enterprise",{"href":169,"dataGaLocation":41,"dataGaName":170},"/de-de/enterprise/","enterprise",{"text":172,"config":173},"Kleinunternehmen",{"href":174,"dataGaLocation":41,"dataGaName":175},"/de-de/small-business/","small business",{"text":177,"config":178},"den öffentlichen Sektor",{"href":179,"dataGaLocation":41,"dataGaName":180},"/de-de/solutions/public-sector/","public sector",{"text":182,"config":183},"Preise",{"href":184,"dataGaName":185,"dataGaLocation":41,"dataNavLevelOne":185},"/de-de/pricing/","pricing",{"text":187,"config":188,"link":190,"lists":194,"feature":274},"Ressourcen",{"dataNavLevelOne":189},"resources",{"text":191,"config":192},"Alle Ressourcen anzeigen",{"href":193,"dataGaName":189,"dataGaLocation":41},"/de-de/resources/",[195,228,246],{"title":196,"items":197},"Erste Schritte",[198,203,208,213,218,223],{"text":199,"config":200},"Installieren",{"href":201,"dataGaName":202,"dataGaLocation":41},"/de-de/install/","install",{"text":204,"config":205},"Kurzanleitungen",{"href":206,"dataGaName":207,"dataGaLocation":41},"/de-de/get-started/","quick setup checklists",{"text":209,"config":210},"Lernen",{"href":211,"dataGaLocation":41,"dataGaName":212},"https://university.gitlab.com/","learn",{"text":214,"config":215},"Produktdokumentation",{"href":216,"dataGaName":217,"dataGaLocation":41},"https://docs.gitlab.com/","product documentation",{"text":219,"config":220},"Best-Practice-Videos",{"href":221,"dataGaName":222,"dataGaLocation":41},"/de-de/getting-started-videos/","best practice videos",{"text":224,"config":225},"Integrationen",{"href":226,"dataGaName":227,"dataGaLocation":41},"/de-de/integrations/","integrations",{"title":229,"items":230},"Entdecken",[231,236,241],{"text":232,"config":233},"Kundenerfolge",{"href":234,"dataGaName":235,"dataGaLocation":41},"/de-de/customers/","customer success stories",{"text":237,"config":238},"Blog",{"href":239,"dataGaName":240,"dataGaLocation":41},"/de-de/blog/","blog",{"text":242,"config":243},"Remote",{"href":244,"dataGaName":245,"dataGaLocation":41},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":247,"items":248},"Vernetzen",[249,254,259,264,269],{"text":250,"config":251},"GitLab-Services",{"href":252,"dataGaName":253,"dataGaLocation":41},"/de-de/services/","services",{"text":255,"config":256},"Community",{"href":257,"dataGaName":258,"dataGaLocation":41},"/community/","community",{"text":260,"config":261},"Forum",{"href":262,"dataGaName":263,"dataGaLocation":41},"https://forum.gitlab.com/","forum",{"text":265,"config":266},"Veranstaltungen",{"href":267,"dataGaName":268,"dataGaLocation":41},"/events/","events",{"text":270,"config":271},"Partner",{"href":272,"dataGaName":273,"dataGaLocation":41},"/de-de/partners/","partners",{"backgroundColor":275,"textColor":276,"text":277,"image":278,"link":282},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":279,"config":280},"the source promo card",{"src":281},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":283,"config":284},"Lies die News",{"href":285,"dataGaName":286,"dataGaLocation":41},"/de-de/the-source/","the source",{"text":288,"config":289,"lists":291},"Unternehmen",{"dataNavLevelOne":290},"company",[292],{"items":293},[294,299,305,307,312,317,322,327,332,337,342],{"text":295,"config":296},"Über",{"href":297,"dataGaName":298,"dataGaLocation":41},"/de-de/company/","about",{"text":300,"config":301,"footerGa":304},"Karriere",{"href":302,"dataGaName":303,"dataGaLocation":41},"/jobs/","jobs",{"dataGaName":303},{"text":265,"config":306},{"href":267,"dataGaName":268,"dataGaLocation":41},{"text":308,"config":309},"Geschäftsführung",{"href":310,"dataGaName":311,"dataGaLocation":41},"/company/team/e-group/","leadership",{"text":313,"config":314},"Team",{"href":315,"dataGaName":316,"dataGaLocation":41},"/company/team/","team",{"text":318,"config":319},"Handbuch",{"href":320,"dataGaName":321,"dataGaLocation":41},"https://handbook.gitlab.com/","handbook",{"text":323,"config":324},"Investor Relations",{"href":325,"dataGaName":326,"dataGaLocation":41},"https://ir.gitlab.com/","investor relations",{"text":328,"config":329},"Trust Center",{"href":330,"dataGaName":331,"dataGaLocation":41},"/de-de/security/","trust center",{"text":333,"config":334},"AI Transparency Center",{"href":335,"dataGaName":336,"dataGaLocation":41},"/de-de/ai-transparency-center/","ai transparency center",{"text":338,"config":339},"Newsletter",{"href":340,"dataGaName":341,"dataGaLocation":41},"/company/contact/#contact-forms","newsletter",{"text":343,"config":344},"Presse",{"href":345,"dataGaName":346,"dataGaLocation":41},"/press/","press",{"text":348,"config":349,"lists":350},"Kontakt",{"dataNavLevelOne":290},[351],{"items":352},[353,356,361],{"text":48,"config":354},{"href":50,"dataGaName":355,"dataGaLocation":41},"talk to sales",{"text":357,"config":358},"Support-Portal",{"href":359,"dataGaName":360,"dataGaLocation":41},"https://support.gitlab.com","support portal",{"text":362,"config":363},"Kundenportal",{"href":364,"dataGaName":365,"dataGaLocation":41},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":367,"login":368,"suggestions":375},"Schließen",{"text":369,"link":370},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":371,"config":372},"gitlab.com",{"href":55,"dataGaName":373,"dataGaLocation":374},"search login","search",{"text":376,"default":377},"Vorschläge",[378,380,385,387,392,397],{"text":70,"config":379},{"href":75,"dataGaName":70,"dataGaLocation":374},{"text":381,"config":382},"Code Suggestions (KI)",{"href":383,"dataGaName":384,"dataGaLocation":374},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":104,"config":386},{"href":106,"dataGaName":104,"dataGaLocation":374},{"text":388,"config":389},"GitLab auf AWS",{"href":390,"dataGaName":391,"dataGaLocation":374},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":393,"config":394},"GitLab auf Google Cloud",{"href":395,"dataGaName":396,"dataGaLocation":374},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":398,"config":399},"Warum GitLab?",{"href":83,"dataGaName":400,"dataGaLocation":374},"Why GitLab?",{"freeTrial":402,"mobileIcon":407,"desktopIcon":412,"secondaryButton":415},{"text":403,"config":404},"Kostenlos testen",{"href":405,"dataGaName":46,"dataGaLocation":406},"https://gitlab.com/-/trials/new/","nav",{"altText":408,"config":409},"GitLab-Symbol",{"src":410,"dataGaName":411,"dataGaLocation":406},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":408,"config":413},{"src":414,"dataGaName":411,"dataGaLocation":406},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":196,"config":416},{"href":417,"dataGaName":418,"dataGaLocation":406},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/compare/gitlab-vs-github/","get started",{"freeTrial":420,"mobileIcon":425,"desktopIcon":427},{"text":421,"config":422},"Erfahre mehr über GitLab Duo",{"href":423,"dataGaName":424,"dataGaLocation":406},"/de-de/gitlab-duo/","gitlab duo",{"altText":408,"config":426},{"src":410,"dataGaName":411,"dataGaLocation":406},{"altText":408,"config":428},{"src":414,"dataGaName":411,"dataGaLocation":406},{"freeTrial":430,"mobileIcon":435,"desktopIcon":437},{"text":431,"config":432},"Zurück zur Preisübersicht",{"href":184,"dataGaName":433,"dataGaLocation":406,"icon":434},"back to pricing","GoBack",{"altText":408,"config":436},{"src":410,"dataGaName":411,"dataGaLocation":406},{"altText":408,"config":438},{"src":414,"dataGaName":411,"dataGaLocation":406},{"title":440,"button":441,"config":446},"Sieh dir an, wie agentische KI die Softwarebereitstellung transformiert",{"text":442,"config":443},"GitLab Transcend jetzt ansehen",{"href":444,"dataGaName":445,"dataGaLocation":41},"/de-de/events/transcend/virtual/","transcend event",{"layout":447,"icon":448},"release","AiStar",{"data":450},{"text":451,"source":452,"edit":458,"contribute":463,"config":468,"items":473,"minimal":646},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":453,"config":454},"Quelltext der Seite anzeigen",{"href":455,"dataGaName":456,"dataGaLocation":457},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":459,"config":460},"Diese Seite bearbeiten",{"href":461,"dataGaName":462,"dataGaLocation":457},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":464,"config":465},"Beteilige dich",{"href":466,"dataGaName":467,"dataGaLocation":457},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":469,"facebook":470,"youtube":471,"linkedin":472},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[474,497,552,579,613],{"title":59,"links":475,"subMenu":480},[476],{"text":477,"config":478},"DevSecOps-Plattform",{"href":68,"dataGaName":479,"dataGaLocation":457},"devsecops platform",[481],{"title":182,"links":482},[483,487,492],{"text":484,"config":485},"Tarife anzeigen",{"href":184,"dataGaName":486,"dataGaLocation":457},"view plans",{"text":488,"config":489},"Vorteile von Premium",{"href":490,"dataGaName":491,"dataGaLocation":457},"/de-de/pricing/premium/","why premium",{"text":493,"config":494},"Vorteile von Ultimate",{"href":495,"dataGaName":496,"dataGaLocation":457},"/de-de/pricing/ultimate/","why ultimate",{"title":498,"links":499},"Lösungen",[500,505,508,510,515,520,524,527,530,535,537,539,542,547],{"text":501,"config":502},"Digitale Transformation",{"href":503,"dataGaName":504,"dataGaLocation":457},"/de-de/topics/digital-transformation/","digital transformation",{"text":506,"config":507},"Sicherheit und Compliance",{"href":124,"dataGaName":131,"dataGaLocation":457},{"text":116,"config":509},{"href":100,"dataGaName":101,"dataGaLocation":457},{"text":511,"config":512},"Agile Entwicklung",{"href":513,"dataGaName":514,"dataGaLocation":457},"/de-de/solutions/agile-delivery/","agile delivery",{"text":516,"config":517},"Cloud-Transformation",{"href":518,"dataGaName":519,"dataGaLocation":457},"/de-de/topics/cloud-native/","cloud transformation",{"text":521,"config":522},"SCM",{"href":113,"dataGaName":523,"dataGaLocation":457},"source code management",{"text":104,"config":525},{"href":106,"dataGaName":526,"dataGaLocation":457},"continuous integration & delivery",{"text":154,"config":528},{"href":156,"dataGaName":529,"dataGaLocation":457},"value stream management",{"text":531,"config":532},"GitOps",{"href":533,"dataGaName":534,"dataGaLocation":457},"/de-de/solutions/gitops/","gitops",{"text":167,"config":536},{"href":169,"dataGaName":170,"dataGaLocation":457},{"text":172,"config":538},{"href":174,"dataGaName":175,"dataGaLocation":457},{"text":540,"config":541},"Öffentlicher Sektor",{"href":179,"dataGaName":180,"dataGaLocation":457},{"text":543,"config":544},"Bildungswesen",{"href":545,"dataGaName":546,"dataGaLocation":457},"/de-de/solutions/education/","education",{"text":548,"config":549},"Finanzdienstleistungen",{"href":550,"dataGaName":551,"dataGaLocation":457},"/de-de/solutions/finance/","financial services",{"title":187,"links":553},[554,556,558,560,563,565,567,569,571,573,575,577],{"text":199,"config":555},{"href":201,"dataGaName":202,"dataGaLocation":457},{"text":204,"config":557},{"href":206,"dataGaName":207,"dataGaLocation":457},{"text":209,"config":559},{"href":211,"dataGaName":212,"dataGaLocation":457},{"text":214,"config":561},{"href":216,"dataGaName":562,"dataGaLocation":457},"docs",{"text":237,"config":564},{"href":239,"dataGaName":240,"dataGaLocation":457},{"text":232,"config":566},{"href":234,"dataGaName":235,"dataGaLocation":457},{"text":242,"config":568},{"href":244,"dataGaName":245,"dataGaLocation":457},{"text":250,"config":570},{"href":252,"dataGaName":253,"dataGaLocation":457},{"text":255,"config":572},{"href":257,"dataGaName":258,"dataGaLocation":457},{"text":260,"config":574},{"href":262,"dataGaName":263,"dataGaLocation":457},{"text":265,"config":576},{"href":267,"dataGaName":268,"dataGaLocation":457},{"text":270,"config":578},{"href":272,"dataGaName":273,"dataGaLocation":457},{"title":288,"links":580},[581,583,585,587,589,591,593,597,602,604,606,608],{"text":295,"config":582},{"href":297,"dataGaName":290,"dataGaLocation":457},{"text":300,"config":584},{"href":302,"dataGaName":303,"dataGaLocation":457},{"text":308,"config":586},{"href":310,"dataGaName":311,"dataGaLocation":457},{"text":313,"config":588},{"href":315,"dataGaName":316,"dataGaLocation":457},{"text":318,"config":590},{"href":320,"dataGaName":321,"dataGaLocation":457},{"text":323,"config":592},{"href":325,"dataGaName":326,"dataGaLocation":457},{"text":594,"config":595},"Sustainability",{"href":596,"dataGaName":594,"dataGaLocation":457},"/sustainability/",{"text":598,"config":599},"Vielfalt, Inklusion und Zugehörigkeit",{"href":600,"dataGaName":601,"dataGaLocation":457},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":328,"config":603},{"href":330,"dataGaName":331,"dataGaLocation":457},{"text":338,"config":605},{"href":340,"dataGaName":341,"dataGaLocation":457},{"text":343,"config":607},{"href":345,"dataGaName":346,"dataGaLocation":457},{"text":609,"config":610},"Transparenzerklärung zu moderner Sklaverei",{"href":611,"dataGaName":612,"dataGaLocation":457},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":614,"links":615},"Nimm Kontakt auf",[616,619,624,626,631,636,641],{"text":617,"config":618},"Sprich mit einem Experten/einer Expertin",{"href":50,"dataGaName":51,"dataGaLocation":457},{"text":620,"config":621},"Support",{"href":622,"dataGaName":623,"dataGaLocation":457},"/support/","get help",{"text":362,"config":625},{"href":364,"dataGaName":365,"dataGaLocation":457},{"text":627,"config":628},"Status",{"href":629,"dataGaName":630,"dataGaLocation":457},"https://status.gitlab.com/","status",{"text":632,"config":633},"Nutzungsbedingungen",{"href":634,"dataGaName":635,"dataGaLocation":457},"/terms/","terms of use",{"text":637,"config":638},"Datenschutzerklärung",{"href":639,"dataGaName":640,"dataGaLocation":457},"/de-de/privacy/","privacy statement",{"text":642,"config":643},"Cookie-Einstellungen",{"dataGaName":644,"dataGaLocation":457,"id":645,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"items":647},[648,650,652],{"text":632,"config":649},{"href":634,"dataGaName":635,"dataGaLocation":457},{"text":637,"config":651},{"href":639,"dataGaName":640,"dataGaLocation":457},{"text":642,"config":653},{"dataGaName":644,"dataGaLocation":457,"id":645,"isOneTrustButton":12},[655],{"id":656,"title":657,"body":8,"config":658,"content":661,"description":8,"extension":26,"meta":664,"navigation":12,"path":665,"seo":666,"stem":667,"__hash__":668},"blogAuthors/en-us/blog/authors/dennis-van-rooijen.yml","Dennis Van Rooijen",{"template":659,"gitlabHandle":660},"BlogAuthor","dvanrooijen2",{"name":18,"config":662},{"headshot":663},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758031391/muvwg1sxetzekmuhqdql.png",{},"/en-us/blog/authors/dennis-van-rooijen",{},"en-us/blog/authors/dennis-van-rooijen","-VrBQM0MkpSMVi6cd_BwGMYKVgzryOCw3IxXukVkNGg",[670,684,697],{"content":671,"config":682},{"title":672,"description":673,"heroImage":674,"authors":675,"date":677,"body":678,"category":9,"tags":679},"KI erkennt Schwachstellen – aber wer verantwortet das Risiko?","KI-gestützte Schwachstellenerkennung entwickelt sich schnell, doch Durchsetzung, Governance und Supply-Chain-Sicherheit erfordern eine integrierte Plattform.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1772195014/ooezwusxjl1f7ijfmbvj.png",[676],"Omer Azaria","2026-02-27","Anthropic hat kürzlich Claude Code Security angekündigt – ein KI-System, das Schwachstellen erkennt und Korrekturen vorschlägt. Die Reaktion der Märkte folgte prompt: Die Aktien von Cybersecurity-Unternehmen gaben nach, als Investoren begannen, die Zukunft klassischer AppSec-Tools in Frage zu stellen. Die Frage, die viele beschäftigt: Wenn KI Code schreiben und absichern kann, wird Anwendungssicherheit dann überflüssig?\n\nWenn Sicherheit nur das Scannen von Code bedeutete, wäre die Antwort vielleicht ja. Aber Enterprise-Sicherheit war noch nie auf Erkennung allein ausgerichtet.\n\nUnternehmen fragen nicht, ob KI Schwachstellen finden kann. Sie stellen drei weitaus schwieriger zu beantwortende Fragen:\n\n* Ist das, was wir ausliefern wollen, sicher?\n* Hat sich unsere Risikolage verändert, während sich Umgebungen, Abhängigkeiten, Drittanbieter-Services, Tools und Infrastruktur kontinuierlich wandeln?\n* Wie lässt sich eine Codebasis steuern, die zunehmend von KI und Drittquellen zusammengestellt wird – für die wir aber weiterhin verantwortlich sind?\n\nDiese Fragen erfordern eine Plattformantwort: Erkennung macht Risiken sichtbar, aber Governance bestimmt, was als nächstes passiert.\n\n[GitLab](https://about.gitlab.com/de-de/) ist die Orchestrierungsschicht, die den Software-Lebenszyklus durchgängig steuert und Teams die Durchsetzung, Transparenz und Nachvollziehbarkeit gibt, die sie brauchen, um mit der Geschwindigkeit KI-gestützter Entwicklung Schritt zu halten.\n\n## KI vertrauen erfordert Governance\n\nKI-Systeme werden zunehmend besser darin, Schwachstellen zu identifizieren und Korrekturen vorzuschlagen. Das ist ein bedeutender Fortschritt – aber Analyse ist keine Verantwortung.\n\nKI kann Unternehmensrichtlinien nicht eigenständig durchsetzen oder akzeptables Risiko definieren. Menschen müssen die Grenzen, Richtlinien und Leitplanken festlegen, innerhalb derer Agenten operieren: Funktionstrennung sicherstellen, Audit-Trails gewährleisten und konsistente Kontrollen über Tausende von Repositories und Teams hinweg aufrechterhalten. Vertrauen in Agenten entsteht nicht durch Autonomie allein, sondern durch klar definierte Governance durch Menschen.\n\nIn einer [agentischen Welt](https://about.gitlab.com/de-de/topics/agentic-ai/), in der Software zunehmend von autonomen Systemen geschrieben und verändert wird, wird Governance wichtiger, nicht unwichtiger. Je mehr Autonomie Unternehmen KI gewähren, desto stärker muss die Governance sein.\n\nGovernance ist keine Bremse. Sie ist das Fundament, das KI-gestützte Entwicklung im Unternehmensmaßstab vertrauenswürdig macht.\n\n## LLMs sehen Code, Plattformen sehen Kontext\n\nEin Large Language Model ([LLM](https://about.gitlab.com/de-de/blog/what-is-a-large-language-model-llm/)) bewertet Code isoliert. Eine Enterprise Application Security-Plattform versteht Kontext. Dieser Unterschied ist entscheidend, weil Risikoentscheidungen kontextabhängig sind:\n\n* Wer hat die Änderung vorgenommen?\n* Wie kritisch ist die Anwendung für das Unternehmen?\n* Wie interagiert sie mit Infrastruktur und Abhängigkeiten?\n* Liegt die Schwachstelle in Code, der tatsächlich in der Produktion erreichbar ist, oder in einer Abhängigkeit, die nie ausgeführt wird?\n* Ist sie in der Produktion tatsächlich ausnutzbar – angesichts der Art, wie die Anwendung läuft, ihrer APIs und der sie umgebenden Umgebung?\n\nSicherheitsentscheidungen hängen von diesem Kontext ab. Fehlt er, produziert Erkennung laute Alarme, die die Entwicklung verlangsamen, anstatt Risiken zu reduzieren. Mit ihm können Unternehmen schnell priorisieren und Risiken gezielt managen. Da sich Kontext mit jeder Softwareänderung weiterentwickelt, kann Governance keine einmalige Entscheidung sein.\n\n## Statische Scans halten mit dynamischem Risiko nicht Schritt\n\nSoftware-Risiko ist dynamisch. Abhängigkeiten ändern sich, Umgebungen entwickeln sich, und Systeme interagieren auf Weisen, die keine einzelne Analyse vollständig vorhersehen kann. Ein sauberer Scan zu einem Zeitpunkt garantiert keine Sicherheit beim Release.\n\nEnterprise-Sicherheit setzt auf kontinuierliche Absicherung: Kontrollen, die direkt in Entwicklungs-Workflows eingebettet sind und Risiken bewerten, während Software entwickelt, getestet und bereitgestellt wird.\n\nErkennung liefert Erkenntnisse. Governance schafft Vertrauen. Kontinuierliche Governance ermöglicht es Unternehmen, im Unternehmensmaßstab sicher auszuliefern.\n\n## Die agentische Zukunft steuern\n\nKI verändert, wie Software entsteht. Die Frage lautet nicht mehr, ob Teams KI einsetzen werden, sondern wie sicher sie dabei skalieren können.\n\nSoftware wird heute ebenso zusammengestellt wie geschrieben – aus KI-generiertem Code, Open-Source-Bibliotheken und Drittanbieter-Abhängigkeiten, die sich über Tausende von Projekten erstrecken. Zu steuern, was über all diese Quellen hinweg ausgeliefert wird, ist der anspruchsvollste Teil der Anwendungssicherheit – und jener, für den kein entwicklerseitiges Tool ausgelegt ist.\n\nAls intelligente Orchestrierungsplattform ist GitLab darauf ausgerichtet, dieses Problem zu lösen. GitLab Ultimate bettet Governance, Richtliniendurchsetzung, Security Scanning und Nachvollziehbarkeit direkt in die Workflows ein, in denen Software geplant, entwickelt und ausgeliefert wird – damit Security-Teams im Tempo von KI steuern können.\n\nKI wird die Entwicklung erheblich beschleunigen. Den größten Nutzen werden nicht die Unternehmen ziehen, die die leistungsfähigsten KI-Assistenten einsetzen, sondern jene, die Vertrauen durch starke Governance aufbauen.\n\n> Wie GitLab Unternehmen dabei hilft, [KI-generierten Code zu steuern und sicher auszuliefern](https://about.gitlab.com/solutions/software-compliance/?utm_medium=blog&utm_campaign=eg_global_x_x_security_en_): [Jetzt mit unserem Team sprechen.](https://about.gitlab.com/sales/?utm_medium=blog&utm_campaign=eg_global_x_x_security_en_)\n\n## Weiterführende Beiträge\n- [KI und DevOps für verbesserte Sicherheit integrieren](https://about.gitlab.com/de-de/topics/devops/ai-enhanced-security/)\n\n- [Das GitLab KI-Sicherheits-Framework für Security-Verantwortliche](https://about.gitlab.com/de-de/blog/the-gitlab-ai-security-framework-for-security-leaders/)\n\n- [KI-Sicherheit in GitLab mit Composite Identities verbessern](https://about.gitlab.com/de-de/blog/improve-ai-security-in-gitlab-with-composite-identities/)\n\n---\n\n## Für deutsche Unternehmen: Governance als regulatorische Anforderung\n\nDie in diesem Beitrag beschriebenen Governance-Prinzipien adressieren Anforderungen, die regulierte Unternehmen in Deutschland unmittelbar betreffen könnten.\n\nDie NIS-2-Richtlinie (umgesetzt durch das NIS2UmsuCG) verpflichtet betroffene Unternehmen zu Maßnahmen im Bereich Risikoanalyse und Informationssicherheit (Artikel 21 Abs. 2 lit. a), Incident-Handling (Artikel 21 Abs. 2 lit. b) sowie zur Sicherheit in der Software-Lieferkette (Artikel 21 Abs. 2 lit. d) und bei der sicheren Entwicklung (Artikel 21 Abs. 2 lit. e). Die hier beschriebene Unterscheidung zwischen Erkennung und Governance spiegelt genau diese regulatorische Logik wider: Schwachstellen zu finden reicht nicht – entscheidend ist, wer die Reaktion darauf steuert, dokumentiert und verantwortet.\n\nISO 27001 adressiert ähnliche Anforderungen: Zugriffskontrolle (A.5.15–18), Logging und Monitoring (A.8.15–16), Schwachstellenmanagement (A.8.8) sowie Änderungsmanagement (A.8.32) setzen voraus, dass Governance-Prozesse in Entwicklungs-Workflows eingebettet sind – nicht nachgelagert.\n\nFür Unternehmen in regulierten Branchen wie Finanzdienstleistungen (BaFin BAIT §6–7), Automotive (TISAX) oder kritischer Infrastruktur (BSI KRITIS) könnten diese Anforderungen besonders relevant sein. Für konkrete Compliance-Anforderungen empfiehlt sich Rücksprache mit entsprechender Fachberatung.",[680,681],"AI/ML","security",{"featured":12,"template":13,"slug":683},"ai-can-detect-vulnerabilities-but-who-governs-risk",{"content":685,"config":694},{"title":686,"description":687,"authors":688,"heroImage":690,"date":691,"body":692,"category":9,"tags":693},"Wie GitLab Duo Agent Platform und Claude Softwareentwicklung beschleunigen","Wie externe KI-Modelle wie Claude von Anthropic Code-Generierung, Code-Reviews und Pipeline-Erstellung direkt in GitLab übernehmen.",[689],"Cesar Saavedra","https://res.cloudinary.com/about-gitlab-com/image/upload/v1772058602/epl3sinfezlzxnppxak6.png","2026-02-26","KI-Assistenten steigern die Produktivität einzelner Entwicklungsteams – aber sie arbeiten oft isoliert vom eigentlichen Entwicklungs-Workflow. Das Ergebnis: Kontextwechsel zwischen Tools, manuelle Übertragung von KI-Vorschlägen in ausführbaren Code und Routineaufgaben, die automatisiert werden könnten.\n\nDie [GitLab Duo Agent Platform](https://about.gitlab.com/de-de/gitlab-duo-agent-platform/) schließt diese Lücke: Externe KI-Modelle wie Anthropics Claude oder OpenAIs Codex lassen sich direkt in GitLab einbinden und als Agenten konfigurieren, die den Projektkontext kennen, Coding-Standards einhalten und komplexe Aufgaben eigenständig erledigen.\n\nCesar Saavedra, Developer Advocate bei GitLab, zeigt in seinem Video drei aufeinander aufbauende Anwendungsfälle – vom leeren Projekt bis zum Container-Image in der Registry.\n\n## Von der Idee zum Code\nAusgangspunkt ist ein leeres GitLab-Projekt mit einem Issue, das die Anforderungen an eine Java-Webanwendung beschreibt. Der externe Agent liest den Issue, analysiert die Spezifikationen und generiert eine vollständige Full-Stack-Anwendung: Backend-Java-Klassen, Frontend-Dateien (HTML/CSS/JavaScript) und Build-Konfiguration. Das Ergebnis landet als Merge Request mit vollständigem Code – bereit zur Überprüfung.\n\n## Code-Review durch denselben Agenten\nIm zweiten Schritt übernimmt derselbe Agent die Code-Review des soeben erstellten Merge Requests. Per Erwähnung im MR-Kommentar liefert er eine strukturierte Analyse: Stärken, kritische Probleme, mittlere und kleinere Verbesserungspunkte, Security-Assessment, Testhinweise, Code-Metriken und einen Approval-Status. Senior-Entwicklungsteams werden von Routineprüfungen entlastet und können sich auf Architekturentscheidungen konzentrieren.\n\n## Pipeline und Container-Image auf Anfrage\nDer generierte Code enthält noch keine CI/CD-Pipeline. Eine Anfrage im Merge Request genügt: Der Agent erstellt ein Dockerfile mit passenden Basis-Images für die im pom.xml definierte Java-Version, eine vollständige Pipeline mit Build-, Docker- und Deploy-Stages sowie das fertige Container-Image im integrierten GitLab Container Registry – ohne manuelle Konfiguration.\n\n## Mehr erfahren\nDie vollständige Videodemonstration mit Screenshots aller Schritte ist im [englischen Originalbeitrag](https://about.gitlab.com/blog/gitlab-duo-agent-platform-with-claude-accelerates-development/) verfügbar. Einen Einstieg in die GitLab Duo Agent Platform bietet außerdem der [Getting Started Guide](https://about.gitlab.com/de-de/blog/gitlab-duo-agent-platform-complete-getting-started-guide/).\n\n",[22,680,24],{"featured":695,"template":13,"slug":696},false,"gitlab-duo-agent-platform-with-claude-accelerates-development",{"content":698,"config":705},{"title":699,"description":700,"heroImage":701,"date":702,"body":703,"category":9,"tags":704},"Agentic SDLC: GitLab und TCS bringen Intelligent Orchestration ins Unternehmen","DevSecOps mit KI-Agenten skalieren, die Entwicklungsteams bei der Automatisierung von Workflows, Compliance und Delivery unterstützen.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1771866240/l16gpgupgz8uelyc8jfy.png","2026-02-24","GitLab und TCS geben ihre Partnerschaft bekannt, um Unternehmen bei der\nskalierbaren Beschleunigung ihrer Software-Delivery zu unterstützen.\n\n\nUnternehmen benötigen schnelle, sichere Software-Delivery, kämpfen jedoch häufig mit fragmentierten Toolchains, uneinheitlichen Sicherheitskontrollen und manuellen Compliance-Prozessen. KI-generierter Code und KI-gestützte Bedrohungen erhöhen die Komplexität zusätzlich.\n\n\nDie GitLab- und TCS Center of Excellence (CoE)-Acceleratoren reduzieren gemeinsam Migrationsaufwände, kodifizieren Leitplanken und industrialisieren die DevSecOps-Einführung im Unternehmensmaßstab. Gemeinsam ermöglichen sie einen Weg von der Standardisierung zur Intelligent Orchestration – mit den notwendigen prüfbaren Leitplanken während der Entwicklung.\n\n\n## Für das zukunftsfähige Unternehmen\n\n\nUnternehmen suchen eine DevSecOps-Plattform mit langfristiger Stabilität, die keine regelmäßige Neuarchitektur im großen Maßstab erfordert.     GitLabs einheitliches Datenmodell verbindet den gesamten Software-Lebenszyklus zu einer einzigen Kontextquelle. Das ermöglicht Unternehmen, Pipelines, Kontrollen und Metriken im Unternehmensmaßstab zu standardisieren. GitLabs kontinuierliche Weiterentwicklung KI-gestützter Funktionen ist darauf ausgelegt, die Plattform auch bei der Einführung agentischer Workflows langfristig relevant zu halten.\n\n\nGitLab und TCS synchronisieren Multi-Agent-Orchestrierung, dynamische Planung, konfidenzbasierte Entscheidungsfindung und kontinuierliche Lernzyklen, um Coding, Reviews, Tests, Security und CI/CD-Workflows zu automatisieren.\n\n\nDie [GitLab Duo Agent Platform](https://about.gitlab.com/de-de/gitlab-duo-agent-platform/) stellt Intelligent Orchestration über den gesamten Software-Lebenszyklus bereit – durch kontextbewusste autonome Aktionen, mehrstufiges Reasoning, Code-Modernisierung, Security Scanning und Flow-Automatisierung, gesteuert durch GitLabs KI-native DevSecOps-Kontrollen. Dies ist kompatibel mit TCS' strukturierter Agent-Hierarchie für IT-Operationen: Reasoning-, Planungs- und Domain-Agenten rufen die spezialisierten Agenten der GitLab Duo Platform (z. B. Planner, Security Analyst, Code Review) über MCP-gesteuerte Integrationen und umfangreiche Projektkontextflüsse auf.\n\n\n## DevSecOps mit Platform Engineering skalieren\n\n\nPlatform Engineering verlagert den Fokus vom Management einzelner Pipelines und Toolchains hin zum Aufbau einer Internal Developer Platform (IDP), die standardisiert, wie Software entwickelt, abgesichert, getestet und bereitgestellt wird.\n\n\nUnternehmen skalieren durch die Produktisierung der Developer Experience über Platform Engineering und den Betrieb von IDPs mit Self-Service Golden Paths. Sicherheit, Compliance und Governance sind standardmäßig durch Policy-as-Code eingebettet und standardisieren den Day-2-Betrieb. GitLab übernimmt die Rolle der IDP-Kontrollebene; TCS industrialisiert das Design und rollt Self-Service als Schicht auf der Kontrollebene aus. Als Solution Architects baut TCS Self-Service-Pfade, während die GitLab Duo Agent Platform Agentic AI hinzufügt, um die Entwicklung über den gesamten SDLC zu automatisieren.\n\n\n| Kategorie | Details |\n|---|---|\n| Experience Layer (IDP) | • Developer-Self-Service-Scaffolding \u003Cbr> • One-Click-Umgebungen/Runner/Scans \u003Cbr> • Standardisiertes Onboarding |\n| Platform Control Plane (GitLab) | • Merge Requests als Kontrollpunkt \u003Cbr> • Integriertes CI/CD \u003Cbr> • Security \u003Cbr> • Software Bill of Materials (SBOMs) \u003Cbr> • Approvals \u003Cbr> • Telemetrie |\n| Guardrails und Governance | • Richtlinienbasierte Governance \u003Cbr> • Compliance as Code \u003Cbr> • Risikogestufte Golden Paths \u003Cbr> • Obligatorische Kontrollen ohne manuelle Gates |\n| Infrastructure and Runtime | • Cloud Landing Zones \u003Cbr> • Kubernetes/VM-Laufzeitumgebungen \u003Cbr> • GitOps-gesteuerte Desired-State-Durchsetzung |\n| Golden Paths | • Kontinuierliche Verbesserung und sichere Erweiterbarkeit von Produkten \u003Cbr> • Vermeidung von Pipeline-Drift bei erhaltener Autonomie |\n| Day-2-Betrieb | • Automatisiertes Rollback \u003Cbr> • Laufzeit-SLOs verknüpft mit Release-Richtlinien \u003Cbr> • Schwachstellen-SLAs \u003Cbr> • Kostentransparenz \u003Cbr> • In die Plattform integrierte Operational Excellence |\n\n\n## Von DevSecOps zu Intelligent Orchestration\n\n\nEine einheitliche DevSecOps-Plattform bietet Unternehmen eine solide Grundlage. Wenn KI-Agenten jedoch zu aktiven Teilnehmern im Software-Lebenszyklus werden, muss die Plattform mehr leisten als Code und Pipelines verwalten: Sie muss die Zusammenarbeit von Menschen und KI-Agenten orchestrieren – mit vollständigem Lebenszykluskontext und integrierten Leitplanken. Das ist der Übergang von DevSecOps zu Intelligent Orchestration, den die GitLab Duo Agent Platform ermöglicht.\n\n\n### GitLab Duo Agent Platform\n\n\nDie GitLab Duo Agent Platform integriert KI-Agenten in den Software-Entwicklungslebenszyklus, die Entwicklungsteams als Mitarbeiter unterstützen. Mehrere KI-Agenten bearbeiten Aufgaben parallel – von der Code-Generierung und Tests bis hin zu CI/CD-Korrekturen – und reduzieren dabei Engpässe. Entwicklungsteams steuern diese Agenten über definierte Regeln und behalten die Kontrolle, während Routineaufgaben delegiert werden. Diese Agent-Orchestrierung bewältigt komplexe Workflows (z. B. die automatische Behebung fehlerhafter Pipelines) und gibt Teams Kapazität für höherwertige Aufgaben frei.\n\n\nKI-Agenten arbeiten innerhalb von GitLabs einheitlichem Datenmodell: Sie erstellen Merge Requests, verbessern Code und unterstützen Compliance-Anforderungen. Da jede Agentenaktion über vollständigen Projektkontext verfügt, prüfbar und richtlinienkonform ist, lässt sich KI über tausende von Entwicklungsteams hinweg skalieren – mit durchgehender Sicherheit und regulatorischer Compliance in allen automatisierten Workflows. Dies reduziert den operativen Aufwand für Application Engineers, DevSecOps Engineers, Scrum Master und Product Manager.\n\n\n## Referenzarchitektur\n\n\n![GitLab TCS Referenzarchitektur](https://res.cloudinary.com/about-gitlab-com/image/upload/v1771866349/ynfgc7ugqjasyj1uhew0.png)\n\n\n## GitLab + TCS\n\n\nGitLab stellt eine Intelligent Orchestration-Plattform für DevSecOps bereit, auf der Entwicklungsteams und KI-Agenten über den gesamten Entwicklungslebenszyklus hinweg zusammenarbeiten. TCS bringt industrialisierte Einführungs-Engines, erprobte Referenzarchitekturen, Migrations-Factories im Unternehmensmaßstab, Enterprise-Security-Baselines, Enterprise-KI-Kompetenz, AI Trust- und Risk-Management-Frameworks sowie einen produktorientierten Ansatz für den Plattformbetrieb ein.\n\n\nTCS verfügt über umfangreiche Erfahrung aus der Arbeit mit Kunden unterschiedlichster Branchen, Regionen und regulatorischer Anforderungen. Diese Erfahrung ermöglicht es TCS, GitLab-Funktionen auf konkrete Enterprise-Rahmenbedingungen anzupassen – darunter gewachsene IT-Landschaften, Compliance-Anforderungen, Betriebsmodelle und Skalierungsherausforderungen – anstatt Tooling isoliert einzuführen. Gemeinsam ermöglichen GitLab und TCS eine schnelle, verlässliche Delivery im Unternehmensmaßstab über verschiedene Cloud-Umgebungen hinweg – mit integrierter Compliance.\n\n\n> Um mehr über GitLab + TCSzu erfahren, schicke uns eine Email an: ecosystem@gitlab.com\n",[680,22],{"featured":695,"template":13,"slug":706},"agentic-sdlc-gitlab-and-tcs-deliver-intelligent-orchestration-across-the-enterprise",{"promotions":708},[709,722,734],{"id":710,"categories":711,"header":712,"text":713,"button":714,"image":719},"ai-modernization",[9],"Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":715,"config":716},"Get your AI maturity score",{"href":717,"dataGaName":718,"dataGaLocation":240},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":720},{"src":721},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":723,"categories":724,"header":726,"text":713,"button":727,"image":731},"devops-modernization",[22,725],"devsecops","Are you just managing tools or shipping innovation?",{"text":728,"config":729},"Get your DevOps maturity score",{"href":730,"dataGaName":718,"dataGaLocation":240},"/assessments/devops-modernization-assessment/",{"config":732},{"src":733},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":735,"categories":736,"header":737,"text":713,"button":738,"image":742},"security-modernization",[681],"Are you trading speed for security?",{"text":739,"config":740},"Get your security maturity score",{"href":741,"dataGaName":718,"dataGaLocation":240},"/assessments/security-modernization-assessment/",{"config":743},{"src":744},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"header":746,"blurb":747,"button":748,"secondaryButton":753},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":749,"config":750},"Kostenlosen Test starten",{"href":751,"dataGaName":46,"dataGaLocation":752},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":48,"config":754},{"href":50,"dataGaName":51,"dataGaLocation":752},1772652055587]