[{"data":1,"prerenderedAt":1620},["ShallowReactive",2],{"/de-de/blog/continuously-deploying-the-largest-gitlab-instance":3,"navigation-de-de":835,"banner-de-de":1267,"footer-de-de":1275,"blog-post-authors-de-de-John Skarbek":1516,"blog-related-posts-de-de-continuously-deploying-the-largest-gitlab-instance":1531,"blog-promotions-de-de":1557,"next-steps-de-de":1610},{"id":4,"title":5,"authors":6,"body":8,"category":816,"date":817,"description":818,"extension":819,"externalUrl":820,"faq":820,"featured":131,"heroImage":821,"meta":822,"navigation":131,"path":823,"seo":824,"slug":828,"stem":829,"tags":830,"template":833,"updatedDate":820,"__hash__":834},"blogPosts/de-de/blog/continuously-deploying-the-largest-gitlab-instance.md","Wie wir die größte GitLab-Instanz 12-mal täglich bereitstellen",[7],"John Skarbek",{"type":9,"value":10,"toc":800},"minimark",[11,15,18,23,30,36,52,56,59,174,178,183,186,211,215,218,223,250,344,354,358,361,373,376,464,469,501,505,508,518,521,525,528,542,566,569,583,586,592,612,620,637,646,650,654,668,673,687,691,694,697,702,728,731,735,743,746,769,773,796],[12,13,14],"p",{},"GitLab führt täglich bis zu 12 Code-Bereitstellungen auf der weltweit größten GitLab-Instanz – GitLab.com – ohne Ausfallzeiten durch. Diese Bereitstellungen nutzen GitLabs eigene CI/CD-Plattform und betreffen Millionen Entwickler(innen) weltweit. Die hohe Bereitstellungsfrequenz dient als primäres Qualitätstor und Belastungstest. Organisationen, die auf GitLab für ihre DevOps-Workflows setzen, nutzen eine auf der eigenen Infrastruktur im Enterprise-Maßstab bewährte Plattform.",[12,16,17],{},"In regulierten Branchen wie dem Finanzwesen und der Automobilproduktion sind Zero-Downtime-Bereitstellungen keine Option, sondern Voraussetzung. Die NIS2-Richtlinie fordert in Artikel 21 systematische Risikoanalyse und Business-Continuity-Management – genau das, was GitLab.coms progressive Rollout-Strategie in der Praxis demonstriert. Durch mehrstufige Validierung mit isoliertem Canary-Traffic (5% aller Anfragen) werden potenzielle Probleme erkannt, bevor Millionen Nutzer(innen) betroffen sind.",[19,20,22],"h2",{"id":21},"die-herausforderung-frequenz-trifft-skalierung","Die Herausforderung: Frequenz trifft Skalierung",[12,24,25,29],{},[26,27,28],"strong",{},"Für GitLab:"," Bereitstellungsfrequenz ist geschäftskritisch. Schnelle Deployment-Zyklen ermöglichen Reaktion auf Kundenfeedback innerhalb von Stunden, sofortige Security-Patches und Validierung neuer Features in Production vor Skalierung.",[12,31,32,35],{},[26,33,34],{},"Für Kund(inn)en:"," Jede Bereitstellung auf GitLab.com validiert die Deployment-Praktiken, die GitLab seinen Nutzer(inne)n empfiehlt. Features werden auf der weltweit größten GitLab-Instanz getestet, bevor sie Kundenumgebungen erreichen. Dies liefert:",[37,38,39,43,46,49],"ul",{},[40,41,42],"li",{},"Neueste Features sofort verfügbar (Stunden statt Wochen)",[40,44,45],{},"Bewährte Zuverlässigkeit im Maßstab",[40,47,48],{},"Zero-Downtime-Bereitstellungen garantieren durchgängigen Zugriff",[40,50,51],{},"Dokumentation basiert auf tatsächlichen Production-Praktiken",[19,53,55],{"id":54},"code-to-production-architektur","Code-to-Production-Architektur",[12,57,58],{},"Die Deployment-Pipeline durchläuft strukturierte Phasen, wobei jede Phase als Checkpoint auf dem Weg zur Production-Bereitstellung fungiert:",[60,61,66],"pre",{"className":62,"code":63,"language":64,"meta":65,"style":65},"language-mermaid shiki shiki-themes github-light","    graph TD\n        A[Code Proposed] --> B[Merge Request Created]\n        B --> C[Pipeline Triggered]\n        C --> D[Build & Test]\n        D --> E{Spec/Integration/QA Tests Pass?}\n        E -->|No| F[Feedback Loop]\n        F --> B\n        E -->|Yes| G[Merge to default branch]\n        G -->|Periodically| H[Auto-Deploy Branch]\n\n        subgraph \"Deployment Pipeline\"\n            H --> I[Package Creation]\n            I --> K[Canary Environment]\n            K --> L[QA Validation]\n            L --> M[Main Environment]\n\n        end\n","mermaid","",[67,68,69,78,84,90,96,102,108,114,120,126,133,139,145,151,157,163,168],"code",{"__ignoreMap":65},[70,71,74],"span",{"class":72,"line":73},"line",1,[70,75,77],{"class":76},"sgsFI","    graph TD\n",[70,79,81],{"class":72,"line":80},2,[70,82,83],{"class":76},"        A[Code Proposed] --> B[Merge Request Created]\n",[70,85,87],{"class":72,"line":86},3,[70,88,89],{"class":76},"        B --> C[Pipeline Triggered]\n",[70,91,93],{"class":72,"line":92},4,[70,94,95],{"class":76},"        C --> D[Build & Test]\n",[70,97,99],{"class":72,"line":98},5,[70,100,101],{"class":76},"        D --> E{Spec/Integration/QA Tests Pass?}\n",[70,103,105],{"class":72,"line":104},6,[70,106,107],{"class":76},"        E -->|No| F[Feedback Loop]\n",[70,109,111],{"class":72,"line":110},7,[70,112,113],{"class":76},"        F --> B\n",[70,115,117],{"class":72,"line":116},8,[70,118,119],{"class":76},"        E -->|Yes| G[Merge to default branch]\n",[70,121,123],{"class":72,"line":122},9,[70,124,125],{"class":76},"        G -->|Periodically| H[Auto-Deploy Branch]\n",[70,127,129],{"class":72,"line":128},10,[70,130,132],{"emptyLinePlaceholder":131},true,"\n",[70,134,136],{"class":72,"line":135},11,[70,137,138],{"class":76},"        subgraph \"Deployment Pipeline\"\n",[70,140,142],{"class":72,"line":141},12,[70,143,144],{"class":76},"            H --> I[Package Creation]\n",[70,146,148],{"class":72,"line":147},13,[70,149,150],{"class":76},"            I --> K[Canary Environment]\n",[70,152,154],{"class":72,"line":153},14,[70,155,156],{"class":76},"            K --> L[QA Validation]\n",[70,158,160],{"class":72,"line":159},15,[70,161,162],{"class":76},"            L --> M[Main Environment]\n",[70,164,166],{"class":72,"line":165},16,[70,167,132],{"emptyLinePlaceholder":131},[70,169,171],{"class":72,"line":170},17,[70,172,173],{"class":76},"        end\n",[19,175,177],{"id":176},"progressive-rollout-strategie","Progressive Rollout-Strategie",[179,180,182],"h3",{"id":181},"build-und-paket-erstellung","Build und Paket-Erstellung",[12,184,185],{},"GitLab erstellt sowohl Omnibus-Pakete als auch Cloud Native GitLab (CNG) Images. Omnibus-Pakete werden auf der Gitaly-Flotte bereitgestellt (Git-Storage-Layer), während CNG-Images alle anderen Komponenten als containerisierte Workloads ausführen. Eine geplante Pipeline sucht regelmäßig nach dem jüngsten Commit mit erfolgreicher Pipeline und erstellt daraus einen Auto-Deploy-Branch.",[60,187,189],{"className":62,"code":188,"language":64,"meta":65,"style":65},"    graph LR\n        A[Create branch] --> B[Build]\n        B --> C[Choose Built package]\n        C --> D[Start Deploy Pipeline]\n",[67,190,191,196,201,206],{"__ignoreMap":65},[70,192,193],{"class":72,"line":73},[70,194,195],{"class":76},"    graph LR\n",[70,197,198],{"class":72,"line":80},[70,199,200],{"class":76},"        A[Create branch] --> B[Build]\n",[70,202,203],{"class":72,"line":86},[70,204,205],{"class":76},"        B --> C[Choose Built package]\n",[70,207,208],{"class":72,"line":92},[70,209,210],{"class":76},"        C --> D[Start Deploy Pipeline]\n",[179,212,214],{"id":213},"canary-strategie-und-mehrstufige-validierung","Canary-Strategie und mehrstufige Validierung",[12,216,217],{},"GitLabs QA-Prozess arbeitet Hand in Hand mit der Canary-Strategie durch umgebungsbasierte Validierung. Etwa 5% des gesamten Traffics durchlaufen die Canary-Stage. Dieser Ansatz erhöht die Komplexität von Datenbankmigrationen, gewährleistet aber nahtlose Bereitstellung eines zuverlässigen Produkts.",[12,219,220],{},[26,221,222],{},"Progressive Rollout-Phasen:",[224,225,226,232,238,244],"ol",{},[40,227,228,231],{},[26,229,230],{},"Staging Canary:"," Initiale Validierungsumgebung",[40,233,234,237],{},[26,235,236],{},"Production Canary:"," Limitierter Production-Traffic",[40,239,240,243],{},[26,241,242],{},"Staging Main:"," Vollständige Staging-Umgebung",[40,245,246,249],{},[26,247,248],{},"Production Main:"," Vollständiger Production-Rollout",[60,251,253],{"className":62,"code":252,"language":64,"meta":65,"style":65},"    graph TD\n        C[Staging Canary Deploy]\n        C --> D[QA Smoke Main Stage Tests]\n        C --> E[QA Smoke Canary Stage Tests]\n        D --> F\n        E --> F{Tests Pass?}\n        F -->|Yes| G[Production Canary Deploy]\n        G --> S[QA Smoke Main Stage Tests]\n        G --> T[QA Smoke Canary Stage Tests]\n        F -->|No| H[Issue Creation]\n        H --> K[Fix & Backport]\n        K --> C\n\n        S --> M[Canary Traffic Monitoring]\n        T --> M[Canary Traffic Monitoring baking period]\n        M --> U[Production Safety Checks]\n        U --> N[Staging Main]\n        N --> V[Production Main]\n",[67,254,255,259,264,269,274,279,284,289,294,299,304,309,314,318,323,328,333,338],{"__ignoreMap":65},[70,256,257],{"class":72,"line":73},[70,258,77],{"class":76},[70,260,261],{"class":72,"line":80},[70,262,263],{"class":76},"        C[Staging Canary Deploy]\n",[70,265,266],{"class":72,"line":86},[70,267,268],{"class":76},"        C --> D[QA Smoke Main Stage Tests]\n",[70,270,271],{"class":72,"line":92},[70,272,273],{"class":76},"        C --> E[QA Smoke Canary Stage Tests]\n",[70,275,276],{"class":72,"line":98},[70,277,278],{"class":76},"        D --> F\n",[70,280,281],{"class":72,"line":104},[70,282,283],{"class":76},"        E --> F{Tests Pass?}\n",[70,285,286],{"class":72,"line":110},[70,287,288],{"class":76},"        F -->|Yes| G[Production Canary Deploy]\n",[70,290,291],{"class":72,"line":116},[70,292,293],{"class":76},"        G --> S[QA Smoke Main Stage Tests]\n",[70,295,296],{"class":72,"line":122},[70,297,298],{"class":76},"        G --> T[QA Smoke Canary Stage Tests]\n",[70,300,301],{"class":72,"line":128},[70,302,303],{"class":76},"        F -->|No| H[Issue Creation]\n",[70,305,306],{"class":72,"line":135},[70,307,308],{"class":76},"        H --> K[Fix & Backport]\n",[70,310,311],{"class":72,"line":141},[70,312,313],{"class":76},"        K --> C\n",[70,315,316],{"class":72,"line":147},[70,317,132],{"emptyLinePlaceholder":131},[70,319,320],{"class":72,"line":153},[70,321,322],{"class":76},"        S --> M[Canary Traffic Monitoring]\n",[70,324,325],{"class":72,"line":159},[70,326,327],{"class":76},"        T --> M[Canary Traffic Monitoring baking period]\n",[70,329,330],{"class":72,"line":165},[70,331,332],{"class":76},"        M --> U[Production Safety Checks]\n",[70,334,335],{"class":72,"line":170},[70,336,337],{"class":76},"        U --> N[Staging Main]\n",[70,339,341],{"class":72,"line":340},18,[70,342,343],{"class":76},"        N --> V[Production Main]\n",[12,345,346,347,353],{},"QA-Validierung erfolgt an mehreren Checkpoints: nach jeder Canary-Bereitstellung und nach Post-Deploy-Migrationen. Weitere Details zur ",[348,349,352],"a",{"href":350,"rel":351},"https://handbook.gitlab.com/handbook/engineering/testing/",[],"GitLab-Teststrategie"," finden sich im Handbook.",[19,355,357],{"id":356},"deployment-pipeline-stages","Deployment-Pipeline-Stages",[12,359,360],{},"GitLab.com repräsentiert reale Deployment-Komplexität im Maßstab. Als größte bekannte GitLab-Instanz nutzen Bereitstellungen denselben offiziellen GitLab Helm Chart und dasselbe Linux-Paket wie Kund(inn)en. Mehr zur GitLab.com-Architektur im Handbook.",[12,362,363,366,367,372],{},[26,364,365],{},"Dogfooding im Maßstab:"," GitLab nutzt dieselben Verfahren, die für ",[348,368,371],{"href":369,"rel":370},"https://docs.gitlab.com/update/zero_downtime/",[],"Zero-Downtime-Upgrades"," dokumentiert sind. Was bei GitLab nicht reibungslos funktioniert, wird Kund(inn)en nicht empfohlen.",[12,374,375],{},"Folgende Stages laufen für alle Environment- und Stage-Upgrades:",[60,377,379],{"className":62,"code":378,"language":64,"meta":65,"style":65},"    graph LR\n        a[prep] --> c[Regular Migrations - Canary stage only]\n        a --> f[Assets - Canary stage only]\n        c --> d[Gitaly]\n        d --> k8s\n\n        subgraph subGraph0[\"VM workloads\"]\n          d[\"Gitaly\"]\n        end\n\n        subgraph subGraph1[\"Kubernetes workloads\"]\n          k8s[\"k8s\"]\n        end\n\n        subgraph fleet[\"fleet\"]\n          subGraph0\n          subGraph1\n        end\n",[67,380,381,385,390,395,400,405,409,414,419,423,427,432,437,441,445,450,455,460],{"__ignoreMap":65},[70,382,383],{"class":72,"line":73},[70,384,195],{"class":76},[70,386,387],{"class":72,"line":80},[70,388,389],{"class":76},"        a[prep] --> c[Regular Migrations - Canary stage only]\n",[70,391,392],{"class":72,"line":86},[70,393,394],{"class":76},"        a --> f[Assets - Canary stage only]\n",[70,396,397],{"class":72,"line":92},[70,398,399],{"class":76},"        c --> d[Gitaly]\n",[70,401,402],{"class":72,"line":98},[70,403,404],{"class":76},"        d --> k8s\n",[70,406,407],{"class":72,"line":104},[70,408,132],{"emptyLinePlaceholder":131},[70,410,411],{"class":72,"line":110},[70,412,413],{"class":76},"        subgraph subGraph0[\"VM workloads\"]\n",[70,415,416],{"class":72,"line":116},[70,417,418],{"class":76},"          d[\"Gitaly\"]\n",[70,420,421],{"class":72,"line":122},[70,422,173],{"class":76},[70,424,425],{"class":72,"line":128},[70,426,132],{"emptyLinePlaceholder":131},[70,428,429],{"class":72,"line":135},[70,430,431],{"class":76},"        subgraph subGraph1[\"Kubernetes workloads\"]\n",[70,433,434],{"class":72,"line":141},[70,435,436],{"class":76},"          k8s[\"k8s\"]\n",[70,438,439],{"class":72,"line":147},[70,440,173],{"class":76},[70,442,443],{"class":72,"line":153},[70,444,132],{"emptyLinePlaceholder":131},[70,446,447],{"class":72,"line":159},[70,448,449],{"class":76},"        subgraph fleet[\"fleet\"]\n",[70,451,452],{"class":72,"line":165},[70,453,454],{"class":76},"          subGraph0\n",[70,456,457],{"class":72,"line":170},[70,458,459],{"class":76},"          subGraph1\n",[70,461,462],{"class":72,"line":340},[70,463,173],{"class":76},[12,465,466],{},[26,467,468],{},"Stage-Details:",[37,470,471,477,483,489,495],{},[40,472,473,476],{},[26,474,475],{},"Prep:"," Validiert Deployment-Bereitschaft und führt Pre-Deployment-Checks durch",[40,478,479,482],{},[26,480,481],{},"Migrations:"," Führt reguläre Datenbankmigrationen aus (nur Canary-Stage)",[40,484,485,488],{},[26,486,487],{},"Assets:"," Lädt statische Assets in GCS-Bucket hoch (nur Canary-Stage)",[40,490,491,494],{},[26,492,493],{},"Gitaly:"," Aktualisiert Gitaly-VM-Storage-Layer via Omnibus-Paket",[40,496,497,500],{},[26,498,499],{},"Kubernetes:"," Deployed containerisierte GitLab-Komponenten via Helm Chart",[179,502,504],{"id":503},"multi-version-kompatibilität-die-versteckte-herausforderung","Multi-Version-Kompatibilität: Die versteckte Herausforderung",[12,506,507],{},"Während der Bereitstellung existiert eine Zeitspanne, in der das Datenbankschema dem Code voraus ist, den die Main-Stage kennt. Dies geschieht, weil die Canary-Stage bereits neuen Code deployed und reguläre Datenbankmigrationen ausführt, während die Main-Stage noch die vorherige Code-Version ausführt.",[12,509,510,513,514,517],{},[26,511,512],{},"Beispiel:"," Bei Hinzufügen eines neuen ",[67,515,516],{},"merge_readiness","-Felds zu Merge Requests laufen manche Server mit Code, der dieses Feld erwartet, während andere nichts davon wissen. Schlechte Handhabung würde GitLab.com für Millionen Nutzer(innen) unterbrechen. Gute Handhabung bleibt unbemerkt.",[12,519,520],{},"Mit wenigen Ausnahmen läuft die Mehrheit der Services für eine gewisse Zeit in leicht neuerer Version in Canary. Diese Szenarien sind transiente Zustände, können aber mehrere Stunden oder Tage in Live-Production-Umgebung persistieren. Daher müssen sie mit derselben Sorgfalt wie permanente Zustände behandelt werden.",[19,522,524],{"id":523},"datenbank-operationen","Datenbank-Operationen",[12,526,527],{},"Datenbankmigrationen stellen eine besondere Herausforderung im Canary-Deployment-Modell dar. Schemaänderungen müssen neue Features unterstützen und gleichzeitig Rollback-Fähigkeit bewahren:",[37,529,530,536],{},[40,531,532,535],{},[26,533,534],{},"Regular Migrations:"," Laufen während Canary-Stage, rückwärtskompatibel, nur reversible Änderungen",[40,537,538,541],{},[26,539,540],{},"Post-Deploy-Migrations:"," \"Point of no Return\"-Migrationen, die erst nach mehreren erfolgreichen Bereitstellungen laufen",[60,543,545],{"className":62,"code":544,"language":64,"meta":65,"style":65},"    graph LR\n        A[Regular Migrations] --> B[Canary Stage Deploy]\n        B --> C[Main Stage Deploy]\n        C --> D[Post Deploy Migrations]\n",[67,546,547,551,556,561],{"__ignoreMap":65},[70,548,549],{"class":72,"line":73},[70,550,195],{"class":76},[70,552,553],{"class":72,"line":80},[70,554,555],{"class":76},"        A[Regular Migrations] --> B[Canary Stage Deploy]\n",[70,557,558],{"class":72,"line":86},[70,559,560],{"class":76},"        B --> C[Main Stage Deploy]\n",[70,562,563],{"class":72,"line":92},[70,564,565],{"class":76},"        C --> D[Post Deploy Migrations]\n",[12,567,568],{},"Post-Deploy-Migrationen enthalten oft Änderungen, die nicht einfach rückgängig gemacht werden können – Datentransformationen, Column-Drops oder strukturelle Änderungen, die ältere Code-Versionen unterbrechen würden. Durch Ausführung nach Erlangung von Vertrauen durch mehrere erfolgreiche Bereitstellungen wird sichergestellt:",[224,570,571,574,577,580],{},[40,572,573],{},"Neuer Code ist stabil, Rollback unwahrscheinlich",[40,575,576],{},"Performance-Charakteristiken in Production verstanden",[40,578,579],{},"Edge Cases erkannt und adressiert",[40,581,582],{},"Blast Radius minimiert, falls etwas schiefgeht",[12,584,585],{},"Dieser Ansatz bietet optimale Balance: schnelle Feature-Bereitstellung durch Canary-Releases bei gleichzeitiger Rollback-Fähigkeit bis Vertrauen in Deployment-Stabilität besteht.",[12,587,588,591],{},[26,589,590],{},"Expand-Migrate-Contract-Pattern:"," Datenbank-, Frontend- und Anwendungskompatibilitäts-Änderungen folgen einem sorgfältig orchestrierten dreiphasigen Ansatz:",[224,593,594,600,606],{},[40,595,596,599],{},[26,597,598],{},"Expand:"," Neue Strukturen hinzufügen, alte funktional belassen",[40,601,602,605],{},[26,603,604],{},"Migrate:"," Neuen Application-Code deployen, der neue Strukturen nutzt",[40,607,608,611],{},[26,609,610],{},"Contract:"," Alte Strukturen in Post-Deploy-Migrationen entfernen",[12,613,614],{},[26,615,616,617,619],{},"Beispiel für ",[67,618,516],{},"-Column:",[224,621,622,627,632],{},[40,623,624,626],{},[26,625,598],{}," Neue Column mit Default-Value hinzufügen; bestehender Code ignoriert sie",[40,628,629,631],{},[26,630,604],{}," Code deployen, der neue Column liest und schreibt, alten Ansatz weiter unterstützt",[40,633,634,636],{},[26,635,610],{}," Nach mehreren erfolgreichen Bereitstellungen alte Column in Post-Deploy-Migration entfernen",[12,638,639,640,645],{},"Alle Datenbank-Operationen, Application-Code und Frontend-Code unterliegen Guidelines, dokumentiert in der ",[348,641,644],{"href":642,"rel":643},"https://docs.gitlab.com/development/multi_version_compatibility/",[],"Multi-Version-Compatibility-Dokumentation",".",[19,647,649],{"id":648},"ergebnisse-und-auswirkungen","Ergebnisse und Auswirkungen",[12,651,652],{},[26,653,28],{},[37,655,656,659,662,665],{},[40,657,658],{},"Bis zu 12 Bereitstellungen täglich auf GitLab.com",[40,660,661],{},"Zero-Downtime-Bereitstellungen für Millionen Entwickler(innen)",[40,663,664],{},"Security-Patches erreichen Production innerhalb von Stunden",[40,666,667],{},"Neue Features in Production im Maßstab validiert vor General Availability",[12,669,670],{},[26,671,672],{},"Für Kunden:",[37,674,675,678,681,684],{},[40,676,677],{},"Bewährte Deployment-Patterns für eigene Anwendungen",[40,679,680],{},"Features auf weltweit größter GitLab-Instanz getestet vor Erreichen der Kundenumgebung",[40,682,683],{},"Dokumentation reflektiert tatsächliche Production-Praktiken",[40,685,686],{},"Vertrauen, dass GitLabs empfohlene Upgrade-Prozeduren in jedem Maßstab funktionieren",[19,688,690],{"id":689},"erkenntnisse-für-engineering-teams","Erkenntnisse für Engineering-Teams",[12,692,693],{},"Die hier beschriebenen Muster – von Expand-Migrate-Contract für Datenbankmigrationen bis zur Multi-Version-Kompatibilität – sind auf kleinere Deployments übertragbar. Nicht jede Organisation benötigt 12 Bereitstellungen täglich, aber die systematische Herangehensweise an Rollback-Fähigkeit und Validierungspunkte gilt unabhängig von der Skalierung.",[12,695,696],{},"GitLabs Deployment-Pipeline repräsentiert ein ausgereiftes System, das Deployment-Geschwindigkeit mit operationaler Zuverlässigkeit ausbalanciert. Das progressive Deployment-Modell, umfassende Testing-Integration und robuste Rollback-Fähigkeiten bieten Grundlage für zuverlässige Software-Auslieferung im Maßstab.",[12,698,699],{},[26,700,701],{},"Zentrale Überlegungen für Engineering-Teams:",[37,703,704,710,716,722],{},[40,705,706,709],{},[26,707,708],{},"Automatisiertes Testing:"," Umfassende Test-Coverage durch Deployment-Pipeline",[40,711,712,715],{},[26,713,714],{},"Progressive Rollouts:"," Gestufte Bereitstellungen zur Risikominimierung und schnellen Wiederherstellung",[40,717,718,721],{},[26,719,720],{},"Monitoring-Integration:"," Umfassende Observability über alle Deployment-Stages",[40,723,724,727],{},[26,725,726],{},"Incident Response:"," Schnelle Erkennungs- und Lösungsfähigkeiten für Deployment-Probleme",[12,729,730],{},"GitLabs Architektur demonstriert, wie moderne CI/CD-Systeme Komplexität großskaliger Bereitstellungen managen und gleichzeitig Geschwindigkeit für wettbewerbsfähige Software-Entwicklung bewahren.",[19,732,734],{"id":733},"vollständige-technische-dokumentation","Vollständige technische Dokumentation",[12,736,737,738,645],{},"Dieser Artikel beschreibt die Deployment-Patterns und systematische Herangehensweise für GitLab.com. Für vollständige Implementierungsdetails, spezifische Konfigurationsbeispiele und tiefergehende technische Architekturbeschreibungen siehe die ",[348,739,742],{"href":740,"rel":741},"https://about.gitlab.com/blog/continuously-deploying-the-largest-gitlab-instance/",[],"englische Originalversion",[12,744,745],{},"Weitere Dokumentation zu Auto-Deploy und Verfahren:",[37,747,748,755,762],{},[40,749,750],{},[348,751,754],{"href":752,"rel":753},"https://handbook.gitlab.com/handbook/engineering/deployments-and-releases/deployments/",[],"Engineering Deployments",[40,756,757],{},[348,758,761],{"href":759,"rel":760},"https://gitlab-org.gitlab.io/release/docs/",[],"Release Procedural Documentation",[40,763,764],{},[348,765,768],{"href":766,"rel":767},"https://gitlab.com/gitlab-org/gitlab-environment-toolkit",[],"GitLab Environment Toolkit",[19,770,772],{"id":771},"weitere-ressourcen","Weitere Ressourcen",[37,774,775,782,789],{},[40,776,777],{},[348,778,781],{"href":779,"rel":780},"https://about.gitlab.com/blog/how-we-decreased-gitlab-repo-backup-times-from-48-hours-to-41-minutes/",[],"How we decreased GitLab repo backup times from 48 hours to 41 minutes",[40,783,784],{},[348,785,788],{"href":786,"rel":787},"https://about.gitlab.com/blog/how-we-supercharged-gitlab-ci-statuses-with-websockets/",[],"How we supercharged GitLab CI statuses with WebSockets",[40,790,791],{},[348,792,795],{"href":793,"rel":794},"https://about.gitlab.com/blog/how-we-reduced-mr-review-time-with-value-stream-management/",[],"How we reduced MR review time with Value Stream Management",[797,798,799],"style",{},"html pre.shiki code .sgsFI, html code.shiki .sgsFI{--shiki-default:#24292E}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":65,"searchDepth":80,"depth":80,"links":801},[802,803,804,808,811,812,813,814,815],{"id":21,"depth":80,"text":22},{"id":54,"depth":80,"text":55},{"id":176,"depth":80,"text":177,"children":805},[806,807],{"id":181,"depth":86,"text":182},{"id":213,"depth":86,"text":214},{"id":356,"depth":80,"text":357,"children":809},[810],{"id":503,"depth":86,"text":504},{"id":523,"depth":80,"text":524},{"id":648,"depth":80,"text":649},{"id":689,"depth":80,"text":690},{"id":733,"depth":80,"text":734},{"id":771,"depth":80,"text":772},"engineering","2025-12-01","Systematische Deployment-Pipeline mit mehrstufigen Rollouts, Canary-Strategie (5% Traffic) und Datenbank-Migrationen für Millionen Entwickler(innen) weltweit.","md",null,"https://res.cloudinary.com/about-gitlab-com/image/upload/v1764108112/tyntnsy3xotlmehtnfkb.png",{},"/de-de/blog/continuously-deploying-the-largest-gitlab-instance",{"noIndex":825,"title":826,"description":827},false,"Zero-Downtime-Deployment: 12x täglich im Enterprise-Maßstab","Progressive Rollouts, Canary-Validierung und Multi-Version-Kompatibilität für GitLab.com – bewährte Deployment-Strategie im Maßstab.","continuously-deploying-the-largest-gitlab-instance","de-de/blog/continuously-deploying-the-largest-gitlab-instance",[831,832],"product","inside GitLab","BlogPost","gA74hnc9g63cTFMCohMJld3v4ePxgxN9OUydP83GmEI",{"logo":836,"freeTrial":841,"sales":846,"login":851,"items":856,"search":1185,"minimal":1219,"duo":1237,"switchNav":1246,"pricingDeployment":1257},{"config":837},{"href":838,"dataGaName":839,"dataGaLocation":840},"/de-de/","gitlab logo","header",{"text":842,"config":843},"Kostenlose Testversion anfordern",{"href":844,"dataGaName":845,"dataGaLocation":840},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de&glm_content=default-saas-trial/","free trial",{"text":847,"config":848},"Demo anfordern",{"href":849,"dataGaName":850,"dataGaLocation":840},"/de-de/sales/?contact-topic=request-demo","sales",{"text":852,"config":853},"Anmelden",{"href":854,"dataGaName":855,"dataGaLocation":840},"https://gitlab.com/users/sign_in/","sign in",[857,886,988,993,1107,1163],{"text":858,"config":859,"menu":861},"Plattform",{"dataNavLevelOne":860},"platform",{"type":862,"columns":863},"cards",[864,870,878],{"title":858,"description":865,"link":866},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":867,"config":868},"Die Plattform erkunden",{"href":869,"dataGaName":860,"dataGaLocation":840},"/de-de/platform/",{"title":871,"description":872,"link":873},"GitLab Duo Agent Platform","Agentische KI für den gesamten Software-Lebenszyklus",{"text":874,"config":875},"Lerne GitLab Duo kennen",{"href":876,"dataGaName":877,"dataGaLocation":840},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":879,"description":880,"link":881},"Warum GitLab?","Erfahre, warum sich Unternehmen für GitLab entscheiden",{"text":882,"config":883},"Mehr erfahren",{"href":884,"dataGaName":885,"dataGaLocation":840},"/de-de/why-gitlab/","why gitlab",{"text":887,"left":131,"config":888,"menu":890},"Produkt",{"dataNavLevelOne":889},"solutions",{"type":891,"link":892,"columns":896,"feature":967},"lists",{"text":893,"config":894},"Alle Lösungen anzeigen",{"href":895,"dataGaName":889,"dataGaLocation":840},"/de-de/solutions/",[897,922,945],{"title":898,"description":899,"link":900,"items":905},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":901},{"icon":902,"href":903,"dataGaName":904,"dataGaLocation":840},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[906,910,913,918],{"text":907,"config":908},"CI/CD",{"href":909,"dataGaLocation":840,"dataGaName":907},"/de-de/solutions/continuous-integration/",{"text":871,"config":911},{"href":876,"dataGaLocation":840,"dataGaName":912},"gitlab duo agent platform - product menu",{"text":914,"config":915},"Quellcodeverwaltung",{"href":916,"dataGaLocation":840,"dataGaName":917},"/de-de/solutions/source-code-management/","Source Code Management",{"text":919,"config":920},"Automatische Softwarebereitstellung",{"href":903,"dataGaLocation":840,"dataGaName":921},"Automated software delivery",{"title":923,"description":924,"link":925,"items":930},"Sicherheit","Entwickle Code schneller ohne Abstriche bei der Sicherheit",{"config":926},{"href":927,"dataGaName":928,"dataGaLocation":840,"icon":929},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[931,935,940],{"text":932,"config":933},"Anwendungssicherheitstests",{"href":927,"dataGaName":934,"dataGaLocation":840},"Application security testing",{"text":936,"config":937},"Schutz der Software-Lieferkette",{"href":938,"dataGaLocation":840,"dataGaName":939},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":941,"config":942},"Software-Compliance",{"href":943,"dataGaName":944,"dataGaLocation":840},"/de-de/solutions/software-compliance/","software compliance",{"title":946,"link":947,"items":952},"Messung",{"config":948},{"icon":949,"href":950,"dataGaName":951,"dataGaLocation":840},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[953,957,962],{"text":954,"config":955},"Sichtbarkeit und Messung",{"href":950,"dataGaLocation":840,"dataGaName":956},"Visibility and Measurement",{"text":958,"config":959},"Wertstrommanagement",{"href":960,"dataGaLocation":840,"dataGaName":961},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":963,"config":964},"Analysen und Einblicke",{"href":965,"dataGaLocation":840,"dataGaName":966},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":968,"type":891,"items":969},"GitLab für",[970,976,982],{"text":971,"config":972},"Enterprise",{"icon":973,"href":974,"dataGaLocation":840,"dataGaName":975},"Building","/de-de/enterprise/","enterprise",{"text":977,"config":978},"Kleinunternehmen",{"icon":979,"href":980,"dataGaLocation":840,"dataGaName":981},"Work","/de-de/small-business/","small business",{"text":983,"config":984},"Öffentlicher Sektor",{"icon":985,"href":986,"dataGaLocation":840,"dataGaName":987},"Organization","/de-de/solutions/public-sector/","public sector",{"text":989,"config":990},"Preise",{"href":991,"dataGaName":992,"dataGaLocation":840,"dataNavLevelOne":992},"/de-de/pricing/","pricing",{"text":994,"config":995,"menu":997},"Ressourcen",{"dataNavLevelOne":996},"resources",{"type":891,"link":998,"columns":1002,"feature":1096},{"text":999,"config":1000},"Alle Ressourcen anzeigen",{"href":1001,"dataGaName":996,"dataGaLocation":840},"/de-de/resources/",[1003,1036,1063],{"title":1004,"items":1005},"Erste Schritte",[1006,1011,1016,1021,1026,1031],{"text":1007,"config":1008},"Installieren",{"href":1009,"dataGaName":1010,"dataGaLocation":840},"/de-de/install/","install",{"text":1012,"config":1013},"Kurzanleitungen",{"href":1014,"dataGaName":1015,"dataGaLocation":840},"/de-de/get-started/","quick setup checklists",{"text":1017,"config":1018},"Lernen",{"href":1019,"dataGaLocation":840,"dataGaName":1020},"https://university.gitlab.com/","learn",{"text":1022,"config":1023},"Produktdokumentation",{"href":1024,"dataGaName":1025,"dataGaLocation":840},"https://docs.gitlab.com/","product documentation",{"text":1027,"config":1028},"Best-Practice-Videos",{"href":1029,"dataGaName":1030,"dataGaLocation":840},"/de-de/getting-started-videos/","best practice videos",{"text":1032,"config":1033},"Integrationen",{"href":1034,"dataGaName":1035,"dataGaLocation":840},"/de-de/integrations/","integrations",{"title":1037,"items":1038},"Entdecken",[1039,1044,1049,1054,1058],{"text":1040,"config":1041},"Kundenerfolge",{"href":1042,"dataGaName":1043,"dataGaLocation":840},"/de-de/customers/","customer success stories",{"text":1045,"config":1046},"Blog",{"href":1047,"dataGaName":1048,"dataGaLocation":840},"/de-de/blog/","blog",{"text":1050,"config":1051},"Demo-Hub",{"href":1052,"dataGaName":1053,"dataGaLocation":840},"/de-de/demo-hub/","demo hub",{"text":1055,"config":1056},"The Source",{"href":1057,"dataGaName":1048,"dataGaLocation":840},"/de-de/the-source/",{"text":1059,"config":1060},"Remote",{"href":1061,"dataGaName":1062,"dataGaLocation":840},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":1064,"items":1065},"Vernetzen",[1066,1071,1076,1081,1086,1091],{"text":1067,"config":1068},"GitLab-Services",{"href":1069,"dataGaName":1070,"dataGaLocation":840},"/de-de/services/","services",{"text":1072,"config":1073},"Beitragen",{"href":1074,"dataGaName":1075,"dataGaLocation":840},"https://contributors.gitlab.com","contribute",{"text":1077,"config":1078},"Community",{"href":1079,"dataGaName":1080,"dataGaLocation":840},"/community/","community",{"text":1082,"config":1083},"Forum",{"href":1084,"dataGaName":1085,"dataGaLocation":840},"https://forum.gitlab.com/","forum",{"text":1087,"config":1088},"Veranstaltungen",{"href":1089,"dataGaName":1090,"dataGaLocation":840},"/events/","events",{"text":1092,"config":1093},"Partner",{"href":1094,"dataGaName":1095,"dataGaLocation":840},"/de-de/partners/","partners",{"config":1097,"title":1100,"text":1101,"link":1102},{"background":1098,"textColor":1099},"url('https://res.cloudinary.com/about-gitlab-com/image/upload/v1777322348/qpq8yrgn8knii57omj0c.png')","#000","Neues bei GitLab","Über die neuesten Funktionen und Verbesserungen auf dem Laufenden bleiben.",{"text":1103,"config":1104},"Aktuelle Nachrichten",{"href":1105,"dataGaName":1106,"dataGaLocation":840},"/de-de/whats-new/","whats new",{"text":1108,"config":1109,"menu":1111},"Unternehmen",{"dataNavLevelOne":1110},"company",{"type":891,"columns":1112},[1113],{"items":1114},[1115,1120,1126,1128,1133,1138,1143,1148,1153,1158],{"text":1116,"config":1117},"Über",{"href":1118,"dataGaName":1119,"dataGaLocation":840},"/de-de/company/","about",{"text":1121,"config":1122,"footerGa":1125},"Karriere",{"href":1123,"dataGaName":1124,"dataGaLocation":840},"/jobs/","jobs",{"dataGaName":1124},{"text":1087,"config":1127},{"href":1089,"dataGaName":1090,"dataGaLocation":840},{"text":1129,"config":1130},"Geschäftsführung",{"href":1131,"dataGaName":1132,"dataGaLocation":840},"/company/team/e-group/","leadership",{"text":1134,"config":1135},"Handbuch",{"href":1136,"dataGaName":1137,"dataGaLocation":840},"https://handbook.gitlab.com/","handbook",{"text":1139,"config":1140},"Investor Relations",{"href":1141,"dataGaName":1142,"dataGaLocation":840},"https://ir.gitlab.com/overview/default.aspx","investor relations",{"text":1144,"config":1145},"Trust Center",{"href":1146,"dataGaName":1147,"dataGaLocation":840},"/de-de/security/","trust center",{"text":1149,"config":1150},"AI Transparency Center",{"href":1151,"dataGaName":1152,"dataGaLocation":840},"/de-de/ai-transparency-center/","ai transparency center",{"text":1154,"config":1155},"Newsletter",{"href":1156,"dataGaName":1157,"dataGaLocation":840},"/company/contact/#contact-forms","newsletter",{"text":1159,"config":1160},"Presse",{"href":1161,"dataGaName":1162,"dataGaLocation":840},"/press/","press",{"text":1164,"config":1165,"menu":1166},"Kontakt",{"dataNavLevelOne":1110},{"type":891,"columns":1167},[1168],{"items":1169},[1170,1175,1180],{"text":1171,"config":1172},"Vertrieb kontaktieren",{"href":1173,"dataGaName":1174,"dataGaLocation":840},"/de-de/sales/","talk to sales",{"text":1176,"config":1177},"Support-Portal",{"href":1178,"dataGaName":1179,"dataGaLocation":840},"https://support.gitlab.com/hc/en-us","support portal",{"text":1181,"config":1182},"Kundenportal",{"href":1183,"dataGaName":1184,"dataGaLocation":840},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":1186,"login":1187,"suggestions":1194},"Schließen",{"text":1188,"link":1189},"Um Repositorys und Projekte zu durchsuchen, melde dich an bei",{"text":1190,"config":1191},"gitlab.com",{"href":854,"dataGaName":1192,"dataGaLocation":1193},"search login","search",{"text":1195,"default":1196},"Vorschläge",[1197,1199,1204,1206,1211,1216],{"text":871,"config":1198},{"href":876,"dataGaName":871,"dataGaLocation":1193},{"text":1200,"config":1201},"Codevorschläge (KI)",{"href":1202,"dataGaName":1203,"dataGaLocation":1193},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":907,"config":1205},{"href":909,"dataGaName":907,"dataGaLocation":1193},{"text":1207,"config":1208},"GitLab auf AWS",{"href":1209,"dataGaName":1210,"dataGaLocation":1193},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":1212,"config":1213},"GitLab auf Google Cloud",{"href":1214,"dataGaName":1215,"dataGaLocation":1193},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":879,"config":1217},{"href":884,"dataGaName":1218,"dataGaLocation":1193},"Why GitLab?",{"freeTrial":1220,"mobileIcon":1225,"desktopIcon":1230,"secondaryButton":1233},{"text":1221,"config":1222},"Kostenlos testen",{"href":1223,"dataGaName":845,"dataGaLocation":1224},"https://gitlab.com/-/trials/new/","nav",{"altText":1226,"config":1227},"GitLab-Symbol",{"src":1228,"dataGaName":1229,"dataGaLocation":1224},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":1226,"config":1231},{"src":1232,"dataGaName":1229,"dataGaLocation":1224},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":1004,"config":1234},{"href":1235,"dataGaName":1236,"dataGaLocation":1224},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/get-started/","get started",{"freeTrial":1238,"mobileIcon":1242,"desktopIcon":1244},{"text":1239,"config":1240},"Mehr über GitLab Duo erfahren",{"href":876,"dataGaName":1241,"dataGaLocation":1224},"gitlab duo",{"altText":1226,"config":1243},{"src":1228,"dataGaName":1229,"dataGaLocation":1224},{"altText":1226,"config":1245},{"src":1232,"dataGaName":1229,"dataGaLocation":1224},{"button":1247,"mobileIcon":1252,"desktopIcon":1254},{"text":1248,"config":1249},"/Option",{"href":1250,"dataGaName":1251,"dataGaLocation":1224},"#contact","switch",{"altText":1226,"config":1253},{"src":1228,"dataGaName":1229,"dataGaLocation":1224},{"altText":1226,"config":1255},{"src":1256,"dataGaName":1229,"dataGaLocation":1224},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1773335277/ohhpiuoxoldryzrnhfrh.png",{"freeTrial":1258,"mobileIcon":1263,"desktopIcon":1265},{"text":1259,"config":1260},"Zurück zur Preisübersicht",{"href":991,"dataGaName":1261,"dataGaLocation":1224,"icon":1262},"back to pricing","GoBack",{"altText":1226,"config":1264},{"src":1228,"dataGaName":1229,"dataGaLocation":1224},{"altText":1226,"config":1266},{"src":1232,"dataGaName":1229,"dataGaLocation":1224},{"title":1268,"button":1269,"config":1273},"GitLab Orbit ist da: die Kontextebene für KI-Agenten",{"text":882,"config":1270},{"href":1271,"dataGaName":1272,"dataGaLocation":840},"/de-de/gitlab-orbit/","orbit",{"layout":1274,"disabled":825},"release",{"data":1276},{"text":1277,"source":1278,"edit":1284,"contribute":1289,"config":1294,"items":1299,"minimal":1505},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":1279,"config":1280},"Quelltext der Seite anzeigen",{"href":1281,"dataGaName":1282,"dataGaLocation":1283},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":1285,"config":1286},"Diese Seite bearbeiten",{"href":1287,"dataGaName":1288,"dataGaLocation":1283},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":1290,"config":1291},"Beteilige dich",{"href":1292,"dataGaName":1293,"dataGaLocation":1283},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":1295,"facebook":1296,"youtube":1297,"linkedin":1298},"https://twitter.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[1300,1345,1398,1440,1472],{"title":989,"links":1301,"subMenu":1316},[1302,1306,1311],{"text":1303,"config":1304},"Tarife anzeigen",{"href":991,"dataGaName":1305,"dataGaLocation":1283},"view plans",{"text":1307,"config":1308},"Vorteile von Premium",{"href":1309,"dataGaName":1310,"dataGaLocation":1283},"/de-de/pricing/premium/","why premium",{"text":1312,"config":1313},"Vorteile von Ultimate",{"href":1314,"dataGaName":1315,"dataGaLocation":1283},"/de-de/pricing/ultimate/","why ultimate",[1317],{"title":1164,"links":1318},[1319,1321,1323,1325,1330,1335,1340],{"text":1171,"config":1320},{"href":1173,"dataGaName":850,"dataGaLocation":1283},{"text":1176,"config":1322},{"href":1178,"dataGaName":1179,"dataGaLocation":1283},{"text":1181,"config":1324},{"href":1183,"dataGaName":1184,"dataGaLocation":1283},{"text":1326,"config":1327},"Status",{"href":1328,"dataGaName":1329,"dataGaLocation":1283},"https://status.gitlab.com/","status",{"text":1331,"config":1332},"Nutzungsbedingungen",{"href":1333,"dataGaName":1334,"dataGaLocation":1283},"/terms/","terms of use",{"text":1336,"config":1337},"Datenschutzerklärung",{"href":1338,"dataGaName":1339,"dataGaLocation":1283},"/de-de/privacy/","privacy statement",{"text":1341,"config":1342},"Cookie-Einstellungen",{"dataGaName":1343,"dataGaLocation":1283,"id":1344,"isOneTrustButton":131},"cookie preferences","ot-sdk-btn",{"title":887,"links":1346,"subMenu":1355},[1347,1351],{"text":1348,"config":1349},"DevSecOps-Plattform",{"href":869,"dataGaName":1350,"dataGaLocation":1283},"devsecops platform",{"text":1352,"config":1353},"KI-unterstützte Entwicklung",{"href":876,"dataGaName":1354,"dataGaLocation":1283},"ai-assisted development",[1356],{"title":1357,"links":1358},"Themen",[1359,1363,1368,1373,1378,1383,1388,1393],{"text":907,"config":1360},{"href":1361,"dataGaName":1362,"dataGaLocation":1283},"/de-de/topics/ci-cd/","cicd",{"text":1364,"config":1365},"GitOps",{"href":1366,"dataGaName":1367,"dataGaLocation":1283},"/de-de/topics/gitops/","gitops",{"text":1369,"config":1370},"DevOps",{"href":1371,"dataGaName":1372,"dataGaLocation":1283},"/de-de/topics/devops/","devops",{"text":1374,"config":1375},"Versionskontrolle",{"href":1376,"dataGaName":1377,"dataGaLocation":1283},"/de-de/topics/version-control/","version control",{"text":1379,"config":1380},"DevSecOps",{"href":1381,"dataGaName":1382,"dataGaLocation":1283},"/de-de/topics/devsecops/","devsecops",{"text":1384,"config":1385},"Cloud-nativ",{"href":1386,"dataGaName":1387,"dataGaLocation":1283},"/de-de/topics/cloud-native/","cloud native",{"text":1389,"config":1390},"KI für das Programmieren",{"href":1391,"dataGaName":1392,"dataGaLocation":1283},"/de-de/topics/devops/ai-for-coding/","ai for coding",{"text":1394,"config":1395},"Agentische KI",{"href":1396,"dataGaName":1397,"dataGaLocation":1283},"/de-de/topics/agentic-ai/","agentic ai",{"title":1399,"links":1400},"Lösungen",[1401,1404,1406,1411,1415,1418,1421,1424,1426,1428,1430,1435],{"text":932,"config":1402},{"href":927,"dataGaName":1403,"dataGaLocation":1283},"Application Security Testing",{"text":919,"config":1405},{"href":903,"dataGaName":904,"dataGaLocation":1283},{"text":1407,"config":1408},"Agile Entwicklung",{"href":1409,"dataGaName":1410,"dataGaLocation":1283},"/de-de/solutions/agile-delivery/","agile delivery",{"text":1412,"config":1413},"SCM",{"href":916,"dataGaName":1414,"dataGaLocation":1283},"source code management",{"text":907,"config":1416},{"href":909,"dataGaName":1417,"dataGaLocation":1283},"continuous integration & delivery",{"text":958,"config":1419},{"href":960,"dataGaName":1420,"dataGaLocation":1283},"value stream management",{"text":1364,"config":1422},{"href":1423,"dataGaName":1367,"dataGaLocation":1283},"/de-de/solutions/gitops/",{"text":971,"config":1425},{"href":974,"dataGaName":975,"dataGaLocation":1283},{"text":977,"config":1427},{"href":980,"dataGaName":981,"dataGaLocation":1283},{"text":983,"config":1429},{"href":986,"dataGaName":987,"dataGaLocation":1283},{"text":1431,"config":1432},"Bildungswesen",{"href":1433,"dataGaName":1434,"dataGaLocation":1283},"/de-de/solutions/education/","education",{"text":1436,"config":1437},"Finanzdienstleistungen",{"href":1438,"dataGaName":1439,"dataGaLocation":1283},"/de-de/solutions/finance/","financial services",{"title":994,"links":1441},[1442,1444,1446,1448,1451,1453,1456,1458,1460,1462,1464,1466,1468,1470],{"text":1007,"config":1443},{"href":1009,"dataGaName":1010,"dataGaLocation":1283},{"text":1012,"config":1445},{"href":1014,"dataGaName":1015,"dataGaLocation":1283},{"text":1017,"config":1447},{"href":1019,"dataGaName":1020,"dataGaLocation":1283},{"text":1022,"config":1449},{"href":1024,"dataGaName":1450,"dataGaLocation":1283},"docs",{"text":1045,"config":1452},{"href":1047,"dataGaName":1048,"dataGaLocation":1283},{"text":1454,"config":1455},"Neuerungen",{"href":1105,"dataGaName":1106,"dataGaLocation":1283},{"text":1040,"config":1457},{"href":1042,"dataGaName":1043,"dataGaLocation":1283},{"text":1059,"config":1459},{"href":1061,"dataGaName":1062,"dataGaLocation":1283},{"text":1067,"config":1461},{"href":1069,"dataGaName":1070,"dataGaLocation":1283},{"text":1072,"config":1463},{"href":1074,"dataGaName":1075,"dataGaLocation":1283},{"text":1077,"config":1465},{"href":1079,"dataGaName":1080,"dataGaLocation":1283},{"text":1082,"config":1467},{"href":1084,"dataGaName":1085,"dataGaLocation":1283},{"text":1087,"config":1469},{"href":1089,"dataGaName":1090,"dataGaLocation":1283},{"text":1092,"config":1471},{"href":1094,"dataGaName":1095,"dataGaLocation":1283},{"title":1108,"links":1473},[1474,1476,1478,1480,1482,1484,1489,1494,1496,1498,1500],{"text":1116,"config":1475},{"href":1118,"dataGaName":1110,"dataGaLocation":1283},{"text":1121,"config":1477},{"href":1123,"dataGaName":1124,"dataGaLocation":1283},{"text":1129,"config":1479},{"href":1131,"dataGaName":1132,"dataGaLocation":1283},{"text":1134,"config":1481},{"href":1136,"dataGaName":1137,"dataGaLocation":1283},{"text":1139,"config":1483},{"href":1141,"dataGaName":1142,"dataGaLocation":1283},{"text":1485,"config":1486},"Nachhaltigkeit",{"href":1487,"dataGaName":1488,"dataGaLocation":1283},"/sustainability/","Sustainability",{"text":1490,"config":1491},"Vielfalt, Inklusion und Zugehörigkeit",{"href":1492,"dataGaName":1493,"dataGaLocation":1283},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":1144,"config":1495},{"href":1146,"dataGaName":1147,"dataGaLocation":1283},{"text":1154,"config":1497},{"href":1156,"dataGaName":1157,"dataGaLocation":1283},{"text":1159,"config":1499},{"href":1161,"dataGaName":1162,"dataGaLocation":1283},{"text":1501,"config":1502},"Transparenzerklärung zu moderner Sklaverei",{"href":1503,"dataGaName":1504,"dataGaLocation":1283},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"items":1506},[1507,1510,1513],{"text":1508,"config":1509},"Terms",{"href":1333,"dataGaName":1334,"dataGaLocation":1283},{"text":1511,"config":1512},"Cookies",{"dataGaName":1343,"dataGaLocation":1283,"id":1344,"isOneTrustButton":131},{"text":1514,"config":1515},"Datenschutz",{"href":1338,"dataGaName":1339,"dataGaLocation":1283},[1517],{"id":1518,"title":7,"body":820,"config":1519,"content":1522,"description":820,"extension":1525,"meta":1526,"navigation":131,"path":1527,"seo":1528,"stem":1529,"__hash__":1530},"blogAuthors/en-us/blog/authors/john-skarbek.yml",{"template":1520,"gitlabHandle":1521},"BlogAuthor","skarbek",{"name":7,"config":1523},{"headshot":1524},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1751303547/nq8dxitzoybran2r7crm.png","yml",{},"/en-us/blog/authors/john-skarbek",{},"en-us/blog/authors/john-skarbek","nCwAkCMUv4nyRXTlh0-D0dgPvTS8mamZO-9zskk_RKQ",[1532,1541,1549],{"title":1533,"description":1534,"heroImage":1535,"category":816,"date":1536,"authors":1537,"slug":1540,"externalUrl":820},"Confidential AI für GitLab Self-Hosted","KI-Coding-Agenten in GitLab Duo nutzen, ohne dass Quellcode eine hardwareverschlüsselte Grenze verlässt, und ohne eigene GPUs zu betreiben.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1773866173/vte9qh8rriznvyclhkes.png","2026-08-06",[1538,1539],"Mathias Ewald","Martin Paloncy","confidential-ai-for-gitlab-self-hosted",{"title":1542,"description":1543,"heroImage":1544,"category":816,"date":1545,"authors":1546,"slug":1548,"externalUrl":820},"Green DevOps: Warum CO2-Messung in die CI/CD-Pipeline gehört","Jeder Pipeline-Lauf verbraucht Energie, die nirgends sichtbar wird. Eco CI und Carmen machen diesen CO2-Ausstoß sichtbar, direkt in den Pipelines.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765809212/noh0mdfn9o94ry9ykura.png","2026-07-09",[1547],"Lysanne Pinto","green-devops-carbon-measurement-cicd-pipeline",{"title":1550,"description":1551,"heroImage":1552,"category":816,"date":1553,"authors":1554,"slug":1556,"externalUrl":820},"Was ist CI/CD? Bedeutung, Vorteile und Tool-Auswahl","Was CI/CD bedeutet, welche Vorteile die Einführung bringt und worauf bei der Tool-Auswahl zu achten ist.","https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663328/Blog/Hero%20Images/cicd3.jpg","2026-06-22",[1555],"GitLab","what-is-ci-cd",{"promotions":1558},[1559,1573,1584,1596],{"id":1560,"categories":1561,"header":1563,"text":1564,"button":1565,"image":1570},"ai-modernization",[1562],"ai","Hält KI, was uns versprochen wurde?","Das Quiz dauert maximal 5 Minuten.",{"text":1566,"config":1567},"Ermittle deinen KI-Reifegrad",{"href":1568,"dataGaName":1569,"dataGaLocation":1048},"/de-de/assessments/ai-modernization-assessment/","modernization assessment",{"config":1571},{"src":1572},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":1574,"categories":1575,"header":1576,"text":1564,"button":1577,"image":1581},"devops-modernization",[831,1382],"Verwaltest du Tool-Chaos oder stellst du Innovationen bereit?",{"text":1578,"config":1579},"Ermittle deinen DevOps-Reifegrad",{"href":1580,"dataGaName":1569,"dataGaLocation":1048},"/de-de/assessments/devops-modernization-assessment/",{"config":1582},{"src":1583},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":1585,"categories":1586,"header":1588,"text":1564,"button":1589,"image":1593},"security-modernization",[1587],"security","Tauschst du Schnelligkeit gegen Sicherheit ein?",{"text":1590,"config":1591},"Ermittle deinen Sicherheitsreifegrad",{"href":1592,"dataGaName":1569,"dataGaLocation":1048},"/de-de/assessments/security-modernization-assessment/",{"config":1594},{"src":1595},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"id":1597,"paths":1598,"header":1601,"text":1602,"button":1603,"image":1608},"github-azure-migration",[1599,1600],"migration-from-azure-devops-to-gitlab","integrating-azure-devops-scm-and-gitlab","Ist dein Team bereit für den Umzug von GitHub nach Azure?","GitHub stellt bereits auf Azure um. Finde heraus, was das für dich bedeutet.",{"text":1604,"config":1605},"Erfahre, wie GitLab im Vergleich zu GitHub abschneidet",{"href":1606,"dataGaName":1607,"dataGaLocation":1048},"/de-de/compare/gitlab-vs-github/github-azure-migration/","github azure migration",{"config":1609},{"src":1583},{"header":1611,"blurb":1612,"button":1613,"secondaryButton":1618},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":1614,"config":1615},"Kostenlosen Test starten",{"href":1616,"dataGaName":845,"dataGaLocation":1617},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/de-de/","feature",{"text":1171,"config":1619},{"href":1173,"dataGaName":850,"dataGaLocation":1617},1786803748859]