Introduction to System Design

시작하기. 무료입니다
또는 회원 가입 e메일 주소
Introduction to System Design 저자: Mind Map: Introduction to System Design

1. Tài liệu tham khảo

1.1. https://www.geeksforgeeks.org/functional-vs-non-functional-requirements

1.2. https://www.geeksforgeeks.org/non-functional-requirements-in-software-engineering

2. System Design là gì

2.1. Đưa requirement thành một thiết kế phù hợp

2.2. Requirement

2.2.1. Functional requirement

2.2.1.1. Người dùng cần làm X

2.2.1.2. Người dùng muốn lưu Y

2.2.1.3. Request sẽ đi qua system như thế nào

2.2.2. Non functional requirement

2.2.2.1. Hệ thống phải sẵn sàng 99.999%

2.2.2.2. 10M active user tại một thời điểm

3. Nó giải quyết vấn đề gì

3.1. Giải quyết Functional requirement

3.1.1. 4 Component Phổ biến

3.1.1.1. API

3.1.1.1.1. Phản hồi tương tác của người dùng

3.1.1.2. Database

3.1.1.2.1. Lưu trữ dữ liệu cùng cấu trúc

3.1.1.3. Blob Storage

3.1.1.3.1. Lưu trữ binary data

3.1.1.4. Batch Job

3.1.1.4.1. Giải quyết các cron job

3.1.2. Đối với các functional requirement, 4 component này giải quyết phần lớn chức năng

3.2. Giải quyết Non functional requirement

3.2.1. Scalability

3.2.1.1. Liệu tất cả các phần của hệ thống đạt đủ tải

3.2.1.1.1. Tùy từng bài toán, lựa chọn solution cho phù hợp với tải hệ thống

3.2.1.2. Vertically Scaling

3.2.1.2.1. Có giới hạn

3.2.1.3. Horizontal Scaling

3.2.1.3.1. Hệ thống có những phức tạp hơn cần xử lý

3.2.2. Performance

3.2.2.1. Liệu ta có thể làm một phần của hệ thống response nhanh hơn ?

3.2.2.2. Latency

3.2.2.2.1. Optimize 1 request làm ít việc hơn

3.2.2.2.2. Optimize 1 request làm việc nhanh hơn

3.2.2.2.3. Optimize network request time

3.2.2.3. Throughput

3.2.2.3.1. Hệ thống có scalability tốt sẽ có throughput tốt

3.2.3. Availability

3.2.3.1. Với mỗi thành phần, điều gì xảy ra nếu nó chết