System Design Cơ Bản – Phần 22: Phân biệt các thuật ngữ trong distributed system (Tập 2)

Scalability - Khả năng mở rộng Scalability hay gọi tắt là scale là yếu tố đầu tiên mà architect sẽ consider khi thiết kế hệ thống. Làm sao để hệ thống sẽ scale được với kiến trúc và công nghệ đã chọn. Một hệ thống được gọi là có khả năng scale nếu có thiết … Continue reading System Design Cơ Bản – Phần 22: Phân biệt các thuật ngữ trong distributed system (Tập 2)

System Design Cơ Bản – Phần 21: Phân biệt các thuật ngữ trong distributed system (Tập 1)

Trong một hệ thống phân tán hiện đại ngày nay cùng với việc move lên Cloud thì có rất nhiều thuật ngữ, từ ngữ mô tả về hệ thống rất dễ gây nhầm lẫn như High Availability, Redundancy, Resiliency, Fault Tolerrance, Failover,... Hãy cùng phân tích và so sánh các thuật ngữ đó để có … Continue reading System Design Cơ Bản – Phần 21: Phân biệt các thuật ngữ trong distributed system (Tập 1)

System Design Cơ Bản – Phần 20: Capacity Planning – Dự toán công suất cho ứng dụng (tập 2)

Xem lại phần 1 4. Thiết kế và tối ưu hóa ứng dụng Thiết kế của ứng dụng hoặc phần mềm đóng một vai trò lớn trong việc lập dự toán công suất. Nếu một session được tạo cho mỗi người dùng đồng thời, điều này có nghĩa là mức tiêu thụ bộ nhớ cho … Continue reading System Design Cơ Bản – Phần 20: Capacity Planning – Dự toán công suất cho ứng dụng (tập 2)

System Design Cơ Bản – Phần 19: Capacity Planning – Dự toán công suất cho ứng dụng (tập 1)

Một trong những công việc cuối cùng trong khâu thiết kế hệ thống sau khi đã hoàn thành khâu logical design là dự toán công suất vật lý của hệ thống để xem cần bao nhiêu máy chủ, (v)CPU, RAM, Disk, network bandwidth là bao nhiêu để hệ thống có thể hoạt động đủ mượt … Continue reading System Design Cơ Bản – Phần 19: Capacity Planning – Dự toán công suất cho ứng dụng (tập 1)

System Design Cơ Bản – Phần 18: REST, GraphQL, Webhooks, & gRPC

Để giúp các API developer hiểu được nên sử dụng phong cách thiết kế API nào, trong ngữ cảnh nào. Hãy cùng xem xét REST, GraphQL, gRPC và Webhooks, phân tích điểm mạnh và điểm yếu của chúng để ap dụng cho đúng vào từng trường hợp. REST Có thể nói nguyên lí REST và … Continue reading System Design Cơ Bản – Phần 18: REST, GraphQL, Webhooks, & gRPC

System Design Cơ Bản – Phần 17: Mô hình về tính nhất quán ACID và BASE

Khi nói đến cơ sở dữ liệu NoSQL, các mô hình nhất quán dữ liệu đôi khi có thể khác biệt đáng kể so với các cơ sở dữ liệu quan hệ được sử dụng (cũng như khá khác biệt so với các cơ sở dữ liệu NoSQL khác). Hai mô hình nhất quán phổ … Continue reading System Design Cơ Bản – Phần 17: Mô hình về tính nhất quán ACID và BASE

System Design Cơ Bản – Phần 16: Message Broker

Trong kiến trúc cloud (hay microservices), các ứng dụng được chia thành những khối độc lập nhỏ hơn để có thể dễ dàng develop, deploy và maintain. Hãy thử tưởng tượng bạn có một kiến trúc cloud có nhiều service và nhiều request mỗi giây, bạn phải đảm bảo rằng không có bất cứ một … Continue reading System Design Cơ Bản – Phần 16: Message Broker

System Design Cơ Bản – Phần 14: Availability vs consistency

Định lý CAP Xem lại ở Phần 9: Định lý CAP / CAP Theorem Các patterns về sự nhất quán (consistency) Với nhiều bản sao của cùng một dữ liệu, chúng ta phải đối mặt với các tùy chọn về cách đồng bộ hóa để client có một cái nhìn nhất quán về dữ liệu. … Continue reading System Design Cơ Bản – Phần 14: Availability vs consistency

System Design Cơ Bản – Phần 13: Domain name system (DNS)

DNS là viết tắt của cụm từ Domain Name System, mang ý nghĩa đầy đủ là hệ thống phân giải tên miền. Hiểu một cách ngắn gọn nhất, DNS cơ bản là một hệ thống chuyển đổi các tên miền website mà chúng ta đang sử dụng, ở dạng www.tenmien.com sang một địa chỉ IP dạng số tương ứng với tên miền đó … Continue reading System Design Cơ Bản – Phần 13: Domain name system (DNS)

System Design Cơ Bản – Phần 12: HTTPS, SSL, and TLS

SSL là chữ viết tắt của Secure Sockets Layer (Lớp socket bảo mật). Một loại bảo mật giúp mã hóa liên lạc giữa website và trình duyệt. Công nghệ này đang lỗi thời và được thay thế hoàn toàn bởi TLS. TLS là chữ viết tắt của Transport Layer Security, nó cũng giúp bảo mật thông tin truyền giống như SSL. Nhưng vì … Continue reading System Design Cơ Bản – Phần 12: HTTPS, SSL, and TLS