Khi đưa ứng dụng Go lên production, cần đảm bảo: structured logging (slog, zap, hoặc zerolog) dạng JSON dễ parse, graceful shutdown để không mất request đang xử lý, health check endpoints cho load balancer.
Về config, đọc từ environment variables (viper hoặc envconfig). Dockerfile dùng multi-stage build với scratch hoặc distroless để giảm attack surface và image size xuống 5-15MB. Chất lượng code: race detector (go test -race) trong CI và golangci-lint để catch lỗi sớm.
Luôn propagate context xuyên suốt request chain, cấu hình connection pooling hợp lý cho database, và expose metrics qua Prometheus để monitoring hiệu năng.