:latest kullanmayın
(platformers.dev)- 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
latestbelirtmek 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,latestkullanmakla 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 -upgradegibi 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.sumvego.mod
- Terraform :
- 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.