[{"data":1,"prerenderedAt":759},["ShallowReactive",2],{"/de-de/blog/jenkins-to-gitlab-migration-made-easy":3,"navigation-de-de":38,"banner-de-de":441,"footer-de-de":451,"blog-post-authors-de-de-Fernando Diaz":656,"blog-related-posts-de-de-jenkins-to-gitlab-migration-made-easy":670,"assessment-promotions-de-de":710,"next-steps-de-de":749},{"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":34,"tagSlugs":35,"__hash__":37},"blogPosts/de-de/blog/jenkins-to-gitlab-migration-made-easy.yml","Jenkins To Gitlab Migration Made Easy",[7],"fernando-diaz",null,"devsecops",{"slug":11,"featured":12,"template":13},"jenkins-to-gitlab-migration-made-easy",true,"BlogPost",{"heroImage":15,"body":16,"authors":17,"updatedDate":19,"date":20,"title":21,"tags":22,"description":25,"category":9},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749663019/Blog/Hero%20Images/AdobeStock_519147119.jpg","GitLab ist die umfassendste KI-gestützte DevSecOps-Plattform. Das bedeutet, dass GitLab alles bietet, was du benötigst, um sichere Software schneller zu planen, zu entwickeln und bereitzustellen – alles in einem Tool.\n\nPlattformen vereinfachen die Integration verschiedener Tools (DIY-DevOps), um den Software-Entwicklungsprozess (SDLC) zu unterstützen. Da Jenkins keine Plattform ist, sind zusätzliche Tools erforderlich, um den Software-Entwicklungsprozess zu vervollständigen. Dieser DIY-DevOps-Ansatz erhöht die Komplexität der Toolchain, was die folgenden Nachteile mit sich bringt:\n\n* Bedarf an individuellem Support für die Integration und Orchestrierung von Tools\n* Schwierigkeiten bei der Wartung/Aktualisierung/Sicherung separater Tools\n* Ineffizienz bei der Evaluierung der Unternehmenstransformation\n* Schlechte Entwicklererfahrung\n* Zusätzliche Management-/Zeit-/Budgetkosten\n* Produktivitätsverlust\n* Ineffizienz im Hinblick auf Kontextwechsel und Zusammenarbeit\n\n![Import project selection](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752175993/Blog/ikr97sr9jclddeqdg7ew.png \"DIY-DevOps im Vergleich zu einer DevSecOps-Plattform\")\n\nAus diesen Gründen erwägen viele Jenkins-Teams, zu einer DevSecOps-Plattform zu migrieren. Wer nach einer leistungsfähigeren, zuverlässigeren und sichereren Lösung sucht, sollte GitLab wählen! GitLab ist kostenlos für Einsteiger(innen) und bietet verschiedene Abonnementstufen, je nachdem, welche Anforderungen dein Unternehmen hat. Weitere Informationen zu unseren Angeboten und Funktionen findest du auf unserer [Preisseite](https://about.gitlab.com/de-de/pricing/).\n\nIn diesem Blog erfährst du:\n\n* wie du eine Migration planst\n* wie du Repositories von anderen Tools für die Quellcodeverwaltung (SCM) zu GitLab migrierst\n* wie du CI/CD-Pipelines von Jenkins zu GitLab migrierst\n* welche weiteren Überlegungen du dir zu Migrationen machen solltest\n\n### Planung einer Migration\n\nBevor du eine Migration von einem anderen Tool zu GitLab CI/CD startest, solltest du zunächst einen Migrationsplan erstellen. Ein Migrationsplan ist ein wichtiger technischer Schritt, um Erwartungen festzulegen. CI/CD-Tools unterscheiden sich im Hinblick auf ihren Ansatz und Aufbau sowie ihre technischen Besonderheiten. Das bedeutet, dass Migrationen keine simplen, direkten Zuordnungen von Daten sind. Ein Migrationsplan bietet folgende Vorteile:\n\n* Er legt eine klare Vorstellung deiner Migrationsziele fest und kommuniziert sie. Dies hilft deinen Benutzer(innen) dabei, zu verstehen, warum sich der Aufwand lohnt. Der Nutzen wird deutlich, wenn die Migration abgeschlossen ist, aber die Beteiligten müssen sich dessen auch während der Migration bewusst sein.\n* Er ermöglicht die Unterstützung und Beteiligung der entsprechenden Führungsteams – dies trägt zum oben genannten Punkt bei.\n* Er bietet die Gelegenheit, Benutzer(innen) über Veränderungen aufzuklären.\n* Er findet Wege, um Teile der Migration zu sequenzieren oder zu verzögern und zu verhindern, dass nicht migrierte (oder teilweise migrierte) Zustände zu lange bestehen bleiben.\n* Er dokumentiert die Vorteile der Verbesserungen, die GitLab CI/CD bietet, und aktualisiert deine Implementierung im Rahmen der Umstellung.\n\nMit einem Migrationsplan kannst du einen Prozess einrichten, bei dem du mit minimalen Unterbrechungen langsam zu GitLab migrieren kannst. Dies kann bedeuten, dass Jenkins und GitLab parallel eingesetzt werden, während bestimmte Projekte zu GitLab verschoben und von Jenkins abgezogen werden.\n\n### Definition eines Change-Management-Prozesses\n\nDer Migrationsplan sollte einen effektiven Change-Management-Prozess definieren. Entwicklungs- und IT Operations-Teams, Cloud-Administrator(inn)en sowie Sicherheits- und Qualitätsteams haben möglicherweise keine Erfahrung mit GitLab und sie wissen möglicherweise nicht, warum du oder deine Führungskraft sich entschieden haben, diesen Weg einzuschlagen.\n\nWer von den Veränderungen betroffen ist, muss Folgendes wissen:\n\n* **Warum** die Veränderung vorgenommen wird\n* **Wie** der zukünftige Zustand aussehen wird\n* **Wie** das Unternehmen den neuen Zustand erreichen möchte\n* **Wo** weitere Informationen oder Unterstützung zu finden sind\n\nZu diesem Zweck solltest du die folgenden Schritte in Erwägung ziehen, um Veränderungen für diese funktionalen Rollen zu steuern:\n\n* **Analysiere den aktuellen Zustand**: Dokumentiere den aktuellen Zustand der Prozesse. Sammle Indikatoren als Basis. Ermittle, was im Hinblick auf CI/CD funktioniert und was nicht, indem du wichtige Teammitglieder befragst. Dokumentiere die Herausforderungen, die du feststellst, sowohl in quantitativer als auch in qualitativer Hinsicht. Du musst andere von der Vision und dem Grund für die Veränderung überzeugen. Je klarer du also die Problemstellung definieren kannst, desto einfacher wird es, die Zustimmung des gesamten Unternehmens zu gewinnen.\n* **Baue eine Vision auf**: Nun, da du die aktuellen Probleme quantitativ mithilfe von Basisindikatoren und qualitativ (mit den Worten deiner Teammitglieder) beschrieben hast, stelle eine Vision des zukünftigen Zustands vor. Erläutere, warum dies wichtig ist (stelle einen Zusammenhang zu geschäftlichen Erfolgsindikatoren her). Biete Live- sowie aufgezeichnete Demos an, um aufzuzeigen, welche Möglichkeiten es gibt, und vergleiche diese Vision mit dem aktuellen Zustand. Betone diese Botschaft auf mehreren Kanäle und in verschiedenen Medien – Chat-Gruppen, allgemeine Meetings, E-Mail-Benachrichtigungen, Banner-Benachrichtigungen auf GitLab usw.\n* **Kläre die Belegschaft auf**: Investiere in [GitLab-CI/CD-Schulungen (nur in englischer Sprache verfügbar)](https://university.gitlab.com/pages/ci-cd-training/), die von GitLab-Expert(inn)en durchgeführt werden. Evaluiere den Erwerb und das Verinnerlichen von Kenntnissen mithilfe von [GitLab-Zertifizierungen (nur in englischer Sprache verfügbar)](https://levelup.gitlab.com/pages/certifications).\n* **Kommuniziere Roadmap und Ressourcen**: Teile deinen Teammitgliedern den geplanten Zeitplan sowie die verfügbaren Ressourcen für die Migration mit. Nenne Community-Ressourcen wie Chat-Gruppen, Q&A-Boards oder die Kontaktzeiten von GitLab-Influencern oder -Influencerinnen, damit dein Team Fragen stellen und Unterstützung erhalten kann. Der Aufbau eines Belohnungssystems, das das Teams dazu anregt, frühzeitig umzusteigen und ihre Erfahrungen mit anderen Anwendergruppen zu teilen, wäre ein Pluspunkt!\n\nWenn du diese Elemente zu Beginn der Migration sicherstellst, stellst du die Weichen für ihren Erfolg.\n\n### Festlegung von Migrationszielen\n\nBevor du eine Migration durchführst, solltest du dir über deine Ziele im Klaren sein und wissen, wie du sie erreichen kannst. Einige Fragen, auf die du Antworten haben solltest, sind beispielsweise folgende:\n\n* Was ist dein Zeitplan für die Migration?\n* Wie ist dein Jenkins-Server aktuell konfiguriert?\n* Wie viele Projekte müssen migriert werden?\n* Wie komplex ist deine Pipeline?\n* Gibt es externe Abhängigkeiten, mehrere Pipeline-Trigger, parallele Builds usw.?\n* Wie/wo stellst du deinen Code bereit?\n* Was ist der Veröffentlichungs-/Überprüfungsprozess für die Bereitstellung von Code?\n* Ist der Workflow in Jenkins integriert oder gibt es einen separaten Workflow, der von Jenkins ausgelöst wird?\n* Welche Build-Artefakte oder Binärdateien sind für den Erfolg der Pipeline erforderlich?\n* Welche Plugins verwenden Jobs in Jenkins derzeit?\n* Welche Software ist auf den Jenkins-Agenten installiert?\n* Welche Lösung für die Quellcodeverwaltung verwendest du aktuell?\n* Verwenden deine Jenkins-Jobs gemeinsam genutzte Bibliotheken?\n* Welche Authentifizierungsmethode kommt für Jenkins zum Einsatz (Basic Authentication, LDAP/AD, SSO)?\n* Gibt es andere Projekte, auf die du von deiner Pipeline aus zugreifen musst?\n* Gibt es Zugangsdaten in Jenkins, die für den Zugriff auf externe Dienste verwendet werden?\n\nWenn du diese Fragen beantwortest, weißt du, wie du bei der Migration vorgehen solltest, wie lange sie dauert und wo du anfangen solltest. Wenn du einen Plan erstellt hast und dir die Erwartungen und möglichen Fallstricke bewusst sind, kannst du mit dem Migrationsprozess beginnen.\n\n### Voraussetzungen für die Migration\n\nSobald du einen Migrationsplan erstellt und alle Erwartungen an die Migration bedacht hast, kannst du mit der Einrichtung von GitLab beginnen. Hier sind einige empfohlene Voraussetzungen für die Migration:\n\n* Mache dich mit GitLab vertraut. Informiere dich über die [wichtigsten GitLab CI/CD-Funktionen (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/ci/index.html).\n* Folge den englichsprachigen Tutorials, um deine erste [GitLab-Pipeline](https://docs.gitlab.com/ee/ci/quick_start/index.html) und [komplexere Pipelines](https://docs.gitlab.com/ee/ci/quick_start/tutorial.html) zu generieren, die eine statische Website erstellen, testen und bereitstellen.\n* Lies die [Keyword-Referenz für .gitlab-ci.yml (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/ci/yaml/index.html).\n* Richte GitLab ein und konfiguriere es.\n* Teste deine GitLab-Instanz.\n\nSobald du mit GitLab vertraut bist und eine Instanz konfiguriert hast, kannst du deinem Migrationsplan folgen und damit beginnen, Projekte von Jenkins zu GitLab zu verschieben. Stelle sicher, dass deine GitLab-Instanz mithilfe von bewährten Methoden für GitLab und gemäß [Referenzarchitekturen (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/administration/reference_architectures/) ordnungsgemäß eingerichtet wurde.\n\n### Migration von Repositories zu GitLab\n\nEiner der wichtigsten Nachteile von Jenkins ist, dass es keine Lösung für die Quellcodeverwaltung (SCM, Source Code Management) bietet. Wenn du Jenkins verwendest, muss dein Code in einer separaten SCM-Lösung gespeichert werden, auf die Jenkins Zugriff haben muss. Da GitLab über eine integrierte Quellcodeverwaltung verfügt, ermöglicht der Umstieg von Jenkins auch die Migration der zuvor genutzten SCM-Lösung. Dies verringert die Kosten zusätzlich.\n\nGitLab bietet Tools, mit denen du dein Repository und seine Metadaten einfach zu GitLab verschieben kannst. Die folgenden Importer (nur in englischer Sprache verfügbar) unterstützen dich bei der Migration deiner Projekte zu GitLab:\n\n* [GitHub](https://docs.gitlab.com/ee/user/project/import/github.html)\n* [Eine weitere GitLab-Instanz](https://docs.gitlab.com/ee/user/project/settings/import_export.html)\n* [Bitbucket Cloud](https://docs.gitlab.com/ee/user/project/import/bitbucket.html)\n* [Bitbucket Server](https://docs.gitlab.com/ee/user/project/import/bitbucket_server.html)\n* [FogBugz](https://docs.gitlab.com/ee/user/project/import/fogbugz.html)\n* [Gitea](https://docs.gitlab.com/ee/user/project/import/gitea.html)\n* [Jira (nur Issues)](https://docs.gitlab.com/ee/user/project/import/jira.html)\n  – [Repo per Manifestdatei](https://docs.gitlab.com/ee/user/project/import/manifest.html)\n* [Repo per URL](https://docs.gitlab.com/ee/user/project/import/repo_by_url.html)\n\n\n![GitHub to GitLab Repo Exporter](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176002/Blog/ie2xrexhbcoq6m8rnhit.png \"Repoitory-Exporter von GitHub zu GitLab\")\n\n\u003Cp>\u003C/p>\n\nJeder Importer importiert unterschiedliche Daten aus einem Projekt. Lies die [Dokumentation zum Import und zur Migration von Projekten (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/user/project/import/), um mehr Informationen über die bereitgestellten Importer zu erhalten und zu erfahren, welche Daten zu GitLab migriert werden. Darüber hinaus kannst du [den Import von Gruppen und Projekten automatisieren (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/user/project/import/#automate-group-and-project-import) und eine benutzerdefinierte Lösung erstellen, welche die Anforderungen deines Unternehmens noch besser erfüllt:\n\n* [Professional Services](https://about.gitlab.com/de-de/services/)\n* [Migrations-Tools](https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/-/blob/master/docs/using-congregate.md#quick-start)\n* [Häufig gestellte Fragen zur Migration](https://gitlab.com/gitlab-org/professional-services-automation/tools/migration/congregate/-/blob/master/customer/famq.md)\n\n### So migrierst du ein Repository\n\nMit unseren integrierten Importern kannst du Repositories ganz einfach zu GitLab migrieren. In diesem Beispiel erfährst du, wie du ein Repo zusammen mit [seinen Ressourcen (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/user/project/import/github.html#imported-data) (Tickets, Pull Requests, Meilensteine usw.) aus GitHub zu GitLab kopierst. Um ein Repository aus einem anderen GitHub zu GitLab zu migrieren, führe die folgenden Schritte aus:\n\n1. Wähle oben in der linken Menüleiste **Neu erstellen (+)** aus.\n2. Wähle im Abschnitt „In GitLab“ **Neues Projekt/Repository** aus.\n\n3. Wähle **Projekt importieren** aus.\n\n\n![Import project selection](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176017/Blog/boowmmaqhbredxa3g92s.png \"Auswahl des zu importierenden Projekts\")\n\n\u003Cp>\u003C/p>\n\n4. Klicke auf die Schaltfläche **GitHub**.\n\n   * Wenn du GitLab Self-Managed verwendest, musst du [den GitHub-Importer aktivieren (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/administration/settings/import_and_export_settings.html#configure-allowed-import-sources).\n   * Beachte, dass andere Importer auf dieselbe Weise initiiert werden können.\n5. Jetzt kannst du:\n\n   * dich mit GitHub OAuth autorisieren: Wähle **Mit GitHub autorisieren** aus.\n   * einen persönlichen GitHub-Zugriffstoken verwenden:\n\n     * Gehe zu \u003Chttps://github.com/settings/tokens/new>.\n     * Gib im Feld **Notizen** eine Token-Beschreibung ein.\n     * Wähle den Geltungsbereich für das Repository aus.\n     * Um Beteiligte zu importieren, wähle optional den Geltungsbereich **read:org** aus.\n     * Klicke auf die Schaltfläche **Token generieren**.\n     * Füge auf der GitLab-Importseite im Feld „Persönlicher Zugriffstoken“ den persönlichen GitHub-Zugriffstoken ein.\n6. Klicke auf die Schaltfläche **Authentifizieren**.\n7. Wähle die Elemente aus, die du migrieren möchtest.\n8. Wähle die Projekte aus, die du migrieren möchtest, und wohin du sie migrieren möchtest.\n9. Klicke auf die Schaltfläche **Importieren**.\n\nNun sollte sich das importierte Projekt in deinem Arbeitsbereich befinden. Weitere Informationen über die Migration von GitHub zu GitLab findest du in diesem englischsprachigen Video:\n\n\u003C!-- blank line -->\n\n\u003Cfigure class=\"video_container\">\n  \u003Ciframe src=\"https://www.youtube.com/embed/0Id5oMl1Kqs?si=TQ5HI9aMwtzJMiMi\" frameborder=\"0\" allowfullscreen=\"true\"> \u003C/iframe>\n\u003C/figure>\n\u003C!-- blank line -->\n\nSobald du die Migration des Repositories abgeschlossen hast, kannst du deine Jenkins-Pipeline so einstellen, dass sie die Jenkins-Datei in GitLab nutzt. Lege dazu die Repository-URL für dein neu importiertes Projekt über das Jenkin-Pipeline-Konfigurationsmenü fest:\n\n\n![Jenkins Pipeline SCM settings](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176020/Blog/mu475liw66abcxbu2g6g.png \"SCM-Einstellungen für die Jenkins-Pipeline\")\n\n\u003Cp>\u003C/p>\n\nDies ist nützlich für die anfängliche Repo-Migrationsphase und hilft dir dabei, sowohl Jenkins als auch GitLab parallel zu verwenden. So kannst du Dienstunterbrechungen vermeiden, während du die CI/CD-Funktionalität migrierst.\n\nDarüber hinaus kannst du das [GitLab-Jenkins-Plugin](https://plugins.jenkins.io/gitlab-plugin/) als Hilfestellung bei der Migration nutzen. Mit diesem Plugin kann GitLab den Status von Jenkins-Builds auslösen und abrufen.\n\n### Migration von CI/CD-Pipelines\n\nSobald du deine Repositories zu GitLab migriert hast, kannst du mit der Migration deiner Jenkins-Pipelines zu GitLab fortfahren. Dieser Prozess kann relativ simpel sein, du solltest dazu jedoch die Konzepte und die Syntax von Jenkins und GitLab verstehen.\n\nJenkins bietet zwei verschiedene Arten von Syntax für die Definition von Pipelines: Declarative und Scripted. Dieser Leitfaden behandelt die Migration von Pipelines des Typs Declarative, da diese am häufigsten vorkommen.\n\n### Schritt-für-Schritt-Migration der Pipeline\n\nIn diesem Tutorial wird eine Jenkins-Datei (Groovy) im Vergleich zu einer GitLab-CI/CD-Konfigurationsdatei (YAML) analysiert, die einen in Golang geschriebenen Microservice generiert, testet und bereitstellt. Anschließend werden die Pipeline in GitLab aktiviert und die Ergebnisse angezeigt. Die Pipeline wird:\n\n* das Golang-Container-Image mit dem Tag **alpine** verwenden,\n* einen Job zur Erstellung des Golang-Codes in einer ausführbaren Binärdatei ausführen,\n\n  * die erstellte ausführbare Datei als Artefakt speichern,\n* einen Job ausführen, um Unit-Tests durchzuführen,\n* einen Jobs zur Bereitstellung im Staging ausführen.\n\n  * Dieser wird nur ausgeführt, wenn der Commit auf den Branch **Staging** abzielt,\n  * beginnt, nachdem die Phase **Test** erfolgreich abgeschlossen wurde,\n  * verwendet das erstellte ausführbare Artefakt aus dem vorherigen Job.\n\nUnten findest du die Pipeline-Definitionen aus Jenkins und GitLab sowie beschreibende Kommentare. Im [Meow-Migrationsprojekt](https://gitlab.com/gitlab-da/projects/blogs/meow-migration) kannst du die Pipeline in Aktion sehen.\n\nSchaue dir eine in Groovy geschriebene Jenkins-Datei an:\n\n```shell\n// Die höchste Ebene der Declarative-\n// Pipeline.\npipeline {\n\n  // Definiert den zu verwendenden Standard-Agenten,\n  // sofern nicht explizit in einem Job\n  // definiert.\n    agent any\n\n  // Definiert die Staging-Phasen, die in\n  // numerischer Reihenfolge ausgeführt werden. Jede Staging-Phase\n  // führt nur einen Job aus.\n    stages {\n\n    // Definiert den Namen der Staging-Phase.\n        stage('build') {\n      // Definiert das Container-Image,\n      // das für diesen Job verwendet werden soll. Dies überschreibt\n      // die Standardeinstellung 'agent any'.\n      // Das Jenkins-Docker-Plugin\n      // muss konfiguriert sein, damit dies\n      // ausgeführt wird.\n            agent { docker 'golang:alpine' }\n\n      // Definiert die Abfolge von Schritten,\n      // die bei der Ausführung der Staging-Phase\n      // befolgt werden soll.\n            steps {\n                sh 'go build -o bin/meow-micro'\n                sh 'chmod +x bin/meow-micro'\n            }\n\n      // Die Schritte, die nach Abschluss der\n      // Staging-Phase ausgeführt werden sollen.\n            post {\n              always {\n\n        // Speichert die Artefakte der Staging-Phase,\n        // die zur Verwendung in einem anderen Job\n        // generiert wurden.\n                archiveArtifacts artifacts: 'bin/meow-micro'\n                onlyIfSuccessful: true\n              }\n            }\n        }\n\n    stage('test') {\n            agent { docker 'golang:alpine' }\n            steps {\n                sh 'go test .'\n            }\n        }\n\n        stage('deploy') {\n      // Definiert die Bedingungen,\n      // die zur Ausführung des Jobs\n      // erfüllt sein müssen. In diesem Fall wird der\n      // Bereitstellungs-Job nur auf dem\n      // Staging-Branch ausgeführt.\n            when {\n              branch 'staging'\n            }\n            steps {\n                echo 'Deploying meow-micro to staging'\n        // Verwendet das Artefakt, das in der\n        // Build-Staging-Phase gespeichert wurde.\n                sh './bin/meow-micro'\n            }\n        }\n    }\n}\n```\n\nSchaue dir nun an, wie die gleiche Funktion in GitLab erstellt werden kann:\n\n```text\n# Definiert das zu verwendende Standard-Image,\n# sofern nicht explizit in einem Job\n# angegeben.\ndefault:\n  image: alpine:latest\n\n# Definiert die Reihenfolge der auszuführenden Staging-Phasen.\n# Jede Staging-Phase kann mehrere Jobs umfassen.\nstages:\n  - build\n  - test\n  - deploy\n\n# Definiert den Namen des Jobs.\ncreate-binary:\n # Definiert die Staging-Phase, in welcher der Job ausgeführt wird.\n  stage: build\n # Definiert das Container-Image, das für\n # diesen Job verwendet werden soll. Dies überschreibt die Standardeinstellung.\n  image: golang:alpine\n # Definiert die Reihenfolge der Schritte,\n # die bei der Ausführung des Jobs befolgt werden sollen.\n  script:\n    - go build -o bin/meow-micro\n    - chmod +x bin/meow-micro\n # Speichert die Job-Artefakte, die zur\n # Verwendung in einem anderen Job gespeichert wurden.\n  artifacts:\n    paths:\n      - bin/meow-micro\n    expire_in: 1 week\n\nunit-tests:\n  stage: test\n  image: golang:alpine\n  script:\n    - go test .\n # Definiert Befehle, die im Anschluss an den Job\n # ausgeführt werden sollen.\n after_script:\n  - echo \"Tests Complete\"\n\nstaging-deploy:\n  stage: deploy\n # Definiert die Befehle, die vor dem\n # eigentlichen Job ausgeführt werden sollen.\n  before_script:\n    - apk update\n  script:\n    - echo \"Deploying meow-micro to staging environment\"\n    - ./bin/meow-micro\n # Definiert die Bedingungen, die zur\n # Ausführung dieses Jobs erfüllt sein müssen. In\n # diesem Fall wird der Bereitstellungs-Job der Staging-Phase nur\n # auf dem Staging-Branch ausgeführt.\n  rules:\n    - if: $CI_COMMIT_BRANCH == 'staging'\n # Erlaubt die Verwendung der Artefakte, die im\n # Build-Job gespeichert wurden, in diesem Job.\n  artifacts:\n    paths:\n      - bin/meow-micro\n```\n\nWie du vielleicht bemerkt hast, gibt es viele Gemeinsamkeiten zwischen Jenkins und GitLab im Hinblick auf die Syntax. Dies vereinfacht die Pipeline-Migration. Sieh dir die umfassende Liste der [Funktions- und Konzeptvergleiche (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/ci/migration/jenkins.html#comparison-of-features-and-concepts) zwischen den beiden Tools an.\n\nNun, da du verstehst, wie man Jenkins in GitLab abbildet, kannst du damit beginnen, eine Pipeline mit der gleichen Funktionalität in GitLab zu erstellen. Um CI/CD zu migrieren, kannst du die folgenden Schritte ausführen:\n\n##### 1. Öffne das Repository, das du im obigen Abschnitt zu GitLab migriert hast.\n\n* Klicke oben in der linken Seitenleiste auf **Suchen oder aufrufen …**.\n* Wähle dein Projekt aus.\n\n##### 2. Öffne den [Pipeline-Editor (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/ci/pipeline_editor/).\n\n* Wähle in der linken Seitenleiste **Build > Pipeline-Editor** aus.\n* Klicke auf die Schaltfläche **Pipeline konfigurieren**.\n\n\n![Configure pipeline selection](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176029/Blog/nypfh01zhwgvzqc0xz3v.png \"Auswahl der Schaltfläche „Pipeline konfigurieren“\")\n\n\u003Cp>\u003C/p>\n\n##### 3. Befülle die Datei [.gitlab-ci.yml (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/ci/yaml/).\n\n* Füge den GitLab-CI-Pipeline-Code hinzu.\n* Prüfe, ob die Syntax korrekt ist.\n\n\n![Pipeline syntax validation](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176037/Blog/x3d4utfsnymye0lvphtf.png \"Validierung der Pipeline-Syntax\")\n\n\u003Cp>\u003C/p>\n\n* Visualisiere die Pipeline.\n\n\n![Pipeline visualization](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176043/Blog/hipzofpyywjxf62edzfv.png \"Visualisierung der Pipeline\")\n\n\u003Cp>\u003C/p>\n\n##### 4. Committe die Datei in den Main-Branch.\n\n* Füge eine Commit-Nachricht hinzu.\n* Stelle sicher, dass es sich um den Main-Branch handelt.\n* Klicke auf die Schaltfläche **Änderungen committen**.\n\n\n![Commit changes dialog](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176048/Blog/nn8bl7rdysabccoycfrk.png \"Dialog „Änderungen committen“\")\n\n\u003Cp>\u003C/p>\n\nSobald die Datei zusammengeführt wurde, wird die definierte Pipeline gestartet. Du kannst zu deinem Projekt zurückkehren und [die Pipeline anzeigen (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/ci/pipelines/#view-pipelines), indem du sie auf der Seite deines Projekts **Build > Pipelines** auswählst. Da sie auf dem **Main**-Branch ausgeführt wurde, siehst du nur den Job **create-binary** sowie die „unit-test“ Jobs. Der Job **staging-deploy** wird nur auf dem Staging-Branch ausgeführt.\n\n\n![Pipeline running on main branch](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176051/Blog/wfb4k8nkzpg28kpf2pzz.png \"Auf dem Main-Branch ausgeführte Pipeline\")\n\n\u003Cp>\u003C/p>\n\nBei der Erstellung eines Staging-Branches wird die folgende Pipeline gestartet.\n\n\n![Pipeline running on staging branch](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176053/Blog/e2jxedpolaniotgixpby.png \"Auf dem Staging-Branch ausgeführte Pipeline\")\n\n\u003Cp>\u003C/p>\n\nWenn du auf einen Job klickst, wird dessen Ausgabe angezeigt:\n\n\n![create-binary job output](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176056/Blog/fywzwbzkwcvc9zzakilh.png \"Ausgabe des Jobs create-binary\")\n\n\u003Cp>\u003C/p>\n\n\n![unit-tests job output input](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176061/Blog/ekmpd8ecanwwiena9xi9.png \"Eingabe/Ausgabe des Jobs unit-tests\")\n\n\u003Cp>\u003C/p>\n\n\n![staging-deploy job output](https://res.cloudinary.com/about-gitlab-com/image/upload/v1752176065/Blog/h7nqxszy50xdmnvhalfq.png \"Ausgabe des Jobs staging-deploy\")\n\n\u003Cp>\u003C/p>\n\nDu kannst sehen, wie das Artefakt im Job create-binary gespeichert und im Job staging-deploy verwendet wird. Und so einfach ist es, eine Pipeline von Jenkins zu GitLab zu migrieren!\n\n### Zusätzliche Überlegungen zur Migration\n\nEinige hilfreiche Überlegungen, die den Bereitstellungsprozess unserer Ansicht nach einfacher machen, sind folgende:\n\n* Versuche nicht, Aufgaben exakt als GitLab-Jobs zu replizieren. Nimm dir Zeit und schaue dir genauer an, was die aktuelle Pipeline bewirkt und welches Problem sie löst.\n* Einige Jenkins-Jobs sind möglicherweise zu komplex, um sofort zu GitLab migriert zu werden. Deshalb kann es von Vorteil sein, das [GitLab-Jenkins-Plugin](https://plugins.jenkins.io/gitlab-plugin/) zu verwenden, um Jenkins-Pipelines zu starten und ihre Ergebnisse direkt in GitLab anzuzeigen. Auf diese Weise kannst du bestimmte Aktionen langsam zu GitLab migrieren, bis die gesamte Pipeline verschoben werden kann.\n* Implementiere [Sicherheitsscanner und Codequalität (nur in englischer Sprache verfügbar)](https://docs.gitlab.com/ee/user/application_security/) mithilfe von integrierten Vorlagen, die GitLab von Anfang an bereitstellt. So kannst du die Sicherheit im Vorfeld kontrollieren und die Gefahr eines Sicherheitsverstoßes verringern.\n  Gestalte die CI/CD-Konfiguration nicht zu kompliziert und versuche nicht, alle Funktionsvorteile gleichzeitig zu nutzen. Modularisiere den Code und implementiere ihn in kleinen Iterationen.\n* Implementiere Funktionen zur Überwachung und Steuerung von Anfang an.\n* Bedenke, dass sich ein GitLab Runner (Go) möglicherweise anders verhält als ein Jenkins-Agent (Java). Die CPU-Auslastung und der Speicherverbrauch können unterschiedlich sein – achte darauf, sie im Laufe der Zeit miteinander zu vergleichen.\n* Ziehe in Erwägung, in automatische Skalierungsmechanismen zu investieren, und lege nicht benötigte Ressourcen am Wochenende oder außerhalb der Arbeitszeiten still.\n* Modernisiere die Anwendungsentwicklung, indem du deine Jobs containerisierst. Jenkins-Jobs laufen aktuell nicht in einem Container, sondern auf einem Jenkins-Agenten, der als VM ausgeführt wird.\n\nDiese Liste ist nicht erschöpfend, stellt aber einen guten Ausgangspunkt für einige Überlegungen dar, die du beachten solltest. Wenn du zusätzliche Hilfe benötigst, bietet GitLab [Professional Services](https://about.gitlab.com/de-de/get-help/) an, um dich bei deiner Migration zu unterstützen.\n\n### Mehr erfahren\n\nVielen Dank, dass du diesen Leitfaden gelesen hast! Ich hoffe, dass er dir dabei geholfen hat, besser zu verstehen, warum und wie du von Jenkins zu GitLab migrieren kannst. Noch nicht überzeugt? [Melde dich für eine kostenlose Testversion von GitLab an](https://about.gitlab.com/de-de/free-trial/) und erkenne den Nutzen einer DevSecOps-Plattform!\n\nHier findest du einige englischsprachige Ressourcen mit weiteren Informationen zu GitLab, den Vorteilen einer DevSecOps-Plattform und der Migration aus Jenkins:\n\n* [Migration von Jenkins](https://docs.gitlab.com/ee/ci/migration/jenkins.html)\n* [Planung einer Migration](https://docs.gitlab.com/ee/ci/migration/plan_a_migration.html)\n* [GitLab-Projektimporter](https://docs.gitlab.com/ee/user/project/import/)\n* [Tutorial: Einfache Migration von GitHub zu GitLab](https://about.gitlab.com/blog/github-to-gitlab-migration-made-easy/)\n* [Video: Einfache Migration von GitHub zu GitLab](https://youtu.be/0Id5oMl1Kqs?feature=shared)\n* [Von Jenkins zu GitLab: Der ultimative Leitfaden zur Modernisierung deiner CI/CD-Umgebung](https://about.gitlab.com/blog/jenkins-gitlab-ultimate-guide-to-modernizing-cicd-environment/)",[18],"Fernando Diaz","2025-02-13","2024-02-01","Migration von Jenkins zu GitLab leicht gemacht",[23,24],"CI/CD","DevSecOps","In diesem Schritt-für-Schritt-Leitfaden erfährst du, warum und wie du ganz einfach von Jenkins zu GitLab migrieren kannst.","yml",{},"/de-de/blog/jenkins-to-gitlab-migration-made-easy",{"ogTitle":21,"ogImage":15,"ogDescription":25,"ogSiteName":30,"noIndex":31,"ogType":32,"ogUrl":33,"title":21,"canonicalUrls":33,"description":25},"https://about.gitlab.com",false,"article","https://about.gitlab.com/blog/jenkins-to-gitlab-migration-made-easy","de-de/blog/jenkins-to-gitlab-migration-made-easy",[36,9],"cicd","0q4t4ywPHoaQbVx2gG6IlSkCKsgOJK271blYvcIv6tc",{"data":39},{"logo":40,"freeTrial":45,"sales":50,"login":55,"items":60,"search":368,"minimal":403,"duo":421,"pricingDeployment":431},{"config":41},{"href":42,"dataGaName":43,"dataGaLocation":44},"/de-de/","gitlab logo","header",{"text":46,"config":47},"Kostenlose Testversion anfordern",{"href":48,"dataGaName":49,"dataGaLocation":44},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com&glm_content=default-saas-trial/","free trial",{"text":51,"config":52},"Vertrieb kontaktieren",{"href":53,"dataGaName":54,"dataGaLocation":44},"/de-de/sales/","sales",{"text":56,"config":57},"Anmelden",{"href":58,"dataGaName":59,"dataGaLocation":44},"https://gitlab.com/users/sign_in/","sign in",[61,88,183,188,289,349],{"text":62,"config":63,"cards":65},"Plattform",{"dataNavLevelOne":64},"platform",[66,72,80],{"title":62,"description":67,"link":68},"Die intelligente Orchestrierungsplattform für DevSecOps",{"text":69,"config":70},"Erkunde unsere Plattform",{"href":71,"dataGaName":64,"dataGaLocation":44},"/de-de/platform/",{"title":73,"description":74,"link":75},"GitLab Duo Agent Platform","Agentische KI für den gesamten Softwareentwicklungszyklus",{"text":76,"config":77},"Lerne GitLab Duo kennen",{"href":78,"dataGaName":79,"dataGaLocation":44},"/de-de/gitlab-duo-agent-platform/","gitlab duo agent platform",{"title":81,"description":82,"link":83},"Gründe, die für GitLab sprechen","Erfahre, warum Unternehmen auf GitLab setzen",{"text":84,"config":85},"Mehr erfahren",{"href":86,"dataGaName":87,"dataGaLocation":44},"/de-de/why-gitlab/","why gitlab",{"text":89,"left":12,"config":90,"link":92,"lists":96,"footer":165},"Produkt",{"dataNavLevelOne":91},"solutions",{"text":93,"config":94},"Alle Lösungen anzeigen",{"href":95,"dataGaName":91,"dataGaLocation":44},"/de-de/solutions/",[97,121,143],{"title":98,"description":99,"link":100,"items":105},"Automatisierung","CI/CD und Automatisierung zur Beschleunigung der Bereitstellung",{"config":101},{"icon":102,"href":103,"dataGaName":104,"dataGaLocation":44},"AutomatedCodeAlt","/de-de/solutions/delivery-automation/","automated software delivery",[106,109,112,117],{"text":23,"config":107},{"href":108,"dataGaLocation":44,"dataGaName":23},"/de-de/solutions/continuous-integration/",{"text":73,"config":110},{"href":78,"dataGaLocation":44,"dataGaName":111},"gitlab duo agent platform - product menu",{"text":113,"config":114},"Quellcodeverwaltung",{"href":115,"dataGaLocation":44,"dataGaName":116},"/de-de/solutions/source-code-management/","Source Code Management",{"text":118,"config":119},"Automatisierte Softwarebereitstellung",{"href":103,"dataGaLocation":44,"dataGaName":120},"Automated software delivery",{"title":122,"description":123,"link":124,"items":129},"Sicherheit","Entwickle schneller, ohne die Sicherheit zu gefährden",{"config":125},{"href":126,"dataGaName":127,"dataGaLocation":44,"icon":128},"/de-de/solutions/application-security-testing/","security and compliance","ShieldCheckLight",[130,134,139],{"text":131,"config":132},"Application Security Testing",{"href":126,"dataGaName":133,"dataGaLocation":44},"Application security testing",{"text":135,"config":136},"Schutz der Software-Lieferkette",{"href":137,"dataGaLocation":44,"dataGaName":138},"/de-de/solutions/supply-chain/","Software supply chain security",{"text":140,"config":141},"Software Compliance",{"href":142,"dataGaName":140,"dataGaLocation":44},"/de-de/solutions/software-compliance/",{"title":144,"link":145,"items":150},"Bewertung",{"config":146},{"icon":147,"href":148,"dataGaName":149,"dataGaLocation":44},"DigitalTransformation","/de-de/solutions/visibility-measurement/","visibility and measurement",[151,155,160],{"text":152,"config":153},"Sichtbarkeit und Bewertung",{"href":148,"dataGaLocation":44,"dataGaName":154},"Visibility and Measurement",{"text":156,"config":157},"Wertstrommanagement",{"href":158,"dataGaLocation":44,"dataGaName":159},"/de-de/solutions/value-stream-management/","Value Stream Management",{"text":161,"config":162},"Analysen und Einblicke",{"href":163,"dataGaLocation":44,"dataGaName":164},"/de-de/solutions/analytics-and-insights/","Analytics and insights",{"title":166,"items":167},"GitLab für",[168,173,178],{"text":169,"config":170},"Enterprise",{"href":171,"dataGaLocation":44,"dataGaName":172},"/de-de/enterprise/","enterprise",{"text":174,"config":175},"Kleinunternehmen",{"href":176,"dataGaLocation":44,"dataGaName":177},"/de-de/small-business/","small business",{"text":179,"config":180},"den öffentlichen Sektor",{"href":181,"dataGaLocation":44,"dataGaName":182},"/de-de/solutions/public-sector/","public sector",{"text":184,"config":185},"Preise",{"href":186,"dataGaName":187,"dataGaLocation":44,"dataNavLevelOne":187},"/de-de/pricing/","pricing",{"text":189,"config":190,"link":192,"lists":196,"feature":276},"Ressourcen",{"dataNavLevelOne":191},"resources",{"text":193,"config":194},"Alle Ressourcen anzeigen",{"href":195,"dataGaName":191,"dataGaLocation":44},"/de-de/resources/",[197,230,248],{"title":198,"items":199},"Erste Schritte",[200,205,210,215,220,225],{"text":201,"config":202},"Installieren",{"href":203,"dataGaName":204,"dataGaLocation":44},"/de-de/install/","install",{"text":206,"config":207},"Kurzanleitungen",{"href":208,"dataGaName":209,"dataGaLocation":44},"/de-de/get-started/","quick setup checklists",{"text":211,"config":212},"Lernen",{"href":213,"dataGaLocation":44,"dataGaName":214},"https://university.gitlab.com/","learn",{"text":216,"config":217},"Produktdokumentation",{"href":218,"dataGaName":219,"dataGaLocation":44},"https://docs.gitlab.com/","product documentation",{"text":221,"config":222},"Best-Practice-Videos",{"href":223,"dataGaName":224,"dataGaLocation":44},"/de-de/getting-started-videos/","best practice videos",{"text":226,"config":227},"Integrationen",{"href":228,"dataGaName":229,"dataGaLocation":44},"/de-de/integrations/","integrations",{"title":231,"items":232},"Entdecken",[233,238,243],{"text":234,"config":235},"Kundenerfolge",{"href":236,"dataGaName":237,"dataGaLocation":44},"/de-de/customers/","customer success stories",{"text":239,"config":240},"Blog",{"href":241,"dataGaName":242,"dataGaLocation":44},"/de-de/blog/","blog",{"text":244,"config":245},"Remote",{"href":246,"dataGaName":247,"dataGaLocation":44},"https://handbook.gitlab.com/handbook/company/culture/all-remote/","remote",{"title":249,"items":250},"Vernetzen",[251,256,261,266,271],{"text":252,"config":253},"GitLab-Services",{"href":254,"dataGaName":255,"dataGaLocation":44},"/de-de/services/","services",{"text":257,"config":258},"Community",{"href":259,"dataGaName":260,"dataGaLocation":44},"/community/","community",{"text":262,"config":263},"Forum",{"href":264,"dataGaName":265,"dataGaLocation":44},"https://forum.gitlab.com/","forum",{"text":267,"config":268},"Veranstaltungen",{"href":269,"dataGaName":270,"dataGaLocation":44},"/events/","events",{"text":272,"config":273},"Partner",{"href":274,"dataGaName":275,"dataGaLocation":44},"/de-de/partners/","partners",{"backgroundColor":277,"textColor":278,"text":279,"image":280,"link":284},"#2f2a6b","#fff","Perspektiven für die Softwareentwicklung der Zukunft",{"altText":281,"config":282},"the source promo card",{"src":283},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758208064/dzl0dbift9xdizyelkk4.svg",{"text":285,"config":286},"Lies die News",{"href":287,"dataGaName":288,"dataGaLocation":44},"/de-de/the-source/","the source",{"text":290,"config":291,"lists":293},"Unternehmen",{"dataNavLevelOne":292},"company",[294],{"items":295},[296,301,307,309,314,319,324,329,334,339,344],{"text":297,"config":298},"Über",{"href":299,"dataGaName":300,"dataGaLocation":44},"/de-de/company/","about",{"text":302,"config":303,"footerGa":306},"Karriere",{"href":304,"dataGaName":305,"dataGaLocation":44},"/jobs/","jobs",{"dataGaName":305},{"text":267,"config":308},{"href":269,"dataGaName":270,"dataGaLocation":44},{"text":310,"config":311},"Geschäftsführung",{"href":312,"dataGaName":313,"dataGaLocation":44},"/company/team/e-group/","leadership",{"text":315,"config":316},"Team",{"href":317,"dataGaName":318,"dataGaLocation":44},"/company/team/","team",{"text":320,"config":321},"Handbuch",{"href":322,"dataGaName":323,"dataGaLocation":44},"https://handbook.gitlab.com/","handbook",{"text":325,"config":326},"Investor Relations",{"href":327,"dataGaName":328,"dataGaLocation":44},"https://ir.gitlab.com/","investor relations",{"text":330,"config":331},"Trust Center",{"href":332,"dataGaName":333,"dataGaLocation":44},"/de-de/security/","trust center",{"text":335,"config":336},"AI Transparency Center",{"href":337,"dataGaName":338,"dataGaLocation":44},"/de-de/ai-transparency-center/","ai transparency center",{"text":340,"config":341},"Newsletter",{"href":342,"dataGaName":343,"dataGaLocation":44},"/company/contact/#contact-forms","newsletter",{"text":345,"config":346},"Presse",{"href":347,"dataGaName":348,"dataGaLocation":44},"/press/","press",{"text":350,"config":351,"lists":352},"Kontakt",{"dataNavLevelOne":292},[353],{"items":354},[355,358,363],{"text":51,"config":356},{"href":53,"dataGaName":357,"dataGaLocation":44},"talk to sales",{"text":359,"config":360},"Support-Portal",{"href":361,"dataGaName":362,"dataGaLocation":44},"https://support.gitlab.com","support portal",{"text":364,"config":365},"Kundenportal",{"href":366,"dataGaName":367,"dataGaLocation":44},"https://customers.gitlab.com/customers/sign_in/","customer portal",{"close":369,"login":370,"suggestions":377},"Schließen",{"text":371,"link":372},"Um Repositories und Projekte zu durchsuchen, melde dich an bei",{"text":373,"config":374},"gitlab.com",{"href":58,"dataGaName":375,"dataGaLocation":376},"search login","search",{"text":378,"default":379},"Vorschläge",[380,382,387,389,394,399],{"text":73,"config":381},{"href":78,"dataGaName":73,"dataGaLocation":376},{"text":383,"config":384},"Code Suggestions (KI)",{"href":385,"dataGaName":386,"dataGaLocation":376},"/de-de/solutions/code-suggestions/","Code Suggestions (AI)",{"text":23,"config":388},{"href":108,"dataGaName":23,"dataGaLocation":376},{"text":390,"config":391},"GitLab auf AWS",{"href":392,"dataGaName":393,"dataGaLocation":376},"/de-de/partners/technology-partners/aws/","GitLab on AWS",{"text":395,"config":396},"GitLab auf Google Cloud",{"href":397,"dataGaName":398,"dataGaLocation":376},"/de-de/partners/technology-partners/google-cloud-platform/","GitLab on Google Cloud",{"text":400,"config":401},"Warum GitLab?",{"href":86,"dataGaName":402,"dataGaLocation":376},"Why GitLab?",{"freeTrial":404,"mobileIcon":409,"desktopIcon":414,"secondaryButton":417},{"text":405,"config":406},"Kostenlos testen",{"href":407,"dataGaName":49,"dataGaLocation":408},"https://gitlab.com/-/trials/new/","nav",{"altText":410,"config":411},"GitLab-Symbol",{"src":412,"dataGaName":413,"dataGaLocation":408},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203874/jypbw1jx72aexsoohd7x.svg","gitlab icon",{"altText":410,"config":415},{"src":416,"dataGaName":413,"dataGaLocation":408},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1758203875/gs4c8p8opsgvflgkswz9.svg",{"text":198,"config":418},{"href":419,"dataGaName":420,"dataGaLocation":408},"https://gitlab.com/-/trial_registrations/new?glm_source=about.gitlab.com/de-de/compare/gitlab-vs-github/","get started",{"freeTrial":422,"mobileIcon":427,"desktopIcon":429},{"text":423,"config":424},"Erfahre mehr über GitLab Duo",{"href":425,"dataGaName":426,"dataGaLocation":408},"/de-de/gitlab-duo/","gitlab duo",{"altText":410,"config":428},{"src":412,"dataGaName":413,"dataGaLocation":408},{"altText":410,"config":430},{"src":416,"dataGaName":413,"dataGaLocation":408},{"freeTrial":432,"mobileIcon":437,"desktopIcon":439},{"text":433,"config":434},"Zurück zur Preisübersicht",{"href":186,"dataGaName":435,"dataGaLocation":408,"icon":436},"back to pricing","GoBack",{"altText":410,"config":438},{"src":412,"dataGaName":413,"dataGaLocation":408},{"altText":410,"config":440},{"src":416,"dataGaName":413,"dataGaLocation":408},{"title":442,"button":443,"config":448},"Sieh dir an, wie agentische KI die Softwarebereitstellung transformiert",{"text":444,"config":445},"GitLab Transcend jetzt ansehen",{"href":446,"dataGaName":447,"dataGaLocation":44},"/de-de/events/transcend/virtual/","transcend event",{"layout":449,"icon":450},"release","AiStar",{"data":452},{"text":453,"source":454,"edit":460,"contribute":465,"config":470,"items":475,"minimal":648},"Git ist eine Marke von Software Freedom Conservancy und unsere Verwendung von „GitLab“ erfolgt unter Lizenz.",{"text":455,"config":456},"Quelltext der Seite anzeigen",{"href":457,"dataGaName":458,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/","page source","footer",{"text":461,"config":462},"Diese Seite bearbeiten",{"href":463,"dataGaName":464,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/content/","web ide",{"text":466,"config":467},"Beteilige dich",{"href":468,"dataGaName":469,"dataGaLocation":459},"https://gitlab.com/gitlab-com/marketing/digital-experience/about-gitlab-com/-/blob/main/CONTRIBUTING.md/","please contribute",{"twitter":471,"facebook":472,"youtube":473,"linkedin":474},"https://x.com/gitlab","https://www.facebook.com/gitlab","https://www.youtube.com/channel/UCnMGQ8QHMAnVIsI3xJrihhg","https://www.linkedin.com/company/gitlab-com",[476,499,554,581,615],{"title":62,"links":477,"subMenu":482},[478],{"text":479,"config":480},"DevSecOps-Plattform",{"href":71,"dataGaName":481,"dataGaLocation":459},"devsecops platform",[483],{"title":184,"links":484},[485,489,494],{"text":486,"config":487},"Tarife anzeigen",{"href":186,"dataGaName":488,"dataGaLocation":459},"view plans",{"text":490,"config":491},"Vorteile von Premium",{"href":492,"dataGaName":493,"dataGaLocation":459},"/de-de/pricing/premium/","why premium",{"text":495,"config":496},"Vorteile von Ultimate",{"href":497,"dataGaName":498,"dataGaLocation":459},"/de-de/pricing/ultimate/","why ultimate",{"title":500,"links":501},"Lösungen",[502,507,510,512,517,522,526,529,532,537,539,541,544,549],{"text":503,"config":504},"Digitale Transformation",{"href":505,"dataGaName":506,"dataGaLocation":459},"/de-de/topics/digital-transformation/","digital transformation",{"text":508,"config":509},"Sicherheit und Compliance",{"href":126,"dataGaName":133,"dataGaLocation":459},{"text":118,"config":511},{"href":103,"dataGaName":104,"dataGaLocation":459},{"text":513,"config":514},"Agile Entwicklung",{"href":515,"dataGaName":516,"dataGaLocation":459},"/de-de/solutions/agile-delivery/","agile delivery",{"text":518,"config":519},"Cloud-Transformation",{"href":520,"dataGaName":521,"dataGaLocation":459},"/de-de/topics/cloud-native/","cloud transformation",{"text":523,"config":524},"SCM",{"href":115,"dataGaName":525,"dataGaLocation":459},"source code management",{"text":23,"config":527},{"href":108,"dataGaName":528,"dataGaLocation":459},"continuous integration & delivery",{"text":156,"config":530},{"href":158,"dataGaName":531,"dataGaLocation":459},"value stream management",{"text":533,"config":534},"GitOps",{"href":535,"dataGaName":536,"dataGaLocation":459},"/de-de/solutions/gitops/","gitops",{"text":169,"config":538},{"href":171,"dataGaName":172,"dataGaLocation":459},{"text":174,"config":540},{"href":176,"dataGaName":177,"dataGaLocation":459},{"text":542,"config":543},"Öffentlicher Sektor",{"href":181,"dataGaName":182,"dataGaLocation":459},{"text":545,"config":546},"Bildungswesen",{"href":547,"dataGaName":548,"dataGaLocation":459},"/de-de/solutions/education/","education",{"text":550,"config":551},"Finanzdienstleistungen",{"href":552,"dataGaName":553,"dataGaLocation":459},"/de-de/solutions/finance/","financial services",{"title":189,"links":555},[556,558,560,562,565,567,569,571,573,575,577,579],{"text":201,"config":557},{"href":203,"dataGaName":204,"dataGaLocation":459},{"text":206,"config":559},{"href":208,"dataGaName":209,"dataGaLocation":459},{"text":211,"config":561},{"href":213,"dataGaName":214,"dataGaLocation":459},{"text":216,"config":563},{"href":218,"dataGaName":564,"dataGaLocation":459},"docs",{"text":239,"config":566},{"href":241,"dataGaName":242,"dataGaLocation":459},{"text":234,"config":568},{"href":236,"dataGaName":237,"dataGaLocation":459},{"text":244,"config":570},{"href":246,"dataGaName":247,"dataGaLocation":459},{"text":252,"config":572},{"href":254,"dataGaName":255,"dataGaLocation":459},{"text":257,"config":574},{"href":259,"dataGaName":260,"dataGaLocation":459},{"text":262,"config":576},{"href":264,"dataGaName":265,"dataGaLocation":459},{"text":267,"config":578},{"href":269,"dataGaName":270,"dataGaLocation":459},{"text":272,"config":580},{"href":274,"dataGaName":275,"dataGaLocation":459},{"title":290,"links":582},[583,585,587,589,591,593,595,599,604,606,608,610],{"text":297,"config":584},{"href":299,"dataGaName":292,"dataGaLocation":459},{"text":302,"config":586},{"href":304,"dataGaName":305,"dataGaLocation":459},{"text":310,"config":588},{"href":312,"dataGaName":313,"dataGaLocation":459},{"text":315,"config":590},{"href":317,"dataGaName":318,"dataGaLocation":459},{"text":320,"config":592},{"href":322,"dataGaName":323,"dataGaLocation":459},{"text":325,"config":594},{"href":327,"dataGaName":328,"dataGaLocation":459},{"text":596,"config":597},"Sustainability",{"href":598,"dataGaName":596,"dataGaLocation":459},"/sustainability/",{"text":600,"config":601},"Vielfalt, Inklusion und Zugehörigkeit",{"href":602,"dataGaName":603,"dataGaLocation":459},"/de-de/diversity-inclusion-belonging/","Diversity, inclusion and belonging",{"text":330,"config":605},{"href":332,"dataGaName":333,"dataGaLocation":459},{"text":340,"config":607},{"href":342,"dataGaName":343,"dataGaLocation":459},{"text":345,"config":609},{"href":347,"dataGaName":348,"dataGaLocation":459},{"text":611,"config":612},"Transparenzerklärung zu moderner Sklaverei",{"href":613,"dataGaName":614,"dataGaLocation":459},"https://handbook.gitlab.com/handbook/legal/modern-slavery-act-transparency-statement/","modern slavery transparency statement",{"title":616,"links":617},"Nimm Kontakt auf",[618,621,626,628,633,638,643],{"text":619,"config":620},"Sprich mit einem Experten/einer Expertin",{"href":53,"dataGaName":54,"dataGaLocation":459},{"text":622,"config":623},"Support",{"href":624,"dataGaName":625,"dataGaLocation":459},"/support/","get help",{"text":364,"config":627},{"href":366,"dataGaName":367,"dataGaLocation":459},{"text":629,"config":630},"Status",{"href":631,"dataGaName":632,"dataGaLocation":459},"https://status.gitlab.com/","status",{"text":634,"config":635},"Nutzungsbedingungen",{"href":636,"dataGaName":637,"dataGaLocation":459},"/terms/","terms of use",{"text":639,"config":640},"Datenschutzerklärung",{"href":641,"dataGaName":642,"dataGaLocation":459},"/de-de/privacy/","privacy statement",{"text":644,"config":645},"Cookie-Einstellungen",{"dataGaName":646,"dataGaLocation":459,"id":647,"isOneTrustButton":12},"cookie preferences","ot-sdk-btn",{"items":649},[650,652,654],{"text":634,"config":651},{"href":636,"dataGaName":637,"dataGaLocation":459},{"text":639,"config":653},{"href":641,"dataGaName":642,"dataGaLocation":459},{"text":644,"config":655},{"dataGaName":646,"dataGaLocation":459,"id":647,"isOneTrustButton":12},[657],{"id":658,"title":18,"body":8,"config":659,"content":661,"description":8,"extension":26,"meta":665,"navigation":12,"path":666,"seo":667,"stem":668,"__hash__":669},"blogAuthors/en-us/blog/authors/fernando-diaz.yml",{"template":660},"BlogAuthor",{"name":18,"config":662},{"headshot":663,"ctfId":664},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1749659556/Blog/Author%20Headshots/fern_diaz.png","fjdiaz",{},"/en-us/blog/authors/fernando-diaz",{},"en-us/blog/authors/fernando-diaz","lxRJIOydP4_yzYZvsPcuQevP9AYAKREF7i8QmmdnOWc",[671,686,698],{"content":672,"config":684},{"description":673,"authors":674,"heroImage":676,"date":677,"title":678,"body":679,"category":9,"tags":680},"Komm am 10. Februar 2026 auf die GitLab Transcend in München oder sei online live dabei. Finde heraus, wie du Produktivitätsgewinne mit Qualität, Zuverlässigkeit und Sicherheit in Einklang bringst.",[675],"Manav Khurana","https://res.cloudinary.com/about-gitlab-com/image/upload/v1767982271/e9ogyosmuummq7j65zqg.png","2026-01-12","KI verändert DevSecOps: Triff GitLab und erfahre, was als Nächstes kommt","**KI verspricht einen Quantensprung bei der Innovationsgeschwindigkeit, doch die meisten Software-Teams stoßen an ihre Grenzen.**\n\nLaut unserem brandneuen [Global DevSecOps Report mit Zahlen für Deutschland](https://learn.gitlab.com/de-developer-survey/report-de-de-de-devsecops-report-practitioner) macht KI-generierter Code mittlerweile 32 Prozent aller Entwicklungsarbeit aus. Dennoch berichten 75 Prozent der deutschen DevSecOps-Expert(inn)en, dass KI das Compliance-Management erschwert, und 78 Prozent sagen, dass agentische KI beispiellose Sicherheitsherausforderungen schaffen wird.\n\nDas ist das **KI-Paradoxon:** KI beschleunigt das Programmieren, aber die Software-Auslieferung verlangsamt sich, weil Teams damit kämpfen, den Code zu testen, abzusichern und zu deployen.\n\n> **[Lade dir unseren DevSecOps Report für Deutschland *kostenlos* herunter!](https://learn.gitlab.com/de-developer-survey/report-de-de-de-devsecops-report-practitioner)**\n\n## Produktivitätsgewinne treffen auf Workflow-Engpässe\n\nDas Problem ist nicht die KI selbst. Es liegt daran, wie Software heute entwickelt wird. Der traditionelle DevSecOps-Lebenszyklus enthält Hunderte kleiner Aufgaben, die Entwickler(innen) manuell bewältigen müssen: Tickets aktualisieren, Tests ausführen, Reviews anfordern, auf Freigaben warten, Merge-Konflikte beheben, Sicherheitsprobleme angehen. Diese Aufgaben kosten laut unserer Forschung jedes Teammitglied durchschnittlich sieben Stunden pro Woche.\n\nEntwicklungsteams produzieren Code schneller als je zuvor, aber dieser Code kriecht immer noch durch fragmentierte Toolchains, manuelle Übergaben und unverbundene Prozesse. Tatsächlich verwenden nahezu 60 Prozent der deutschen DevSecOps-Teams mehr als fünf Tools für die Softwareentwicklung insgesamt, und 45 Prozent nutzen mehr als fünf KI-Tools. Diese Fragmentierung schafft Kollaborationsbarrieren – 97 Prozent der deutschen DevSecOps-Fachleute erleben Faktoren, die die Zusammenarbeit im Software-Entwicklungszyklus einschränken.\n\nDie Antwort sind nicht noch mehr Tools. Es ist intelligente Orchestrierung, die Software-Teams und ihre KI-Agenten über Projekte und Release-Zyklen hinweg zusammenbringt – mit eingebauter Sicherheit, Governance und Compliance auf Enterprise-Niveau.\n\n## Auf der Suche nach tieferen Mensch-KI-Partnerschaften\n\nDevSecOps-Profis wollen nicht, dass KI übernimmt – sie wollen verlässliche Partnerschaften. Die große Mehrheit (81 Prozent) sagt, dass die Nutzung agentischer KI ihre Arbeitszufriedenheit erhöhen würde, und 38 Prozent stellen sich eine ideale Zukunft mit einer 50/50-Aufteilung zwischen menschlichen und KI-Beiträgen vor. Sie sind bereit, KI rund ein Drittel ihrer täglichen Aufgaben ohne menschliche Überprüfung anzuvertrauen, besonders bei Dokumentation, Test-Erstellung und Code-Reviews.\n\nWas wir deutlich von deutschen DevSecOps-Expert(inn)en gehört haben, ist, dass KI sie nicht ersetzen wird; vielmehr wird sie ihre Rollen grundlegend verändern. 80 Prozent der DevSecOps-Fachleute glauben, dass KI ihre Arbeit innerhalb von fünf Jahren erheblich verändern wird, und bemerkenswert ist, dass drei Viertel denken, dies wird mehr Engineering-Jobs schaffen, nicht weniger. Da das Programmieren mit KI einfacher wird, werden Ingenieur(inn)en, die Systeme entwerfen, Qualität sicherstellen und geschäftlichen Kontext anwenden können, sehr gefragt sein.\n\nEntscheidend ist, dass 84 Prozent zustimmen, dass es wesentliche menschliche Qualitäten gibt, die KI niemals vollständig ersetzen wird, einschließlich Kreativität, Innovation, Zusammenarbeit und strategische Vision.\n\nWie können Organisationen also die Lücke zwischen dem Versprechen der KI und der Realität fragmentierter Workflows überbrücken?\n\n## Komm zur GitLab Transcend: Erfahre, wie du mit agentischer KI echten Wert schaffst\n\nAm 10. Februar 2026 veranstaltet GitLab Transcend, wo wir zeigen werden, wie intelligente Orchestrierung die KI-gestützte Softwareentwicklung transformiert. Du erhältst einen ersten Blick auf GitLabs kommende Produkt-Roadmap und erfährst, wie Teams reale Herausforderungen lösen, indem sie Entwicklungs-Workflows mit KI modernisieren.\n\nOrganisationen, die in dieser neuen Ära gewinnen, balancieren KI-Einführung mit Sicherheit, Compliance und Plattform-Konsolidierung. KI bietet echte Produktivitätsgewinne, wenn sie durchdacht implementiert wird – nicht indem sie menschliche Entwickler(innen) ersetzt, sondern indem sie DevSecOps-Profis befreit, sich auf strategisches Denken und kreative Innovation zu konzentrieren.\n\n> ## **Registriere dich jetzt für unser Event in München oder die Online-Konferenz**\n>\n> [Hier geht's zur digitalen Transcend](https://about.gitlab.com/events/transcend/virtual/) und [hier zum Live-Event in München](https://about.gitlab.com/events/transcend/munich/). Sichere dir deinen Platz und erfahre, wie intelligente Orchestrierung deinen Software-Teams helfen kann, im Flow zu bleiben.\n> *Die Transcend in München wird auf Englisch stattfinden.*",[681,682,683],"AI/ML","DevOps platform","security",{"featured":12,"template":13,"slug":685},"ai-is-reshaping-devsecops-attend-gitlab-transcend-to-see-whats-next",{"content":687,"config":696},{"title":688,"category":9,"tags":689,"authors":690,"heroImage":692,"body":693,"description":694,"date":695},"Shift Left Security: DevSecOps richtig umsetzen – ein Praxisleitfaden",[682],[691],"GitLab Germany Team","https://res.cloudinary.com/about-gitlab-com/image/upload/v1765222301/czfqu7ajwcwyyn4beg6k.jpg","Traditionelle Sicherheitsmodelle geraten in modernen [DevOps-Umgebungen](https://about.gitlab.com/de-de/topics/devops/) schnell an ihre Grenzen. Sicherheitsprüfungen, die erst spät im Entwicklungsprozess erfolgen, verursachen hohe Kosten, lange Reaktionszeiten und unterbrechen agile Workflows. Der Shift Left Security-Ansatz begegnet diesen Herausforderungen, indem er Sicherheitsmaßnahmen frühzeitig integriert. Statt reaktiv auf Sicherheitslücken zu reagieren, werden Risiken bereits in der Entwicklungsphase erkannt und adressiert. Wir zeigen dir, wie dieser Ansatz funktioniert, welche Vorteile er bietet und wie du Shift Left Security umsetzt.\n\n## **Was ist Shift Left Security?**\n\nShift Left Security bezeichnet einen Ansatz in der Softwareentwicklung, bei dem Sicherheitsmaßnahmen möglichst früh im Entwicklungsprozess integriert werden.\n\nTraditionell wurden Sicherheitstests erst am Ende des Softwareentwicklungszyklus (SDLC) durchgeführt, zum Beispiel in der Test- oder Produktionsphase. Dieses Vorgehen führt oft zu höheren Kosten und längeren Entwicklungszeiten, wenn kritische Sicherheitslücken spät entdeckt werden.\n\nMit dem Shift Left Ansatz wird das Thema Sicherheit nun auf der Zeitachse der Anwendungsentwicklung nach links verschoben, sodass anfälliger Code früh entdeckt werden kann. Ziel ist es, Schwachstellen schon in den frühen Phasen wie Planung, Design oder Codierung zu erkennen und zu beheben, statt sie erst im späteren Verlauf oder nach dem Deployment zu adressieren.\n\n![Infografik So funktioniert Shift Left](https://res.cloudinary.com/about-gitlab-com/image/upload/v1765222295/lx0qqnnyse2ginovcnxb.jpg \"Schaubild: Shift Left Security, Sicherheitsmaßnahmen werden möglichst früh im Entwicklungsprozess integriert.\")\n\n## **Der Shift Left Ansatz**\n\nShift Left Security ist eine strategische Herangehensweise, bei der Sicherheit möglichst früh in den Entwicklungsprozess integriert wird – nicht durch ein einzelnes Tool, sondern durch eine Kombination verschiedener Maßnahmen.\n\nTypischerweise werden dafür Sicherheitstools entlang des Entwicklungszyklus eingesetzt, darunter:\n\n* **SCA (Software Composition Analysis)**: SCA erkennt Schwachstellen und Lizenzrisiken in Open-Source-Komponenten, indem es Paketverwaltung, Manifestdateien, Binärdateien und Container-Images analysiert. Die Ergebnisse werden in einer Software-Stückliste (sog.[ Software Bill of Materials](https://about.gitlab.com/de-de/blog/the-ultimate-guide-to-sboms/)) zusammengeführt und mit Schwachstellen- und Lizenzdatenbanken abgeglichen. So lassen sich Sicherheits- und Compliance-Probleme systematisch aufspüren und schnell adressieren.\n* **SAST (Static Application Security Testing)**: SAST ist ein White-Box-Verfahren, das den Quellcode analysiert, ohne die Anwendung auszuführen. Es spiegelt die Sichtweise von Entwickler(innen) wider und erkennt Schwachstellen früh im Softwareentwicklungszyklus, z. B. fehlende Eingabevalidierung oder unsichere Codemuster. Dadurch ist es besonders kosteneffizient. Laufzeit- oder umgebungsbezogene Probleme kann SAST allerdings nicht erfassen.\n* **DAST (Dynamic Application Security Testing)**: DAST ist ein Black-Box-Verfahren, das laufende Web-Anwendungen testet und sich an der Methodik potenzieller Angreifer(innen) orientiert. Es erkennt Schwachstellen wie XSS, fehlerhafte Authentifizierung oder Konfigurationsfehler zur Laufzeit – ohne Kenntnis des zugrundeliegenden Codes. DAST wird typischerweise in späten Phasen der Entwicklung oder in Testumgebungen eingesetzt und eignet sich ausschließlich für Web-Anwendungen und -Services.\n* **Secret Scanning:** Shift Left Security umfasst auch das Scannen von Container-Images und serverlosen Funktionen, da moderne Anwendungen zunehmend in Containern ausgeführt oder über serverlose Architekturen bereitgestellt werden. Beim Scannen eines [Container-Images](https://about.gitlab.com/de-de/topics/devsecops/beginners-guide-to-container-security/) wird der Inhalt auf Sicherheitslücken, Schwachstellen im Build-Prozess und fehlerhafte Konfigurationen geprüft. Ziel ist es, Probleme zu erkennen, bevor das Image in der Produktion verwendet wird. Das Scannen serverloser Funktionen erfordert spezielle Überwachungslösungen, die cloud-native Umgebungen abdecken und auch ohne klassische Serverinfrastruktur funktionieren.\n\nDiese Tools können einzeln oder kombiniert verwendet werden. Effektiver ist jedoch eine [automatisierte Sicherheitsplattform](https://about.gitlab.com/de-de/blog/why-are-organizations-moving-to-a-unified-devsecops-platform/), die Risiken in allen Phasen des Entwicklungszyklus erkennt – von der Codierung bis zur Bereitstellung. So können DevOps-Teams Schwachstellen frühzeitig und systematisch beheben.\n\n**Lesetipp:** [SAST vs. DAST - Die Unterschiede erklärt](https://about.gitlab.com/de-de/topics/devsecops/sast-vs-dast/)\n\n## **Vorteile der Shift Left Security**\n\nDie Linksverschiebung sicherheitsrelevanter Maßnahmen führt zu einer Reihe von Vorteilen für Unternehmen und Entwickler(innen).\n\n* **Frühzeitiges Erkennen von Sicherheitsrisiken:** Durch Sicherheitsanalysen direkt im Code oder bei der Integration von Abhängigkeiten lassen sich Schwachstellen erkennen, bevor sie in produktive Systeme gelangen. Dies verschafft Entwickler(innen) mehr Zeit für die Reaktion und reduziert die potenzielle Bedrohung (beispielsweise durch Exploits oder Datenlecks) erheblich.\n* **Geringere Kosten für Fehlerbehebung:** Je später ein Sicherheitsfehler entdeckt wird, desto teurer ist seine Behebung. Wird eine Schwachstelle bereits vor dem Build entdeckt, reicht oft eine einfache Codeänderung – ohne zusätzlichen Aufwand für Tests oder Deployments. Wird das Problem erst in der Produktion bemerkt, ist der Aufwand deutlich höher und der gesamte Prozess kann Wochen dauern. Frühes Eingreifen spart Zeit, senkt die Kosten und ermöglicht es Entwickler(innen), sich stärker auf neue Funktionen statt auf Notfallpatches zu konzentrieren.\n* **Schnellere Entwicklungszyklen:** Sicherheitsprobleme lassen sich schneller beheben, solange sie nur im Quellcode bestehen. Wird ein Problem erst kurz vor dem Release oder in der Produktion entdeckt, verlängert sich der Behebungsprozess deutlich – mit der Gefahr, gesetzte Fristen zu verpassen und die Time-to-Market zu verlangsamen.\n* **Bessere Codequalität:** Sicherheitsüberprüfungen fördern eine saubere Code-Architektur, konsistente Implementierung und verständlichen Code. So entstehen robuste und wartbare Anwendungen.\n* **Bessere Zusammenarbeit:** Shift Left Security fördert die Zusammenarbeitzwischen Entwickler(innen) und Security-Teams. Wird ein Sicherheitsproblem früh im Quellcode erkannt, können beide Seiten gemeinsam daran arbeiten, ohne Schuldzuweisungen oder Zeitdruck. Das verbessert die Kommunikation und stärkt das gegenseitige Verständnis.\n* **Reduziertes Risiko im Live-Betrieb:** Wird eine Schwachstelle erst im laufenden Betrieb entdeckt, sind schnelle und oft drastische Maßnahmen nötig – etwa das Abschalten der App. Wird die Schwachstelle hingegen bereits während der Entwicklung identifiziert, lässt sie sich mit geringem Aufwand und ohne größere Auswirkungen auf Nutzer(innen) beheben.\n\n***[Wie Dunelm, der britische Marktführer für Haushaltswaren, die Sicherheit \"nach links\" geschoben hat, steht in dieser ausführlichen Case Study.](https://about.gitlab.com/de-de/customers/dunelm/)***\n\n## **Best Practices für deinen Shift Left Security Ansatz**\n\nShift Left Security erfordert die frühzeitige und umfassende Integration von Sicherheitsmaßnahmen in den Entwicklungsprozess – idealerweise ab dem ersten Moment, in dem Entwickler(innen) mit dem Programmieren beginnen. Die Sicherheitsprüfung soll nicht nachgelagert, sondern integraler Bestandteil der täglichen Entwicklungsarbeit sein. Damit das gelingt, solltest du auf Best Practices zurückgreifen.\n\n### **\\#1 Integration von Sicherheitsmaßnahmen in die CI/CD-Pipeline**\n\nSicherheits-Scans sind ein zentrales Element des Shift-Left-Ansatzes. Ihre volle Wirkung entfalten sie aber nur, wenn die Ergebnisse unmittelbar in die[ DevOps-Toolkette](https://about.gitlab.com/de-de/topics/ci-cd/shift-left-devops/) eingebunden sind. Reports sollten direkt im CI/CD-Pipeline-Bericht angezeigt werden, sodass Entwickler(innen) sie ohne Umwege nutzen können. Zusätzlich sollte die Erstellung einer Software Bill of Materials (SBOM) automatisiert werden, um alle verwendeten Abhängigkeiten, Container-Images und serverlosen Funktionen transparent zu erfassen und systematisch auf bekannte Schwachstellen zu prüfen.\n\n### **\\#2 Anwendung von Security-Tools in der Entwicklungsumgebung**\n\nSicherheitsfunktionen sollten direkt in die Entwicklungsumgebung eingebunden werden, damit Schwachstellen bereits vor Übertragung in den Main Branch erkannt werden. Durch die Integration in die vertrauten Toolsets der Entwickler(innen) wird eine kontinuierliche Zusammenarbeit mit dem Security-Team ermöglicht und der Aufwand für nachträgliche Korrekturen deutlich reduziert.\n\n### **\\#3 Schulung von Entwickler(innen)**\n\nDamit Entwickler(innen) die Anwendungssicherheit bereits frühzeitig im Prozess berücksichtigen, ist eine intensive Schulung notwendig. Entwicklerteams müssen verstehen, warum sie Sicherheitsprüfungen frühzeitig durchführen – und welchen Beitrag das zur Gesamtqualität und Stabilität der Anwendung leistet. Dazu eignen sich praxisnahe und rollenbezogene Schulungsformate wie z. B. Code Labs, Code Guidelines oder Hands-on-Training.\n\n### **\\#4 Integration von Security Reviews in Code Reviews und Pull Requests**\n\nSicherheit sollte auch Teil von [Code Reviews](https://about.gitlab.com/de-de/topics/version-control/what-is-code-review/) sein. Teams können z. B. Checklisten mit sicherheitsrelevanten Aspekten verwenden. Pair Programming bietet zusätzlich die Möglichkeit, Sicherheit direkt beim Schreiben des Codes mitzudenken – vor allem in frühen Projektphasen.\n\n## **HackerOne + GitLab: Setze Shift Left Security einfach und kostengünstig um**\n\nEine der größten Herausforderungen für die Umsetzung der Shift Left Sicherheit für Entwicklerteams ist eine aufgeblähte Toolchain. Der Wechsel zwischen Tools und unklare Rollenverteilungen können die frühzeitige Integration von Sicherheitsüberprüfungen behindern.\n\nGitLab bietet mit HackerOne eine integrierte Lösung, die Security-Teams und Entwickler(innen) effektiv verbindet. Sicherheitslücken, die über HackerOne gemeldet und validiert werden, werden automatisch in GitLab als Tickets angelegt. Diese enthalten unter anderem:\n\n* Synchronisation von Kommentaren\n* Statusänderungen\n* Zuständigkeiten\n* Belohnungen\n* Fälligkeitsdaten\n\nDie Kommunikation erfolgt dabei bidirektional zwischen beiden Plattformen. Die Integration ermöglicht es somit Entwickler(innen), im gewohnten Workflow zu bleiben und Sicherheitslücken direkt zu bearbeiten.\n\n### **Auswirkungen der automatisierten Sicherheitsintegration**\n\nDie Integration von HackerOne und GitLab führt in der Praxis zu:\n\n* Bis zu 70 Prozent Zeitersparnis von der Entdeckung bis zur Behebung von Schwachstellen\n* Erhöhte Transparenz über den Sicherheitsstatus im gesamten Unternehmen\n* Effektivere Nutzung der Ressourcen im Security-Team\n* Gesteigerte Zufriedenheit der Entwickler(innen), da sie im bevorzugten Workflow bleiben können\n\n## **Keine Kompromisse bei der Shift Left Security**\n\nShift Left Security verschiebt das Thema Sicherheit weg von der Endkontrolle hin zur kontinuierlichen Begleitung des Entwicklungsprozesses. Durch Tools wie SAST, DAST, SCA und Container-Scanning lassen sich Schwachstellen frühzeitig identifizieren – noch bevor sie produktiv wirksam werden. Das senkt Kosten, reduziert Risiken und beschleunigt Entwicklungszyklen.\n\nErfolgreich ist dieser Ansatz jedoch nur, wenn Sicherheitsprüfungen eng in die[ CI/CD-Pipeline](https://about.gitlab.com/de-de/topics/ci-cd/cicd-pipeline/) und Entwicklungsumgebungen integriert werden und Entwickler(innen) durch gezielte Schulungen und klare Prozesse unterstützt werden. Die Fallstudie zu GitLab und HackerOne zeigt zudem, dass integrierte Plattformen Kontextwechsel vermeiden und die Effizienz deutlich steigern können. Entscheidend für eine nachhaltige Umsetzung ist eine Sicherheitskultur, in der Entwicklung und Security partnerschaftlich und auf Augenhöhe zusammenarbeiten.","Erkenne und behebe Sicherheitslücken früh mit Shift-Left-Security. Lerne aus HackerOnes GitLab-Story und erhalte praxisnahe DevSecOps-Tipps.","2025-12-08",{"featured":31,"template":13,"slug":697},"devsecops-shift-left-guide",{"content":699,"config":708},{"title":700,"description":701,"authors":702,"date":703,"body":704,"category":9,"tags":705,"heroImage":707},"Cloud-Kosten systematisch steuern – mit FinOps","FinOps verbindet Finance und IT, macht Cloud-Kosten transparent und wandelt reaktive Rechnungszahlung in proaktive Wert-Optimierung um.",[691],"2025-11-19","**FinOps** ist die Disziplin, die Cloud-Kosten-Management transformiert – von reaktiver Rechnungszahlung zu proaktiver Wert-Optimierung. Sie vereint Finance-, Technical- und Business-Teams um eine gemeinsame Sprache.\n\nWährend Cloud-Nutzung intensiviert wird, kämpfen Organisationen mit Ausgaben-Kontrolle. Ein Gartner-Report zeigt: **[69% der Organisationen überschritten 2023 ihr Cloud-Budget](https://www.gartner.com/peer-community/oneminuteinsights/omi-keeping-cloud-costs-check-it-leader-perspectives-rfz)**.\n\nDiese Unvorhersagbarkeit schwächt Finance-Vertrauen und erhöht Druck auf IT-Teams. FinOps bietet strukturierte Antwort: Kosten in Echtzeit sichtbar machen, Kultur gemeinsamer Verantwortung etablieren und jede Ausgabe an generiertem Business-Wert ausrichten.\n\nMehr als reine Kostenreduktions-Strategie ist FinOps ein operativer und kultureller Rahmen. Er ermöglicht Organisationen, Kontrolle über Cloud-Budgets zurückzugewinnen ohne Agilität oder Innovation zu opfern. Dieser Ansatz wird besonders relevant, wenn er direkt in [DevOps](https://about.gitlab.com/de-de/topics/devops/)- und [CI/CD](https://about.gitlab.com/de-de/topics/ci-cd/)-Praktiken integriert wird, die auf der [GitLab-Plattform](https://about.gitlab.com/de-de/why-gitlab/) verfügbar sind.\n\n> **[&rarr; GitLab Ultimate und GitLab Duo Enterprise kostenlos testen.](https://about.gitlab.com/de-de/free-trial/devsecops/?utm_medium=blog&utm_source=blog&utm_campaign=eg_emea_x_trial_x_de_blog_de)**\n\n## FinOps: Definition\n\nDer Begriff **FinOps**, Kurzform von *Financial Operations*, bezeichnet eine Disziplin, geboren aus einfacher Erkenntnis: explodierende Cloud-Nutzung erfordert neue finanzielle Governance. Klassische Budget-Methoden reichen nicht mehr, da sie Cloud-spezifische Schwankungen und Komplexität nicht berücksichtigen.\n\nFinOps geht weit über **Kostenreduktion** hinaus. Es geht nicht nur darum, Verschwendung zu tracken oder Rabatte mit Providern zu verhandeln. Es ist ein **kultureller und organisatorischer Ansatz**, der Finance-, Technology- und Business-Teams vereint. Sein Ziel: Innovation kanalisieren ohne zu bremsen, indem allen klare Sicht auf finanzielle Impacts ihrer **Infrastruktur**- und **Operations**-Entscheidungen gegeben wird.\n\nEine FinOps-Organisation sucht nicht, weniger auszugeben, sondern **besser auszugeben**: in die richtigen Ressourcen investieren, zum richtigen Zeitpunkt, mit messbarem Business-Return.\n\n## Warum wurde FinOps unverzichtbar?\n\nMulticloud setzt sich in den meisten Organisationen durch. AWS, Azure, Google Cloud und Private-Lösungen koexistieren, jeder mit eigenen Pricing-Modellen und Rabatten. Diese Diversität macht Budget-Tracking fragmentiert und verstärkt Governance-Komplexität.\n\nZu dieser Diversität kommen **Kosten-Schwankungen**. In selbst-gehosteten (On-Premise) Systemen war Budget im Voraus fixiert. In der Cloud kann jeder Load-Spike, Test-Projekt oder beschleunigtes Deployment die Rechnung über Nacht erhöhen. Diese Unvorhersagbarkeit unterminiert klassische Finance-Methoden und schafft dringenden Bedarf nach neuen Management-Praktiken.\n\nFinance-Services verlangen inzwischen mehr als unverständliche monatliche Cloud-Rechnungen. Sie erwarten verlässliche Prognosen, klare Ausgaben-Aufschlüsselung und Management-Logik vergleichbar mit anderen Unternehmens-Investitionen.\n\nDaher wurde Abstimmung zwischen Kosten und Business-Wert zentral. Jede Ausgabe muss mit einem Produkt oder Customer-Experience verknüpfbar sein. FinOps bringt diese gemeinsame Sprache, die technische Rechnung in Business-Dashboard transformiert.\n\nIn diesem Kontext entstand FinOps als strukturierter Rahmen zur Komplexitäts-Beherrschung.\n\n## Fundamentale FinOps-Prinzipien\n\nFinOps basiert auf geteilter Kultur, strukturiert um mehrere Schlüsselprinzipien:\n\n* **Team-übergreifende Kollaboration**: Kein Akteur kann allein steuern. Finance bringt Budget-Kontrolle, Engineering technische Realität, und Business-Teams Wert-Perspektive. Gemeinsam bauen sie eine **Organisation** fähig zu ausgewogenen Entscheidungen, aber diese Sharing-Logik allein reicht nicht.\n* **Verteilte Verantwortung und Governance**: Jedes Team übernimmt Kosten seiner technischen Entscheidungen (*you build it, you run it, you pay it*), aber zentrale Funktion definiert Standards, setzt KPIs und liefert Tools zur globalen Konsistenz-Aufrechterhaltung. Diese Governance beschränkt sich nicht auf Kosten – sie betrifft auch **Management** von Umgebungen und Ressourcen.\n* **Business-Wert als Kompass**: Cloud-Ausgabe macht nur Sinn, wenn sie zu Produkt, Service oder Customer-Experience beiträgt. FinOps misst diese direkte Verknüpfung zwischen Kosten und ROI.\n* **Transparenz und Reaktivität durch Daten**: Kosten müssen in Echtzeit sichtbar sein mit klarem, actionable Reporting – idealerweise in Workflows, wo Teams bereits arbeiten. Dies ist Bedingung für schnelle Korrektur und Vertrauensaufbau.\n* **Dezentralisierte Entscheidungsfindung mit zentraler Governance**: Teams treffen Echtzeit-Entscheidungen über ihre Ressourcen im Rahmen etablierter Leitplanken statt auf Approval-Chains zu warten.\n* **Variables Cloud-Modell**: Statt Schwankungen zu erleiden, macht FinOps sie zum Asset. Ressourcen an Bedarf anpassen, Skalierung automatisieren und via Reservierungen antizipieren transformiert Flexibilität in strategischen Hebel.\n* **Kontinuierliche Optimierungs-Kultur**: FinOps ist permanente Praxis, kein punktuelles Projekt. Teams identifizieren kontinuierlich Verschwendung, optimieren Ressourcen und verfeinern Prozesse während Cloud-Nutzung evolviert.\n\nDiese Prinzipien bilden das kulturelle Fundament. Für Umsetzung braucht es klaren Rahmen und definierten Lifecycle, fähig Organisationen über Zeit zu begleiten.\n\n## FinOps-Framework und Lifecycle\n\nZur Transformation dieser Prinzipien in nachhaltige Praktiken bietet die FinOps Foundation ein anerkanntes **Framework**. Es beschreibt Action-Domänen, involvierte Rollen und Reife-Stufen.\n\n### Die drei Framework-Domänen\n\nDas FinOps Foundation Framework basiert auf drei permanenten Domänen:\n\n* **Informieren**: Kosten sichtbar und verständlich machen durch Echtzeit-Finance-Daten-Sharing.\n* **Optimieren**: Ineffizienzen identifizieren, Ressourcen anpassen und kontinuierliche Optimierungs-Logik einführen.\n* **Operieren**: Nachhaltige Governance installieren und langfristig steuern.\n\nDiese Domänen sind nicht sequenziell – sie bilden kontinuierlichen Zyklus. Je besser informiert wird, desto besser optimiert wird, und desto mehr verankert sich Governance in der Organisation.\n\n### Rollen und Organisations-Reife\n\nJede Domäne mobilisiert spezifische Akteure: Finance für Budget-Kontrolle, Engineering für technische Übersetzung, Business-Teams für Business-Wert und Governance für gemeinsame Standards.\n\nFinOps-Einführung misst sich auch an Reife-Stufen (*crawl, walk, run*), die schrittweisen Weg einer Organisation zu vollständig beherrschtem Cloud-Management abbilden.\n\n### Die \"Crawl, Walk, Run\"-Stufen\n\nDas **Crawl-Walk-Run**-Modell beschreibt Organisations-Reife:\n\n* **Crawl**: Erste Schritte, Basic-Reporting, wenige nachverfolgte KPIs.\n* **Walk**: Praktiken-Integration, regelmäßige Optimierung, erste Rituale und Automatisierungen.\n* **Run**: Fortgeschrittene Reife, komplette Automatisierung, robuste Governance, FinOps in Unternehmensstrategie integriert.\n\nDieser Rahmen gibt Organisationen einen Kompass: er ermöglicht zu wissen, wo sie stehen und wie sie zu nachhaltiger Cloud-Ausgaben-Beherrschung fortschreiten.\n\n## Warum und wie FinOps-Modell einführen?\n\nFinOps-Ansatz umzusetzen bedeutet, diese Herausforderungen zu adressieren: Kosten-Schwankungen, Budget-Druck, Transparenz-Bedarf und Effizienz-Suche. Für Erfolg muss Deployment schrittweise sein und in realen Use Cases verankert.\n\n### Cloud-Kosten-Schwankungen und -Unvorhersagbarkeit beherrschen\n\nCloud funktioniert nach Nutzung, was Kosten natürlich schwanken lässt. Um zu vermeiden, dass diese Instabilität zu Budget-Risiko wird, erfordert FinOps: Consumption-Spikes zu kartieren, Budget-Steuerungs-Regeln zu setzen und Infrastruktur-Szenarien zu modellieren. Ziel: unvorhersagbare Ausgabe in kontrollierte Ausgabe transformieren.\n\n### Kosten und Business-Wert abstimmen\n\nSobald Transparenz erreicht ist, wird die Frage: *Schafft jede Ausgabe wirklich Wert?* FinOps verknüpft Kosten mit Produkten und Services und misst sie via Unit-Indikatoren wie Kosten pro User oder pro Transaktion. Dieser Ansatz ermöglicht Investment-Priorisierung nach Business-ROI und gibt Cloud-Kosten Bedeutung.\n\n### Governance und geteilte Regeln etablieren\n\nDamit diese Logik über Zeit hält, ist klare Governance notwendig. Tagging-Standards, Ressourcen-Owner-Definition und Budget-Attribution pro Team garantieren Nachvollziehbarkeit. Arbitrage-Prozesse ergänzen diesen Rahmen, validiert auf höchster Unternehmensebene. Governance wird dann Rückgrat des Modells.\n\n### Auf dedizierte Tools und Metriken setzen\n\nGovernance funktioniert nicht ohne verlässliche Daten. Cloud-Provider bieten eigene Tracking-Tools, aber diese bleiben oft fragmentiert und schwer vergleichbar. Die Herausforderung: Information zentralisieren und in derselben Umgebung umsetzbar machen. Einfache KPIs wie Kosten pro Workload, pro User oder Effizienz pro Team zeigen bereits die Verknüpfung zwischen Nutzung und Wert. Direkt in existierende Workflows integriert werden sie konkrete tägliche Steuerungs-Hebel.\n\n### Schrittweisen Ansatz verfolgen\n\nFinOps erfordert keine Komplettumstellung. Erfolg kommt durch schrittweise Einführung: FinOps-MVP starten wie ein [DevOps-Projekt](https://about.gitlab.com/de-de/solutions/devops-platform/), schnelle Gewinne einfahren und Umfang schrittweise erweitern. Ziel ist nicht sofortige Perfektion, sondern Aufbau nachhaltiger Dynamik, die sich in Kultur verankert.\n\n### Beispiele schneller Aktionen für FinOps-Strategie-Entwicklung\n\nEine FinOps-Strategie muss Wert schnell demonstrieren. Drei einfache Aktionen reichen oft, sichtbare Einsparungen zu generieren und den Ansatz zu validieren:\n\n* **Orphan-Ressourcen eliminieren**: Vergessene Storage-Volumes, ungenutzte IPs oder inaktive Test-Umgebungen. Diese diskreten Leaks repräsentieren oft mehrere Prozent der monatlichen Rechnung.\n* **Überbereitgestellte Instances rightsizen**: Viele Ressourcen laufen auf Bruchteil ihrer Kapazität. Größen-Anpassung reduziert Kosten sofort ohne Infrastruktur-Performance-Verlust.\n* **Nicht-kritische Umgebungen automatisch stoppen**: Nachts und Wochenenden abschalten, was nicht kontinuierlich laufen muss, generiert wiederkehrende, einfache, nachhaltige Einsparungen.\n\nDiese schnellen Gesten geben klares Signal: FinOps produziert sofortige Ergebnisse und bereitet Boden für nachhaltige Einführung.\n\n> **Die FinOps Foundation**: Gegründet 2019 und an Linux Foundation angegliedert, definiert die FinOps Foundation Disziplin-Standards und föderiert globale Community. Sie verbreitet anerkanntes Framework (Inform, Optimize, Operate), bietet Trainings und Zertifizierungen und organisiert Practitioner-Austausch. Sie ist heute die Referenz zur Strukturierung und Weiterentwicklung von FinOps-Praktiken.\n\n## FinOps-Herausforderungen und -Limitationen\n\nFinOps-Ansatz zu übernehmen ist kein ruhiger Fluss. Während die Disziplin durch Transparenz- und Kontroll-Versprechen überzeugt, konfrontiert Implementierung Organisationen mit mehreren wiederkehrenden Hindernissen.\n\n### Schwieriger Kultur-Wandel\n\nDie erste Herausforderung ist kulturell. FinOps reduziert sich nicht auf Tool- oder Dashboard-Deployment – es ist primär eine **neue Art zusammenzuarbeiten**. Finance-, Technology- und Business-Teams müssen Verantwortungen teilen, was Gewohnheiten durcheinanderbringt. Wie bei jeder Transformation ist **Widerstands gegen Veränderung** oft das erste Hindernis.\n\nDiese kulturelle Schwierigkeit führt zu einer weiteren.\n\n### Organisatorische Silos bremsen Kollaboration\n\nIn vielen Organisationen bleiben Teams in Silos eingeschlossen: Finance auf einer Seite, IT auf der anderen, Business-Teams separat. Ohne reibungslose Kommunikation ist Abstimmung zwischen Kosten und Business-Wert unmöglich. FinOps-Governance zielt präzise darauf ab, diese Trennwände zu durchbrechen, aber dies erfordert **starken Management-Support** zur Änderung organisatorischer Reflexe.\n\nUnd selbst wenn Teams kooperieren, tritt ein weiteres Hindernis auf: die Daten selbst.\n\n### Partielle Sichtbarkeit und komplexe Daten-Nutzung\n\nCloud-Kosten sind notorisch schwer zu lesen, besonders in Multicloud-Umgebungen. Daten existieren, bleiben aber oft **verstreut, roh und schwer zu interpretieren**. Teams haben nicht immer die richtigen Tools zur Zentralisierung und Umsetzbarkeit. FinOps-versprochene Transparenz kann daher auf technische und analytische Grenzen stoßen.\n\nDieser Klarheits-Mangel paart sich mit Kompetenz-Mangel.\n\n### Mangel an Kompetenzen und passenden Tools\n\nFinOps ist noch junge Disziplin, und erfahrene Profile sind rar. Viele Organisationen müssen Teams intern schulen, was Einführung schrittweise aber manchmal langsam macht. Diese Kompetenz-Entwicklung ist essenziell, da Erfolg gleichermaßen auf Kultur und Technik basiert.\n\nTools repräsentieren eine weitere Herausforderung. Organisationen haben zahlreiche Tools zur Cloud-Kosten-Analyse, aber diese Lösungen sind oft verstreut und schwer in einheitliche Vision zu integrieren. Das Ergebnis ist paradox: mehr Daten, aber nicht notwendigerweise mehr Klarheit.\n\nDie wahre Herausforderung ist daher, einen Tool-Ansatz zu bauen, der einfach bleibt und auf Organisations-Reife abgestimmt ist. Schrittweise vorgehen, Lesbarkeit und Effizienz priorisieren, verhindert Transformation eines Governance-Problems in Tool-Problem.\n\n### Inhärent instabiles Cloud-Budget\n\nSelbst mit solider Governance und performanten Tools bleiben Cloud-Kosten naturgemäß instabil. Load-Spikes, Hybrid-Umgebungen oder KI-Workloads schaffen schwer vorhersagbare Schwankungen. Budget-Prognosen müssen daher permanent revidiert werden, da unerwarteter Verbrauch selbst strengste Schätzungen entgleisen lassen kann.\n\nDiese Hindernisse machen FinOps nicht ungültig – sie zeigen, warum die Disziplin weiter evolvieren muss.\n\n## FinOps-Trends und Perspektiven\n\nDer FinOps-Ansatz steht erst am Anfang seiner Geschichte. Die Disziplin evolviert kontinuierlich zur Adressierung neuer Herausforderungen, die weit über reine Kosten-Fragen hinausgehen.\n\nDer erste Trend ist **Nachhaltigkeit**. Mehr und mehr Organisationen wollen Cloud-Ausgaben optimieren und gleichzeitig Carbon-Footprint reduzieren. FinOps öffnet sich zu **GreenOps**, wo ökonomische Performance und Umwelt-Verantwortung Hand in Hand gehen.\n\nDie zweite Evolution ist **Automatisierung**. Wachsende Cloud-Komplexität macht manuelle Steuerung unmöglich. FinOps-as-Code-Praktiken und KI-Nutzung zur Verbrauchs-Analyse oder automatischen Ressourcen-Anpassung werden zur Norm.\n\nDritte Transformation: Impact von **KI-Workloads**. Diese massiven, unvorhersagbaren Loads redefinieren Cloud-Finance-Governance. Sie erzwingen neue Prognose-Methoden, neue Indikatoren und noch engere Kollaboration zwischen Finance und Engineering.\n\nDie vierte Änderung ist **Konvergenz mit Platform Engineering**. Während Organisationen interne Development-Plattformen zur Standardisierung und Beschleunigung von Software-Delivery bauen, findet FinOps seinen effizientesten Umsetzungs-Kanal. Platform-Teams integrieren Kosten-Intelligence direkt in die Struktur, wie Software gebaut und deployed wird. Durch Self-Service-Portale, \"Golden Paths\" und Infrastruktur-Templates machen sie Kosten-Optimierung zu Standard-Verhalten statt Nachgedanke. Teams erhalten Echtzeit-Kosten-Feedback in Workflows, Ressourcen-Limits werden via Policy as Code durchgesetzt, und finanzielle Guardrails werden unsichtbare Plattform-Features. Es geht nicht nur darum, Kosten-Dashboards hinzuzufügen – es geht darum, fundamental zu überdenken, wie FinOps in großem Maßstab funktioniert.\n\nSchließlich bleibt Reife noch niedrig. Viele Organisationen machen erste Schritte, oft im \"Crawl\"-Stadium. Die Herausforderung kommender Jahre: **gemeinsam Reife steigern**, damit FinOps nicht punktuelle Initiative, sondern integrierte organisatorische Kompetenz wird.\n\nFinOps ist daher kein Selbstzweck, sondern schrittweiser Ansatz. Er ermöglicht, Cloud von unvorhersagbarem Kosten-Center in strategischen Hebel zu transformieren. Direkt in DevSecOps- und CI/CD-Praktiken integriert, bringt er Finance-, Technology- und Business-Teams noch enger um gemeinsame Ziele zusammen.\n\nDieser Weg beginnt mit Integration von FinOps-Praktiken direkt in existierende Development-Workflows. Hier kommen Plattformen wie GitLab ins Spiel.\n\n## GitLab und FinOps-Ansatz\n\nGitLab trägt zum FinOps-Ansatz bei durch Sichtbarkeit auf Development-Ressourcen-Nutzung. Die Plattform ermöglicht Tracking von Compute-Minuten-Verbrauch pro Projekt und Namespace, erleichtert damit Kosten-Zuordnung zu Teams. Zudem können Admins Nutzungs-Quotas konfigurieren und Verbrauchs-Trends via Usage-Dashboards überwachen. Dieser Ansatz hilft Organisationen, ihre [CI/CD-Pipeline](https://about.gitlab.com/de-de/topics/ci-cd/cicd-pipeline/)-bezogenen Ausgaben besser zu verstehen und Runner-Nutzung zu optimieren. Durch Integration dieser Metriken in Development-Workflows sensibilisiert GitLab Technical-Teams für Impact ihrer Praktiken auf operative Kosten.\n\n> **[&rarr; GitLab Ultimate und GitLab Duo Enterprise kostenlos testen.](https://about.gitlab.com/de-de/free-trial/devsecops/?utm_medium=blog&utm_source=blog&utm_campaign=eg_emea_x_trial_x_de_blog_de)**",[706,23],"DevOps","https://res.cloudinary.com/about-gitlab-com/image/upload/v1760520341/suhp5cpbgzqikafvl7p1.jpg",{"featured":31,"template":13,"slug":709},"what-is-finops",{"promotions":711},[712,726,738],{"id":713,"categories":714,"header":716,"text":717,"button":718,"image":723},"ai-modernization",[715],"ai-ml","Is AI achieving its promise at scale?","Quiz will take 5 minutes or less",{"text":719,"config":720},"Get your AI maturity score",{"href":721,"dataGaName":722,"dataGaLocation":242},"/assessments/ai-modernization-assessment/","modernization assessment",{"config":724},{"src":725},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/qix0m7kwnd8x2fh1zq49.png",{"id":727,"categories":728,"header":730,"text":717,"button":731,"image":735},"devops-modernization",[729,9],"product","Are you just managing tools or shipping innovation?",{"text":732,"config":733},"Get your DevOps maturity score",{"href":734,"dataGaName":722,"dataGaLocation":242},"/assessments/devops-modernization-assessment/",{"config":736},{"src":737},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138785/eg818fmakweyuznttgid.png",{"id":739,"categories":740,"header":741,"text":717,"button":742,"image":746},"security-modernization",[683],"Are you trading speed for security?",{"text":743,"config":744},"Get your security maturity score",{"href":745,"dataGaName":722,"dataGaLocation":242},"/assessments/security-modernization-assessment/",{"config":747},{"src":748},"https://res.cloudinary.com/about-gitlab-com/image/upload/v1772138786/p4pbqd9nnjejg5ds6mdk.png",{"header":750,"blurb":751,"button":752,"secondaryButton":757},"Beginne noch heute, schneller zu entwickeln","Entdecke, was dein Team mit der intelligenten Orchestrierungsplattform für DevSecOps erreichen kann.\n",{"text":753,"config":754},"Kostenlosen Test starten",{"href":755,"dataGaName":49,"dataGaLocation":756},"https://gitlab.com/-/trial_registrations/new?glm_content=default-saas-trial&glm_source=about.gitlab.com/","feature",{"text":51,"config":758},{"href":53,"dataGaName":54,"dataGaLocation":756},1772652051815]