- Di Dockerfile,
:latestmerusak persyaratan terpenting dari CD, yaitu "build idempoten yang dapat direproduksi"
→ Bukan hanya membuat build gagal, tetapi juga bisa menyebabkan error di production - Menentukan
latestdi Kubernetes Pod Manifest bahkan lebih buruk
→ Di Dockerfile setidaknya masih bisa rollback, tetapi jika dilakukan di deployment manifest, ada risiko kompatibilitas rusak kapan saja saat Pod baru di-rollout - Di PIP,
package.json, Terraform, dan lainnya, jika Anda menentukan versi minimum saja atau tidak mencantumkan versi, efeknya sama seperti menggunakanlatest - Pastikan menggunakan fitur seperti lockfile yang disediakan framework
- Commit lockfile ke source control
- Saat menerapkan fitur baru/bug fix/security fix, jalankan hal seperti
terraform init -upgradelalu commit lockfile - Jangan memperbarui lockfile di tengah proses CI
- Jenis-jenis lockfile
- Terraform :
.terraform.lock.hcl - Python :
Pipfileusing Pipenv - Node/Yarn :
yarn.lock - Go :
go.sumdango.mod
- Terraform :
- Sebisa mungkin jangan lakukan dependency pulling saat runtime
→ Jadikan dependency sebagai artifact yang siap di-deploy, lalu beri versi - Lakukan vulnerability scanning dengan layanan seperti Twistlock / Grype
Belum ada komentar.