15 Punkte von xguru 2022-03-07 | Noch keine Kommentare. | Auf WhatsApp teilen
  • In Dockerfiles zerstört :latest die wichtigste Anforderung von CD: „reproduzierbare idempotente Builds“
    → Es lässt Builds nicht nur fehlschlagen, sondern verursacht auch Produktionsfehler
  • In Kubernetes-Pod-Manifests latest anzugeben, ist noch schlimmer
    → In Dockerfiles ist zumindest ein Rollback möglich, aber wenn man es im Deployment-Manifest tut, besteht das Risiko, dass die Kompatibilität zu irgendeinem Zeitpunkt beim Ausrollen neuer Pods bricht
  • Auch bei PIP, package.json, Terraform usw. hat die Angabe von „mindestens einer bestimmten Version“ oder das Weglassen einer Versionsangabe denselben Effekt wie die Verwendung von latest
  • Funktionen wie Lockfiles, die Frameworks bereitstellen, sollten unbedingt verwendet werden
    • Lockfiles in die Versionsverwaltung committen
    • Beim Anwenden neuer Funktionen/Bugfixes/Sicherheitsfixes usw. Dinge wie terraform init -upgrade ausführen und das Lockfile committen
    • Während CI keine Lockfiles aktualisieren
    • Arten von Lockfiles
      • Terraform : .terraform.lock.hcl
      • Python : Pipfile mit Pipenv
      • Node/Yarn : yarn.lock
      • Go : go.sum und go.mod
  • Wenn möglich, keine Abhängigkeits-Pulls zur Laufzeit durchführen
    → Abhängigkeiten als deploybare Artefakte erstellen und versionieren
  • Mit Diensten wie Twistlock / Grype Schwachstellen scannen

Noch keine Kommentare.

Noch keine Kommentare.