Automating Environments with Trunk-Based Development


Bicycle

Einführung

Trunk-Based Development (TBD) bedeutet, dass alle Entwickler in einen einzigen Branch integrieren – meist main oder trunk. Es gibt kaum langlebige Branches oder Repository-Forks. Stattdessen werden Umgebungen dynamisch durch Deployment-Pipelines und Konfiguration abgeleitet.

Dieser Ansatz ist zentral für hochentwickelte DevOps- und „Continuous Deployment“-Teams.


Rückblick: Trunk-Based Development

Eine Pipeline, die TBD unterstützt, sollte Folgendes priorisieren:

  • Schnelles Feedback (Unit-Tests, Linting, Builds)
  • Jegliche Arbeit fließt direkt in main.
  • Deployments in alle Umgebungen erfolgen automatisiert ausgehend von main.
  • Schutzregeln für main (z. B. PR-Pflicht, Status-Checks)
  • Optionales Deployment per Feature Flags
  • Automatisiertes Mergen kurzlebiger Branches


Prinzipien für die Pipeline

  • Jeder Commit auf main wird automatisch in eine Integrations-/Dev-Umgebung deployed.
  • Deployments für Staging und Produktion erfolgen über Freigaben, Tags oder Commit-Auswahl – aber immer ausgehend von main.
  • Feature Flags steuern, welche Funktionen wo sichtbar sind.

Beispiel: GitHub Actions

 1# .github/workflows/deploy.yml
 2# .github/workflows/ci.yml
 3name: CI Pipeline
 4
 5on:
 6  push:
 7    branches: [main]
 8  pull_request:
 9    branches: [main]
10
11jobs:
12  lint:
13    ...
14
15  test:
16    ...
17
18  build:
19    ...
20
21  deploy-preview:
22    runs-on: ubuntu-latest
23    if: github.event_name == 'pull_request'
24    needs: build
25    steps:
26      - name: Deploy Preview
27        run: echo "Deploying PR preview environment"
28
29  deploy-production:
30    runs-on: ubuntu-latest
31    if: github.ref == 'refs/heads/main' && github.event_name == 'push'
32    needs: build
33    steps:
34      - name: Deploy to Production
35        run: echo "Deploying to production"
  • Pull Requests nach main erzeugen automatisch eine Vorschau-Umgebung.
  • Pushes auf main deployen automatisch in Produktion.

Beispiel: GitLab CI/CD

 1stages:
 2  - lint
 3  - test
 4  - build
 5  - deploy
 6
 7variables:
 8  NODE_ENV: test
 9
10lint:
11  stage: lint
12  ...
13
14test:
15  stage: test
16  needs: [lint]
17  ...
18
19build:
20  stage: build
21  needs: [test]
22  ...
23
24deploy_preview:
25  stage: deploy
26  needs: [build]
27  only:
28    - merge_requests
29  ...
30
31deploy_production:
32  stage: deploy
33  only:
34    - main
35  needs: [build]
36  ...

Best Practices

  • In Feature Flags investieren: Unverzichtbar – unfertige Funktionen blockieren main nicht und können gezielt aktiviert werden.
  • Tests und Rollbacks automatisieren: Eine schnelle, zuverlässige CI ist entscheidend für den Erfolg von TBD.
  • main muss jederzeit deploybar sein: Erfordert Kulturwandel – Code-Reviews, automatisierte Prüfungen, häufige Integration.
  • Deployments und Releases mit Tags korrelieren, falls Rückverfolgbarkeit notwendig ist.

Fazit

Trunk-Based Development ist ideal für häufige Auslieferungen und schlanke, automatisierte Pipelines. Es erfordert robuste Tests, kontinuierliche Integration und Feature Flags – ermöglicht dafür aber extrem schnelles Feedback und reibungslose Releases.

Bereit für den nächsten Schritt? Trunk-Based Development könnte die richtige Richtung für eure Umgebungen sein!

Zurück Unsere Trainings entdecken

Wir sind für Sie da

Sie interessieren sich für unsere Trainings oder haben einfach eine Frage, die beantwortet werden muss? Sie können uns jederzeit kontaktieren! Wir werden unser Bestes tun, um alle Ihre Fragen zu beantworten.

Hier kontaktieren