Nahtlose Deployments mit der DTZ GitHub Action

created: Dienstag, Sept. 23, 2025

Verschwendung bei Deployments beseitigen

Bei DownToZero setzen wir uns dafür ein, Verschwendung zu eliminieren – sei es in Rechenleistung, Energie oder operativem Aufwand. Eine Herausforderung, der viele Teams in containerisierten Umgebungen gegenüberstehen, ist das Handling von Updates für Container-Images. Traditionell beruhen Deployments oft auf Polling nach Updates, wenn Tags wie latest verwendet werden. Das führt zu unnötigen Anfragen, erhöhter Latenz bei Updates und ineffizienter Ressourcennutzung.

Um dem entgegenzuwirken, führen wir eine neue Möglichkeit ein, Deployments direkt mit GitHub Actions zu integrieren. Mit der neu entwickelten DTZ GitHub Action können Container-Image-Updates jetzt direkt aus Ihrer GitHub-Pipeline an DownToZero übergeben werden. Das bedeutet kein Warten mehr, kein Polling mehr — sondern sofortige, schlanke Deployments.

Auf einen Blick

Vom Commit zum Deploy in einem Durchlauf: Image bauen, in Ihr Container-Registry pushen, den genauen Digest ermitteln und den Zielservice über die DTZ GitHub Action aktualisieren. Kein Polling, keine Unklarheiten — nur präzise, Digest-gesteuerte Releases.

flowchart LR
  subgraph GitHub Actions
    A[Commit / Dispatch / Zeitplan]:::action --> B[Docker-Image bauen]:::action
    B --> C[In Container-Registry pushen]:::action
    C --> D[Image-Digest ermitteln]:::action
    D --> E[DTZ-Action: Service aktualisieren]:::action
  end

  subgraph DownToZero
    R[(DTZ Container-Registry)]:::registry
    S[Container-Service]:::service
  end

  C --> R
  E --> S

  classDef action fill:#fff8e1,stroke:#f9a825,color:#5d4037
  classDef registry fill:#e3f2fd,stroke:#1e88e5,color:#0d47a1
  classDef service fill:#e8f5e9,stroke:#43a047,color:#1b5e20

Wie es funktioniert

Die DTZ GitHub Action verbindet Ihren GitHub-Workflow mit Ihren DownToZero-Container-Services. Sobald Ihre Pipeline ein neues Container-Image baut und pusht, aktualisiert die Action automatisch den vorgesehenen Service mit dem frisch gebauten Image-Digest.

Das stellt sicher:

Beispiel-Pipeline

Hier ist ein Beispiel-Workflow für GitHub Actions, der zeigt, wie diese Integration in der Praxis aussieht:

on:
  push:
  workflow_dispatch:
  schedule: # zeitgesteuerter Neuaufbau für Sicherheitsupdates
    - cron: '30 5 25 * *'
jobs:
  build-website:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v4
    - name: Website bauen
      run: |
        docker build -t ee8h25d0.cr.dtz.dev/sample-website .
    - name: Anmeldung bei ee8h25d0.cr.dtz.dev
      uses: docker/login-action@v3
      with:
        registry: ee8h25d0.cr.dtz.dev
        username: apikey
        password: ${{ secrets.DTZ_API_KEY }}
    - name: Image zu ee8h25d0.cr.dtz.dev hochladen
      run: |
        docker push ee8h25d0.cr.dtz.dev/sample-website:latest
    - name: Image-Digest ermitteln
      id: resolve_digest
      run: |
        DIGEST=$(docker inspect --format='{{index .RepoDigests 0}}' ee8h25d0.cr.dtz.dev/sample-website:latest)
        echo "IMAGE_URL=$DIGEST" >> $GITHUB_ENV
    - name: Neueste Image-Version zum Service deployen
      uses: DownToZero-Cloud/containers-service-update@main
      with:
        container_image: ${{ env.IMAGE_URL }}
        container_image_version: ''
        api_key: ${{ secrets.DTZ_API_KEY }}
        service_id: service-0194e6d9
    - name: Image-URL zur Zusammenfassung hinzufügen
      run: |
        echo "## Bereitgestelltes Image" >> $GITHUB_STEP_SUMMARY
        echo "" >> $GITHUB_STEP_SUMMARY
        echo "${IMAGE_URL}" >> $GITHUB_STEP_SUMMARY

Diese Pipeline:

Fazit

Wenn Sie die DTZ GitHub Action in Ihre CI/CD-Pipelines integrieren, erhalten Sie eine schnellere, effizientere und ressourcenschonendere Möglichkeit, Container-Deployments zu verwalten. Dieser Ansatz entfernt das Rätselraten beim Polling, sorgt für präzise Deployments und spiegelt unsere Mission bei DownToZero wider: Verschwendung in jedem Schritt zu beseitigen.