System Design Interview là gì?
System Design Interview (phỏng vấn thiết kế hệ thống) đánh giá khả năng thiết kế các hệ thống phần mềm quy mô lớn. Đây là vòng phỏng vấn bắt buộc cho hầu hết vị trí Senior Engineer trở lên tại các công ty công nghệ lớn.
Framework RESHADED để giải quyết bài toán
Sử dụng framework sau để không bỏ sót yếu tố quan trọng nào:
- Requirements: làm rõ yêu cầu chức năng và phi chức năng
- Estimation: ước tính lượng traffic, storage, bandwidth
- Storage schema: thiết kế database schema
- High-level design: vẽ kiến trúc tổng thể
- API design: định nghĩa API endpoints
- Detailed design: đi sâu vào component quan trọng
- Evaluate: trade-offs, bottlenecks
- Distinguish: cải tiến và tối ưu hóa
Ví dụ: Thiết kế hệ thống URL Shortener (như bit.ly)
1. Requirements
Functional: Rút gọn URL dài thành URL ngắn, redirect từ URL ngắn về URL gốc, custom alias, thống kê click.
Non-functional: High availability (99.9%+), low latency (<100ms), 100M URLs/ngày.
2. Estimation
- Write: 100M URLs/ngày = ~1,157 URLs/giây
- Read/Write ratio: 100:1 → 115,700 redirects/giây
- Storage: 100M * 500 bytes = 50GB/ngày
3. High-level Design
Client → Load Balancer → API Servers → Cache (Redis) → Database (PostgreSQL/Cassandra)
4. Tạo short URL
Dùng Base62 encoding (a-z, A-Z, 0-9) để tạo alias 7 ký tự: 62^7 = ~3.5 nghìn tỷ URL. Hash MD5/SHA256 lấy 43 bits đầu rồi encode Base62.
5. Giải quyết hash collision
Khi hash bị trùng: thêm salt vào URL gốc rồi hash lại, hoặc dùng counter-based generation với Snowflake ID.
Các chủ đề System Design quan trọng
- Load Balancing (Round Robin, Least Connection, IP Hash)
- Caching strategies (Cache-aside, Write-through, Write-behind)
- Database sharding và replication
- CAP Theorem và eventual consistency
- Message queues (Kafka, RabbitMQ)
- CDN và edge computing
- Rate limiting và circuit breaker
Lời khuyên trong buổi phỏng vấn
Luôn trao đổi với interviewer trong suốt quá trình, không ngồi im giải quyết một mình. Clarify requirements trước, đề xuất giải pháp đơn giản trước rồi iterate, và chủ động đề cập đến trade-offs của từng lựa chọn.
