DevOps
Eine Kultur und Praxis, die Softwareentwicklung (Dev) und IT-Betrieb (Ops) vereint, um Software schneller, zuverlässiger und automatisierter zu liefern.
Automatisierte Prozesse, die Code-Änderungen kontinuierlich testen (CI) und in Produktion bringen (CD) – für schnellere und zuverlässigere Software-Releases.
CI/CD (Continuous Integration / Continuous Deployment) ist die Praxis, Software-Änderungen automatisch zu testen und in Produktion zu bringen. Jeder Commit löst eine Pipeline aus: Tests laufen automatisch, und wenn alles grün ist, wird die neue Version deployed – ohne manuelle Eingriffe. Für KI-Projekte bedeutet das: Auch Modell-Updates, Daten-Pipelines und Prompt-Änderungen werden automatisch getestet und ausgerollt. ML-CI/CD erweitert klassisches CI/CD um Modell-Evaluation: Ein neues Modell wird nur deployed, wenn es auf dem Holdout-Testset besser ist als das aktuelle Produktionsmodell. Tools wie GitHub Actions, GitLab CI und Jenkins bilden die Basis, ergänzt durch MLflow oder W&B für Modell-Tracking.
CI/CD automatisiert den Weg von einer Code-Änderung bis zur Produktion.
Die Pipeline:
Code Push → Build → Test → (Review) → Deploy → Monitor
CI ─────────────────┘ CD ──────────────────┘
Typische CI/CD-Pipeline:
| Schritt | Was passiert | Bei Fehler |
|---|---|---|
| Lint | Code-Stil prüfen | Pipeline stoppt |
| Unit Tests | Einzelne Funktionen testen | Pipeline stoppt |
| Build | Anwendung bauen | Pipeline stoppt |
| Integration Tests | Zusammenspiel testen | Pipeline stoppt |
| Deploy Staging | Auf Testumgebung deployen | Pipeline stoppt |
| Deploy Production | Live schalten | Rollback |
name: CI/CD
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm install
- run: npm test
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- run: npm run build
- run: npm run deploy
CI/CD ist wie ein automatisches Fließband in einer Fabrik: Jede Änderung wird automatisch geprüft (Qualitätskontrolle), verpackt (Build) und ausgeliefert (Deployment) – ohne manuelle Schritte.
CI: Automatisches Testen und Bauen bei jeder Code-Änderung
CD: Automatisches Deployment in Produktion nach erfolgreichen Tests
Reduziert Fehler, beschleunigt Releases und erhöht die Codequalität
Web-Deployment
Automatisches Deployment bei jedem Git Push (Vercel, Netlify)
ML-Pipelines
Automatisches Retraining und Deployment von ML-Modellen
Qualitätssicherung
Automatische Tests, Linting und Security-Scans bei jedem Commit
Continuous Delivery: Code ist jederzeit deploybar, aber ein Mensch gibt das finale OK. Continuous Deployment: Jede Änderung, die alle Tests besteht, wird automatisch in Produktion deployt. Deployment ist die aggressivere Variante.
Zusätzlich zu Code-Tests: Datenvalidierung, Modell-Training, Performance-Evaluation gegen Baseline, automatisches Deployment bei besserer Performance. Tools: MLflow, DVC, CML.
Beliebte Tools für CI/CD sind Jenkins, GitLab CI, Travis CI und CircleCI. Diese Tools bieten verschiedene Funktionen, die den Prozess der kontinuierlichen Integration und Bereitstellung automatisieren und optimieren.
Um CI/CD in ein bestehendes Projekt zu integrieren, sollten Sie zunächst ein Repository für Ihren Code einrichten und dann ein CI/CD-Tool auswählen. Anschließend konfigurieren Sie das Tool, um automatisierte Tests und Deployments bei jedem Code-Commit durchzuführen.