Kiến trúc và Bảo mật Đám mây: Cấp độ Tiếp theo dành cho Nhà phát triển
Ứng dụng web của bạn hoạt động trên máy cục bộ. Bạn nghĩ rằng công việc đã hoàn tất. Nhưng không phải vậy.
Bạn phải quyết định ứng dụng của mình sẽ "sống" ở đâu. Bạn phải quyết định cách bảo vệ nó. Bạn phải quyết định điều gì sẽ xảy ra khi hàng ngàn người cùng sử dụng nó một lúc.
Chuyển lên đám mây đòi hỏi nhiều hơn là chỉ tải mã nguồn lên. Bạn cần hiểu về kiến trúc và bảo mật.
PaaS (Platform as a Service) là một điểm khởi đầu tuyệt vời cho các nhà phát triển. Với PaaS, nhà cung cấp đám mây sẽ quản lý máy chủ, hệ điều hành và mạng. Bạn chỉ cần tập trung vào mã nguồn và trải nghiệm người dùng.
Các tùy chọn PaaS hàng đầu bao gồm:
• AWS App Runner: Tuyệt vời cho các ứng dụng web dạng container. Nó xử lý việc triển khai và mở rộng. • Azure App Service: Hoàn hảo nếu bạn sử dụng các công cụ của Microsoft như GitHub Actions hoặc Azure DevOps. • Google Cloud Run: Xuất sắc cho các container không máy chủ (serverless). Nó có thể scale về mức 0 để tiết kiệm chi phí khi không có ai sử dụng.
Bảo mật đám mây là trách nhiệm của bạn. Nhà cung cấp cung cấp cho bạn các công cụ, nhưng bạn phải sử dụng chúng một cách chính xác.
Hãy tuân thủ các quy tắc bảo mật sau:
- Sử dụng nguyên tắc đặc quyền tối thiểu (principle of least privilege). Chỉ cấp cho người dùng và các dịch vụ những quyền hạn mà họ thực sự cần. Sử dụng IAM trong AWS, Microsoft Entra ID trong Azure, hoặc Cloud IAM trong Google Cloud.
- Đừng bao giờ hardcode mật khẩu. Việc sử dụng
const password = "123"trong mã nguồn của bạn là rất nguy hiểm. - Thay vào đó, hãy sử dụng biến môi trường. Sử dụng
process.env.DB_PASSWORDtrong mã nguồn của bạn. - Luôn thêm tệp
.envvào.gitignore. - Thiết lập các thông tin bí mật (secrets) thực tế trên bảng điều khiển của nhà cung cấp đám mây, không phải trong kho lưu trữ (repository) của bạn.
Hãy nghĩ về chủ quyền dữ liệu. Bạn phải biết dữ liệu của mình nằm ở đâu và luật nào áp dụng cho nó. Nếu bạn có người dùng ở Châu Âu, bạn phải tuân thủ các quy định GDPR.
Hãy chuẩn bị cho các đợt tăng đột biến về lưu lượng truy cập. Nếu một người có sức ảnh hưởng (influencer) chia sẻ liên kết của bạn, máy chủ của bạn có thể bị sập. Bạn có thể ngăn chặn điều này bằng cách mở rộng (scaling):
• Vertical Scaling (Mở rộng theo chiều dọc): Tăng sức mạnh cho máy của bạn bằng cách thêm CPU hoặc RAM. • Horizontal Scaling (Mở rộng theo chiều ngang): Tạo thêm nhiều instance của ứng dụng và sử dụng bộ cân bằng tải (load balancer) để phân phối lưu lượng.
Luôn đảm bảo trang web của bạn sử dụng HTTPS. Điều này giúp giữ cho việc truyền thông được mã hóa và an toàn.
Cách thực hành:
- Tạo một kho lưu trữ (repository) cho một ứng dụng web đơn giản.
- Đảm bảo không có dữ liệu nhạy cảm nào trong mã nguồn của bạn.
- Sử dụng Vercel hoặc Netlify để triển khai nó.
- Xác minh rằng trang web của bạn sử dụng HTTPS.
Source: https://dev.to/xinlin25/arquitectura-y-seguridad-en-la-nube-el-proximo-nivel-del-desarrollador-1bnd