Moderne Softwareentwicklung ohne CI/CD ist wie Programmieren ohne Versionskontrolle – technisch möglich, aber kaum noch sinnvoll. Continuous Integration (CI) und Continuous Deployment (CD) ermöglichen es dir, Code schnell, sicher und automatisiert in die Cloud zu bringen.
In diesem Teil der Serie lernst du:
- Was CI/CD bedeutet (inkl. Praxisbeispiel)
- Warum es besonders in der Cloud unverzichtbar ist
- Welche Tools und Plattformen es gibt
- Wie du deinen ersten CI/CD-Workflow in wenigen Minuten umsetzt
Was bedeutet CI/CD?
CI/CD steht für:
Continuous Integration (CI)
- Entwickler:innen pushen regelmäßig (mehrmals täglich) Code in ein zentrales Repository
- Bei jedem Push wird automatisch:
- Code gebaut (build)
- Getestet (unit/integration tests)
- Validiert (z. B. Linter, Security Checks)
Ziel: Fehler frühzeitig erkennen, schnelleres Feedback im Team.
Continuous Deployment (CD)
- Nach erfolgreichem Build/Test wird die App automatisch:
- in eine Test- oder Staging-Umgebung deployed
- bei Bedarf auch direkt in die Produktivumgebung
(→ Continuous Delivery = manuelle Freigabe,
Continuous Deployment = vollautomatisch)
Ziel: Codeänderungen ohne manuelle Eingriffe schnell & zuverlässig veröffentlichen.
Warum CI/CD in der Cloud?
Die Cloud bringt viele Vorteile für CI/CD-Prozesse:
Vorteil | Beschreibung |
---|---|
Skalierbarkeit | Builds und Tests laufen parallel in der Cloud |
Integrierte Security | Secrets, IAM, Rollen & Logs zentral verwaltet |
Deployment-Ziel = Cloud | Warum nicht auch das Build-System dort haben? |
Weniger Wartung | Kein eigener Jenkins-Server nötig |
Wichtige CI/CD-Plattformen im Überblick
Tool / Plattform | Anbieter | Besondere Stärken |
---|---|---|
GitHub Actions | GitHub (Microsoft) | Direkt im GitHub-Repo integriert, flexibel |
GitLab CI/CD | GitLab | Alles-in-einem-Plattform (inkl. Issue Tracking) |
Azure DevOps | Microsoft | Sehr gut für .NET/Enterprise-Teams |
CircleCI | Unabhängig | Schnell, CI-fokussiert, guter Free-Tier |
Bitbucket Pipelines | Atlassian | Ideal für Bitbucket-Nutzer:innen |
Jenkins | Open Source | Sehr flexibel, aber hoher Wartungsaufwand |
Beispiel: GitHub Actions CI/CD-Workflow für Node.js-App
1. Projekt in GitHub pushen
git init
git remote add origin https://github.com/user/repo.git
git push -u origin main
2. CI/CD-Workflow erstellen (im Repo unter .github/workflows/ci.yml
):
name: CI/CD Pipeline
on:
push:
branches: [ "main" ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Install Dependencies
run: npm install
- name: Run Tests
run: npm test
- name: Deploy to Cloud
run: ./deploy.sh
Du kannst auch fertige Actions nutzen, z. B. zum Deploy auf AWS, Azure oder GCP (siehe weiter unten).
CI/CD in den großen Clouds – So geht’s
AWS CodePipeline + CodeBuild + Lambda
AWS bietet eigene CI/CD-Tools, die gut integriert sind – aber auch komplex zu konfigurieren.
- CodePipeline: Visualisierung von Build- & Deployment-Stufen
- CodeBuild: Cloud-Build-Service (wie GitHub Actions, aber AWS-intern)
- CodeDeploy: Verteilt neue Versionen auf EC2, Lambda, ECS etc.
Alternativ:
→ Nutze GitHub Actions mit dem AWS CLI:
- name: Deploy to AWS Lambda
uses: appleboy/lambda-action@master
with:
function_name: my-func
zip_file: ./build.zip
Azure DevOps Pipelines
Azure bietet mit Azure Pipelines ein komplettes CI/CD-System mit:
- YAML-basierten Workflows
- Build Agents (Microsoft-hosted oder self-hosted)
- GitHub-Integration
- Release-Staging, Approval Gates
Besonders stark in Verbindung mit:
- Azure Web Apps
- Azure Functions
- AKS (Kubernetes)
Beispiel für einfachen Pipeline-Task:
trigger:
- main
pool:
vmImage: 'ubuntu-latest'
steps:
- script: echo Hello, world!
Google Cloud Build + Cloud Deploy
- Cloud Build: YAML-gesteuerter CI-Dienst für GCP – ideal für Container-Workflows
- Cloud Deploy: Deployment in GKE, Cloud Run, App Engine
- Integriert mit GCR (Google Container Registry) & Artifact Registry
Beispiel:
steps:
- name: 'gcr.io/cloud-builders/npm'
args: ['install']
- name: 'gcr.io/cloud-builders/npm'
args: ['run', 'build']
- name: 'gcr.io/cloud-builders/gcloud'
args: ['run', 'deploy', 'myapp', '--image', 'gcr.io/myproject/myapp']
CI/CD und Sicherheit
Best Practices:
- Secrets verschlüsselt speichern (z. B. GitHub Secrets, Azure Key Vault)
- Principle of Least Privilege (z. B. nur „deploy“, nicht „delete“)
- Scan auf Sicherheitslücken im Build (z. B. mit
npm audit
,trivy
) - Deployments versionieren & rollbackfähig machen
CI/CD in Microservices & Kubernetes
Wenn du Kubernetes oder viele Microservices nutzt, hilft dir:
- Helm Charts für App-Definition & Versionierung
- ArgoCD oder Flux für GitOps
- Terraform / Pulumi zur Automatisierung der Infrastruktur
CI/CD ist dann nicht nur „Code in die Cloud schieben“, sondern:
„Code + Infrastruktur + Konfiguration = reproduzierbare Umgebung“
Fazit
CI/CD ist kein Luxus – sondern Grundlage moderner Cloud-Projekte. Egal, ob du eine kleine Web-App oder ein komplexes Microservice-System betreibst:
Automatisierte Builds, Tests und Deployments machen dein Team schneller, sicherer und skalierbarer.
GitHub Actions und GitLab CI machen den Einstieg einfach. Wer in einer Enterprise-Umgebung arbeitet, profitiert von Azure DevOps oder integrierten Cloud-Diensten. Entscheidend ist: CI/CD muss zur Architektur und Teamgröße passen.
Schreibe einen Kommentar