Cách đóng gói và triển khai ứng dụng Next.js bằng Docker với quy trình đơn giản, dễ lặp lại.
Docker hữu ích khi team muốn môi trường chạy nhất quán giữa local, staging và production. Nó đặc biệt phù hợp khi ứng dụng phụ thuộc database, queue hoặc service bên ngoài.
Một Dockerfile tốt nên tận dụng layer cache, cài dependencies riêng, build app và chỉ copy artifact cần thiết vào image cuối cùng.
Không bake secret vào image. Hãy truyền biến môi trường khi chạy container hoặc thông qua nền tảng deploy đang dùng.
Migration cần được chạy có kiểm soát, tránh để nhiều instance cùng migrate một lúc. Với Prisma, hãy tách bước migration khỏi bước start app nếu deploy production.
Sau khi deploy, cần theo dõi log, error rate, response time và resource usage. Một workflow tốt không dừng lại ở việc container chạy thành công.
Cách quyết định phần nào nên chạy ở server, phần nào cần client state, event handler hoặc browser API.
Các rủi ro phổ biến của file upload và cách giảm thiểu bằng validate, giới hạn kích thước, scan và storage policy.
Các tiêu chí thực tế để quyết định khi nào nên dùng Kubernetes và khi nào nên chọn giải pháp đơn giản hơn.