Please enable JavaScript.
Coggle requires JavaScript to display documents.
Ôn tập kiến trúc phần mềm - Coggle Diagram
Ôn tập kiến trúc phần mềm
Các nguyên lý thiết kế (Design principles)
Design for self healing
Tóm tắt: Design để hệ thống có thể tự sửa chữa khi có lỗi xảy ra
Retry failed operations : Xây dựng các logic giúp thử lại đối với các lỗi tạm thời
Protect failing remote services (Circuit Breaker): Hạn chế việc gọi liên tục 1 service bị lỗi
Isolate critical resources (Bulkhead). Phân vùng hệ thống thành các nhóm riêng biệt để tránh gây lỗi toàn cục khi 1 hệ thống con bị lỗi
Perform load leveling: hệ thống có thể phải làm việc tăng 1 cách đột ngột, do đó nên có các hàng đợi để làm phẳng các quá trình tải
Fail over. Thực hiện triển khai nhiều instance để có thể chuyển đổi khi có lỗi xảy ra vs 1 instance -> cần xử lý vấn đề về tính nhất quán.
Compensate failed transactions. Sử dụng giao dịch bù để khôi phục lại trạng thái trước khi xảy ra lỗi
Degrade gracefully. Nếu chưa thể xử lý lỗi ngay thì có thể cắt giảm các tính năng bị ảnh hưởng bởi lỗi nếu nó không quá quan trọng
Minimize coordination
Tóm tắt: Giảm thiểu sự phối hợp giữa các service để có thể dễ dàng mở rộng
Make all things redundant
Tóm tắt: Xây dựng những phần tử dự phòng để tránh lỗi toàn cục
Design to scale out
Tóm tắt:Xây dựng hệt thống để có thể dễ dàng mở rộng theo chiều ngang, thêm hoặc bớt các instances dựa theo yêu cầu
Design for operations
Tóm tắt: Design để cung cấp các công cụ, log phục vụ team vận hành hệ thống
Partition around limits
Tóm tắt: Sử dụng phân mảnh để giải quyết các vấn đề về giới hạn database, network, tính toán,...
Use managed services
Tóm tắt: Sử dụng Platform as service (PaaS) thay cho Infrastructure as a Service (IaaS) nếu có thể
Use the best data store for the job
Tóm tắt: Lựa chọn công nghệ lưu trữ phù hợp với kiểu dữ liệu và các sử dụng dữ liệu
Design for evolution
Tóm tắt: Design để có thể phát triển, tiến hóa dễ dàng
Build for the needs of business
Tóm tắt: Design phải phục vụ các yêu cầu nghiệp vụ
Best practices
Content delivery network
Tóm tắt: Sử dụng CDN để truyền dữ liệu web đến người dùng và giảm load ở web app.
Caching
Tóm tắt: cải thiện hiệu năng bằng các bộ nhớ truy cập nhanh.
Data partitioning
Tóm tắt: phân mảnh dữ liệu để cải thiện hiệu năng. sử dụng các kiểu phân mảnh (vertical, functional, horizontal) một cách hiệu quả
Background jobs
Tóm tắt: cài đặt các job theo lô dưới dạng background job
Message encoding considerations
Tóm tắt: Chọn cấu trúc payload, encoding format và các thư viện hỗ trợ phù hợp với data
Autoscaling
Tóm tắt: Tự động phân bổ tài nguyên thỏa mãn yêu cầu về hiệu năng và tối thiểu hóa chi phí.
Monitoring and diagnostics
Tóm tắt: Theo dõi trạng thái hệ thống, đặt các ngưỡng để đưa ra cảnh báo
API implementation
Tóm tắt: Triển khai các web API hiệu quả, tương thích cao, tính mở rộng và khả năng đáp ứng cao.
API Design
Tóm tắt: Thiết kế web API dựa trên các chuẩn giao thức, format,...
Design patterns (Priority Queue)
Dropbox Architecture