Docs học tập
Backend nền tảng

A3 · Yêu cầu phi chức năng và thiết kế vừa đủ

Yêu cầu phi chức năng: số người dùng, lượng request, độ trễ chấp nhận được, mức sẵn sàng (99,9%?), bảo mật, yêu cầu pháp lý.

A3 · Middle

Xây nhà cho gia đình 4 người thì không cần móng của tòa nhà 40 tầng; nhưng cũng nên biết trước có định xây thêm tầng hay không.

Cốt lõi

  • Yêu cầu phi chức năng: số người dùng, lượng request, độ trễ chấp nhận được, mức sẵn sàng (99,9%?), bảo mật, yêu cầu pháp lý.
  • Ước lượng thô (back-of-the-envelope) để chọn giải pháp đúng cỡ.
  • YAGNI: chỉ làm cái đang cần; thiết kế để dễ thay đổi thay vì đoán trước mọi thứ.

Đánh đổi

Thiết kế thiếu → phải làm lại; thiết kế thừa → tốn tiền hạ tầng, chậm ra mắt, khó bảo trì. Sản phẩm mới thường gặp vấn đề vì chậm hơn là vì không scale được.

Trong thực tế

Ứng dụng nội bộ cho 200 nhân viên: một Postgres và một app server là đủ, không cần Kafka hay microservices.

Bug thường gặp

Dựng Kubernetes, Kafka và 8 microservices cho sản phẩm chưa có người dùng → hóa đơn cloud lớn, mỗi tính năng mới phải sửa nhiều service.

Tự hỏi lại

Quyết định nào khó đảo ngược (cần nghĩ kỹ), quyết định nào dễ đổi sau?

On this page