• Dockerfile में :latest CD की सबसे महत्वपूर्ण आवश्यकता, "पुनरुत्पादनीय और idempotent build", को तोड़ देता है
    → यह सिर्फ build fail ही नहीं कराता, बल्कि production errors भी पैदा कर सकता है
  • Kubernetes Pod Manifest में latest निर्दिष्ट करना इससे भी बुरा है
    → Dockerfile में तो कम से कम rollback संभव है, लेकिन deployment manifest में ऐसा करने पर किसी भी समय जब नया Pod rollout हो, compatibility टूटने का जोखिम बन जाता है
  • PIP, Package.json, Terraform आदि में भी यदि किसी dependency को किसी specific version से ऊपर के रूप में निर्दिष्ट किया जाए या version ही न लिखा जाए, तो उसका प्रभाव latest उपयोग करने जैसा ही होता है
  • frameworks द्वारा दिए गए lockfile जैसे फीचर्स का ज़रूर उपयोग करें
    • lock file को source control में commit करें
    • नई feature, bug fix, security fix आदि लागू करते समय terraform init -upgrade जैसी कमांड चलाएँ और lock file commit करें
    • CI के दौरान lock file अपडेट न करें
    • lock file के प्रकार
      • Terraform : .terraform.lock.hcl
      • Python : Pipfile using Pipenv
      • Node/Yarn : yarn.lock
      • Go : go.sum और go.mod
  • जहाँ संभव हो, runtime में dependencies pulling न करें
    → dependencies को deployable artifact के रूप में बनाएं और उनका versioning करें
  • Twistlock / Grype जैसी सेवाओं से vulnerability scanning करें

अभी कोई टिप्पणी नहीं है.

अभी कोई टिप्पणी नहीं है.