15 puan yazan xguru 2022-03-07 | Henüz yorum yok. | WhatsApp'ta paylaş
  • Dockerfile içinde :latest, CD'nin en önemli gereksinimi olan "yeniden üretilebilir idempotent build" ilkesini bozar
    → Yalnızca build'in başarısız olmasına yol açmakla kalmaz, production hatalarına da neden olabilir
  • Kubernetes Pod Manifest'te latest belirtmek daha da kötüdür
    → Dockerfile'da en azından rollback mümkündür, ancak bunu dağıtım manifest'inde yaparsanız yeni Pod'ların rollout edildiği herhangi bir anda uyumluluğun bozulma riski doğar
  • PIP, package.json, Terraform vb. içinde de belirli bir sürümün üzerini belirtmek veya sürümü hiç açıkça yazmamak, latest kullanmakla aynı etkiyi yaratır
  • Framework'lerin sunduğu lockfile benzeri özellikleri mutlaka kullanın
    • Lock dosyasını source control'e commit edin
    • Yeni özellik uygulama/bug fix/güvenlik düzeltmesi gibi durumlarda terraform init -upgrade gibi komutları çalıştırıp lock dosyasını commit edin
    • CI sırasında lock dosyasını güncellemeyin
    • Lock dosyası türleri
      • Terraform : .terraform.lock.hcl
      • Python : Pipenv kullanan Pipfile
      • Node/Yarn : yarn.lock
      • Go : go.sum ve go.mod
  • Mümkünse runtime sırasında bağımlılık çekmeyin
    → Bağımlılıkları dağıtılabilir artifact'lere dönüştürün ve sürümleyin
  • Twistlock / Grype gibi servislerle güvenlik açığı taraması yapın

Henüz yorum yok.

Henüz yorum yok.