Redundancy Là phương thức sao lưu các dữ liệu quan trọng của hệ thống với mục đích tăng độ tin cậy (Reliability) của hệ thống. Ví dụ dữ liệu được lưu trên duy nhất một Server, nếu Server đó mất có nghĩa là tất cả dữ liệu đó mất, do đó việc tạo ra các … Continue reading System Design Cơ Bản – Phần 7: Sao lưu và đồng bộ dữ liệu — Redundancy and Replication
Category: Methodology
[Summary] – Fundamentals of Software Architecture An Engineering Approach – Part 13: Developing a Career Path
An architect must continue to learn throughout their career. The technology world changes at a dizzying pace. Each architect should keep an eye out for relevant resources, both technology and business, and add them to their personal stockpile. Talking to colleagues or experts about what resources they use to keep current is one good way … Continue reading [Summary] – Fundamentals of Software Architecture An Engineering Approach – Part 13: Developing a Career Path
System Design Cơ Bản – Phần 6: Proxies
Proxy server là một server trung gian (intermediary) nằm giữa client và back-end server. Client kết nối với proxy server để yêu cầu (request) những dịch vụ (service) cần thiết như API, web page, file hay connection, v.V… Nói tóm lại, proxy server là một phần của hệ thống phần mềm hoặc phần cứng đóng … Continue reading System Design Cơ Bản – Phần 6: Proxies
System Design Cơ Bản – Phần 5: Indexes
Xem bài viết gốc của tác giả @batnamv tại Medium Có lẽ thuật ngữ “đánh index” đã quá quen với những ai làm việc với CSDL, đó là cách rất phổ biến để tăng tốc độ query của dữ liệu, khi dữ liệu Database ngày càng tăng và trở nên chậm dần đều theo thời … Continue reading System Design Cơ Bản – Phần 5: Indexes
System Design Cơ Bản – Phần 4: Phân chia dữ liệu — Sharding/Data Partitioning
Xem bài viết gốc của tác giả @batnamv tại Medium Phân chia dữ liệu (Sharding) là một giải pháp chia nhỏ một Database lớn thành nhiều Database nhỏ, ta có thể phân tách từng bảng hoặc cả một DB ra nhiều phần nhỏ đặt ở nhiều máy chủ (server) khác nhau. Điều này sẽ giúp … Continue reading System Design Cơ Bản – Phần 4: Phân chia dữ liệu — Sharding/Data Partitioning
System Design Cơ Bản – Phần 3: Bộ đệm — Caching
Xem bài viết gốc của tác giả @batnamv tại Medium Load balancing giúp hệ thống mở rộng theo chiều ngang bằng cách ngày càng tăng số lượng các máy chủ, nhưng Caching lại là cách để sử dụng tài nguyên (resource) hiệu quả hơn từ đó resource cần cung cấp giảm đi, nhằm tiết kiệm … Continue reading System Design Cơ Bản – Phần 3: Bộ đệm — Caching
System Design Cơ Bản – Phần 2: Cân bằng tải (Load balancing)
Xem bài viết gốc của tác giả @batnamv tại Medium Cân bằng tải (load balancing — LB) là một thành phần nữa cũng cực kỳ quan trọng trong bất kỳ một distributed system nào, nó giúp cho hệ thống có thể phân tải các request tới đều các Server (Application hoặc Database), giúp cho hệ … Continue reading System Design Cơ Bản – Phần 2: Cân bằng tải (Load balancing)
System Design Cơ Bản – Phần 1: Cách tính chất chính của một hệ thống phân tán
Cùng với Algorithm thì System Design là một phần rất quan trọng trong phỏng vấn và tuyển dụng, nhất là bạn ứng tuyển với vị trí từ Senior trở lên. Và để cùng tôi chuyển bị tốt cho đợt phỏng vấn tuyển dụng sắp tới, ta hãy cùng nhau tìm hiểu về những điều cơ … Continue reading System Design Cơ Bản – Phần 1: Cách tính chất chính của một hệ thống phân tán
[Summary] – Fundamentals of Software Architecture An Engineering Approach – Part 9: Architecturally Significant
This is my learning note from the book Fundamentals of Software Architecture: An Engineering Approach written by Mark Richards and Neal Ford. All the contents are mostly distilled and copied from the book. I recommend you to buy this book to support the authors. Many architects believe that if the architecture decision involves any specific … Continue reading [Summary] – Fundamentals of Software Architecture An Engineering Approach – Part 9: Architecturally Significant
[Summary] – Fundamentals of Software Architecture An Engineering Approach – Part 8: Architecture Decision Anti-Patterns
This is my learning note from the book Fundamentals of Software Architecture: An Engineering Approach written by Mark Richards and Neal Ford. All the contents are mostly distilled and copied from the book. I recommend you to buy this book to support the authors. There is an art to making architecture decisions. Not surprisingly, several … Continue reading [Summary] – Fundamentals of Software Architecture An Engineering Approach – Part 8: Architecture Decision Anti-Patterns