Teil 13: CI/CD in der Cloud – Automatisierte Deployments & DevOps mit GitHub, GitLab, Azure DevOps und Co.

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:

VorteilBeschreibung
SkalierbarkeitBuilds und Tests laufen parallel in der Cloud
Integrierte SecuritySecrets, IAM, Rollen & Logs zentral verwaltet
Deployment-Ziel = CloudWarum nicht auch das Build-System dort haben?
Weniger WartungKein eigener Jenkins-Server nötig

Wichtige CI/CD-Plattformen im Überblick

Tool / PlattformAnbieterBesondere Stärken
GitHub ActionsGitHub (Microsoft)Direkt im GitHub-Repo integriert, flexibel
GitLab CI/CDGitLabAlles-in-einem-Plattform (inkl. Issue Tracking)
Azure DevOpsMicrosoftSehr gut für .NET/Enterprise-Teams
CircleCIUnabhängigSchnell, CI-fokussiert, guter Free-Tier
Bitbucket PipelinesAtlassianIdeal für Bitbucket-Nutzer:innen
JenkinsOpen SourceSehr 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:

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.


Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert