GitLab CI/CD: Einrichtung, Nutzung und Best Practices

29 September 2025
Summary: Dieser Artikel behandelt die Grundlagen von GitLab CI/CD, Installationsschritte, Pipeline-Beispiele und Best Practices. Lernen Sie CI/CD mit realen Szenarien, YAML-Dateien und praktischen Befehlen.

GitLab CI/CD: Einrichtung, Nutzung und Best Practices

Einführung

In der modernen Softwareentwicklung sind Continuous Integration (CI) und Continuous Delivery/Deployment (CD) zentrale Säulen der DevOps-Kultur.
GitLab integriert CI/CD direkt und bietet Entwicklern eine leistungsstarke, flexible und skalierbare Lösung.

In diesem Artikel lernen Sie:

  • Die Grundlagen von GitLab CI/CD,
  • Aufbau der .gitlab-ci.yml,
  • Installation eines GitLab Runners,
  • Realistische Pipeline-Beispiele,
  • Docker- und Kubernetes-Integration,
  • Best Practices für produktionsreife Pipelines.

Voraussetzungen

Vor dem Start benötigen Sie:

  • Ein GitLab-Konto (self-hosted oder gitlab.com),
  • Grundkenntnisse in Git,
  • Ein System mit Docker,
  • Ein einfaches Projekt (z. B. Python Flask, Node.js Express).

Schritt 1 – GitLab CI/CD Grundlagen

1.1 Was ist CI/CD?

  • CI (Continuous Integration): Entwickler integrieren regelmäßig Code in den Main-Branch, Tests laufen automatisch.
  • CD (Continuous Delivery/Deployment): Automatisierte Bereitstellung in Staging oder Produktion.

1.2 Wie GitLab CI/CD funktioniert

  • Pipelines bestehen aus Stages und Jobs.
  • Alles wird in .gitlab-ci.yml definiert.
  • Beispiel-Pipeline: build → test → deploy.
stages:
  - build
  - test
  - deploy

1.3 GitLab Runner

  • Ein Runner führt Jobs aus.
  • Kann lokal, auf Servern oder in Kubernetes installiert werden.

Schritt 2 – Erste Pipeline

2.1 Minimal .gitlab-ci.yml

stages:
  - build
  - test
  - deploy

build-job:
  stage: build
  script:
    - echo "Building the app..."

test-job:
  stage: test
  script:
    - echo "Running tests..."

deploy-job:
  stage: deploy
  script:
    - echo "Deploying..."

2.2 Jobs und Stages

  • Stages: Pipeline-Phasen (build, test, deploy).
  • Jobs: Aufgaben pro Stage.
  • Script: Befehle, die den Job definieren.

2.3 Artifacts und Cache

build-job:
  stage: build
  script:
    - mkdir dist
    - echo "Build output" > dist/output.txt
  artifacts:
    paths:
      - dist/

Schritt 3 – GitLab Runner Installation

3.1 Installation auf Linux

sudo apt-get install -y curl
curl -L --output gitlab-runner.deb https://gitlab-runner-downloads.s3.amazonaws.com/latest/deb/gitlab-runner_amd64.deb
sudo dpkg -i gitlab-runner.deb

3.2 Runner registrieren

sudo gitlab-runner register

Erforderliche Angaben:

  • GitLab URL: https://gitlab.com/
  • Token: Im Projekt-Setup zu finden
  • Executor: empfohlen docker

3.3 Docker Executor

[[runners]]
  name = "docker-runner"
  executor = "docker"
  [runners.docker]
    image = "python:3.10"
    privileged = true

Schritt 4 – Docker in Pipelines

4.1 Docker-in-Docker

image: docker:latest

services:
  - docker:dind

stages:
  - build

build-job:
  stage: build
  script:
    - docker build -t myapp .

4.2 Node.js Beispiel

image: node:18

stages:
  - install
  - test

install-job:
  stage: install
  script:
    - npm install

test-job:
  stage: test
  script:
    - npm test

4.3 Python Flask Beispiel

image: python:3.10

stages:
  - test

test-job:
  stage: test
  script:
    - pip install -r requirements.txt
    - pytest

Schritt 5 – Umgebungen und Deployment-Strategien

5.1 Staging-Umgebung

deploy-staging:
  stage: deploy
  script:
    - echo "Deploying to staging..."
  environment:
    name: staging
    url: https://staging.example.com

5.2 Manuelle Bestätigung

deploy-production:
  stage: deploy
  script:
    - echo "Deploying to production..."
  when: manual
  environment:
    name: production
    url: https://example.com

5.3 Blue-Green und Canary

  • Blue-Green: Zwei Umgebungen, eine live, eine inaktiv.
  • Canary: Neue Version für kleine Nutzergruppe.

Schritt 6 – Best Practices

  • Caching: Abhängigkeiten cachen.
  • Artifacts: Build-Ergebnisse weitergeben.
  • Secrets Management: GitLab CI/CD Variablen verwenden.
  • Parallel Jobs: Tests parallel laufen lassen.
  • Monitoring: Metriken mit Prometheus/Grafana überwachen.

Schritt 7 – Kubernetes-Integration

7.1 Deployment nach Kubernetes

deploy-k8s:
  stage: deploy
  image: bitnami/kubectl
  script:
    - kubectl apply -f k8s/deployment.yaml
  environment:
    name: production
    url: https://k8s.example.com

7.2 Helm Deployment

deploy-helm:
  stage: deploy
  script:
    - helm upgrade --install myapp ./chart

Fazit

In diesem Artikel haben Sie die Grundlagen von GitLab CI/CD gelernt:

  • Aufbau der .gitlab-ci.yml,
  • Runner-Installation,
  • Docker- und Kubernetes-Integration,
  • Umgebungsmanagement und Deployment-Strategien,
  • Best Practices.
Back to Article Page