15 điểm bởi xguru 2022-03-07 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Trong Dockerfile, :latest phá vỡ yêu cầu quan trọng nhất của CD là "bản dựng có thể tái lập và idempotent"
    → Không chỉ khiến bản dựng thất bại mà còn có thể gây ra lỗi production
  • Chỉ định latest trong Kubernetes Pod Manifest còn tệ hơn
    → Trong Dockerfile thì ít ra còn có thể rollback, nhưng nếu làm trong deployment manifest thì có nguy cơ phá vỡ tính tương thích ở bất kỳ thời điểm nào khi Pod mới được rollout
  • Trong PIP, package.json, Terraform... nếu chỉ định từ một phiên bản nhất định trở lên hoặc không ghi rõ phiên bản thì hiệu ứng cũng giống hệt việc dùng latest
  • Hãy обязательно dùng các cơ chế như lockfile mà framework cung cấp
    • Commit file lock vào source control
    • Khi áp dụng tính năng mới / sửa bug / vá bảo mật..., hãy gọi những thứ như terraform init -upgrade rồi commit file lock
    • Không cập nhật file lock trong lúc CI đang chạy
    • Các loại lockfile
      • Terraform : .terraform.lock.hcl
      • Python : Pipfile using Pipenv
      • Node/Yarn : yarn.lock
      • Go : go.sumgo.mod
  • Nếu có thể, đừng kéo dependency ở runtime
    → Hãy biến dependency thành artifact có thể triển khai và quản lý version cho nó
  • Hãy quét lỗ hổng bằng các dịch vụ như Twistlock / Grype

Chưa có bình luận nào.

Chưa có bình luận nào.