Nắm vững các thuật ngữ thiết kế hệ thống là chìa khóa để hiểu sâu hơn về cách xây dựng các hệ thống hiệu quả, mở rộng và bảo mật. Dưới đây, VietnamWorks inTECH sẽ giới thiệu 50 thuật ngữ quan trọng mà bất kỳ ai làm việc trong ngành công nghệ cũng cần biết.
1. Khả năng mở rộng (Scalability)
Định nghĩa: Khả năng của hệ thống để hỗ trợ tăng tải bằng cách bổ sung tài nguyên.
Ví dụ: Thêm nhiều máy chủ để xử lý lượng truy cập web tăng cao.
2. Cân bằng tải (Load Balancer)
Định nghĩa: Phân chia lưu lượng mạng đến cho nhiều máy chủ để tránh tình trạng một máy chủ phải xử lý quá tải.
Ví dụ: Cân bằng lưu lượng web qua nhiều máy chủ EC2 bằng dịch vụ AWS Elastic Load Balancer (ELB).
3. Vi dịch vụ (Microservices)
Định nghĩa: Mô hình kiến trúc chia nhỏ ứng dụng thành các dịch vụ rời rạc, độc lập.
Ví dụ: Phân tách một ứng dụng đơn khối thành các dịch vụ độc lập như quản lý người dùng, xử lý thanh toán và gửi thông báo.
4. Định lý CAP (CAP Theorem)
Định nghĩa: Trong hệ thống phân tán, chỉ có thể đạt tối đa hai trong ba yếu tố: Tính nhất quán (Consistency), Tính sẵn sàng (Availability) và Khả năng chịu phân mảnh (Partition Tolerance).
Ví dụ: Khi thiết kế cơ sở dữ liệu phân tán, phải cân nhắc giữa việc ưu tiên tính nhất quán hoặc tính sẵn sàng.
5. Phân mảnh (Sharding)
Định nghĩa: Chia nhỏ cơ sở dữ liệu lớn thành các phần nhỏ hơn gọi là shard để dễ quản lý hơn.
Ví dụ: Phân mảnh cơ sở dữ liệu người dùng theo khu vực địa lý.
6. Độ trễ (Latency)
Định nghĩa: Thời gian để dữ liệu di chuyển từ điểm A đến điểm B.
Ví dụ: Đo lường độ trễ khi truyền tin nhắn qua ứng dụng chat.
7. Thông lượng (Throughput)
Định nghĩa: Lượng dữ liệu mà hệ thống xử lý trong một khoảng thời gian.
Ví dụ: Số lượng yêu cầu được máy chủ web xử lý trong một giây.
8. Bộ nhớ đệm (Cache)
Định nghĩa: Thành phần phần cứng hoặc phần mềm lưu trữ dữ liệu để xử lý các yêu cầu tương tự trong tương lai nhanh hơn.
Ví dụ: Sử dụng Redis để lưu trữ các kết quả truy vấn cơ sở dữ liệu lặp lại.
9. CDN - Mạng phân phối nội dung (Content Delivery Network)
Định nghĩa: Hệ thống máy chủ phân tán địa lý giúp hiển thị nội dung web tới người dùng dựa trên vị trí truy cập.
Ví dụ: Sử dụng Cloudflare CDN để tăng tốc độ tải trang web.
10. REST API
Định nghĩa: Một phong cách kiến trúc thiết kế dịch vụ web, nơi dữ liệu được truy cập và thao tác qua các yêu cầu HTTP.
Ví dụ: Thiết kế API cho mạng xã hội theo nguyên tắc REST (Representational State Transfer).
11. GraphQL
Định nghĩa: Ngôn ngữ truy vấn dữ liệu mạnh mẽ, hiệu quả và linh hoạt hơn so với REST.
Ví dụ: Sử dụng GraphQL để truy vấn thông tin người dùng chỉ bằng một yêu cầu.
12. ACID
Định nghĩa: Bộ thuộc tính đảm bảo xử lý giao dịch cơ sở dữ liệu một cách đáng tin cậy (Atomicity, Consistency, Isolation, Durability).
Ví dụ: Đảm bảo các giao dịch ngân hàng tuân thủ các thuộc tính ACID để tránh sai sót dữ liệu.
13. BASE
Định nghĩa: Một lựa chọn thay thế ACID, ưu tiên tính sẵn sàng và khả năng chịu phân mảnh hơn tính nhất quán chặt chẽ. Bao gồm hệ thống khả dụng, trạng thái linh hoạt, và nhất quán dần dần.
Ví dụ: Thiết kế cơ sở dữ liệu NoSQL đảm bảo tính khả dụng cao, nhất quán dần dần.
14. NoSQL
Định nghĩa: Cơ sở dữ liệu được thiết kế để lưu trữ và truy xuất dữ liệu theo các cách khác ngoài quan hệ bảng như trong cơ sở dữ liệu quan hệ.
Ví dụ: Sử dụng MongoDB để lưu trữ dữ liệu dưới dạng tài liệu.
15. SQL
Định nghĩa: Ngôn ngữ tiêu chuẩn để lưu trữ, thao tác và truy xuất dữ liệu trong cơ sở dữ liệu quan hệ.
Ví dụ: Viết câu truy vấn SQL để lấy dữ liệu từ cơ sở dữ liệu quan hệ.
16. Lập chỉ mục cơ sở dữ liệu (Database Indexing)
Định nghĩa: Kỹ thuật cấu trúc dữ liệu giúp tìm kiếm và truy xuất dữ liệu nhanh hơn trong cơ sở dữ liệu.
Ví dụ: Tạo chỉ mục trên cột User ID để tăng tốc độ tìm kiếm.
17. Sao lưu (Replication)
Định nghĩa: Quá trình sao chép và duy trì các đối tượng cơ sở dữ liệu của nhiều cơ sở dữ liệu khác nhau trong hệ thống phân tán.
Ví dụ: Duy trì một cơ sở dữ liệu có tính khả dụng cao tại các vị trí địa lý khác nhau thông qua sao lưu.
18. Failover
Định nghĩa: Chế độ hoạt động dự phòng, nơi các thành phần hệ thống khác sẽ tiếp quản khi một thành phần chính bị lỗi.
Ví dụ: Thiết lập chuyển đổi tự động sang máy chủ dự phòng khi máy chủ chính của ứng dụng internet gặp sự cố.
19. Cổng API (API Gateway)
Định nghĩa: Máy chủ đứng trước API, nhận các yêu cầu API, áp dụng chính sách bảo mật và kiểm soát lưu lượng, sau đó chuyển tiếp chúng đến các dịch vụ back-end.
Ví dụ: Sử dụng AWS API Gateway để quản lý các API.
20. Service Mesh
Định nghĩa: Lớp hạ tầng chuyên biệt giúp giao tiếp giữa các vi dịch vụ.
Ví dụ: Tích hợp Istio để quản lý các tương tác giữa các vi dịch vụ.
21. Điện toán không máy chủ (Serverless Computing)
Định nghĩa: Là một triển khai điện toán đám mây cho phép tự động phân bổ tài nguyên máy bởi nhà cung cấp đám mây.
Ví dụ: Chạy mã backend mà không cần cấu hình máy chủ bằng AWS Lambda.
22. Kiến trúc hướng sự kiện (Event-Driven Architecture)
Định nghĩa: Là một mô hình kiến trúc phần mềm khuyến khích việc tạo ra, phát hiện, và xử lý các sự kiện.
Ví dụ: Thiết kế hệ thống với các sự kiện giao tiếp giữa các dịch vụ bằng Apache Kafka.
23. Kiến trúc nguyên khối (Monolithic Architecture)
Định nghĩa: Là kiến trúc phần mềm mà tất cả các thành phần được tích hợp trong một ứng dụng duy nhất và chạy dưới dạng một dịch vụ.
Ví dụ: Các ứng dụng doanh nghiệp truyền thống được xây dựng như một khối đơn lẻ.
24. Hệ thống phân tán (Distributed Systems)
Định nghĩa: Là mô hình trong đó các thành phần trên các máy tính mạng liên lạc với nhau và phối hợp hoạt động bằng cách truyền thông điệp.
Ví dụ: Thiết kế hệ thống tệp phân tán như Hadoop.
25. Hàng đợi thông điệp (Message Queue)
Định nghĩa: Là phương pháp cho phép giao tiếp không đồng bộ giữa các dịch vụ trong kiến trúc không máy chủ và microservices.
Ví dụ: Sử dụng RabbitMQ để tạo hàng đợi thông điệp giữa các dịch vụ.
26. Mô hình Pub/Sub
Định nghĩa: Là mô hình nhắn tin trong đó người gửi (publisher) gửi thông điệp một cách trừu tượng để người nhận (subscriber) có thể truy cập mà không cần biết đến người gửi.
Ví dụ: Hệ thống thông báo sử dụng Google Cloud Pub/Sub.
27. Phân vùng dữ liệu (Data Partitioning)
Định nghĩa: Chia cơ sở dữ liệu thành các phần nhỏ hơn, dễ quản lý hơn.
Ví dụ: Phân vùng bảng trong cơ sở dữ liệu theo ngày để tăng tốc độ truy vấn.
28. Mở rộng theo chiều ngang (Horizontal Scaling)
Định nghĩa: Tăng năng lực bằng cách thêm nhiều máy hoặc nút vào hệ thống.
Ví dụ: Thêm nhiều máy chủ web để xử lý lưu lượng truy cập người dùng tăng cao.
29. Mở rộng theo chiều dọc (Vertical Scaling)
Định nghĩa: Nâng cấp máy hiện tại với nhiều tài nguyên hơn như CPU hoặc RAM.
Ví dụ: Nâng cấp RAM của máy chủ để có thể xử lý nhiều yêu cầu cùng lúc.
30. Giới hạn tốc độ (Rate Limiting)
Định nghĩa: Kiểm soát tốc độ lưu lượng mà giao diện mạng gửi hoặc nhận.
Ví dụ: Giới hạn tốc độ API để ngăn hành vi lạm dụng.
31. Mẫu Circuit Breaker
Định nghĩa: Mẫu thiết kế giúp phát hiện lỗi và ngăn chặn lỗi liên tục tái diễn trong phát triển phần mềm hiện đại.
Ví dụ: Xử lý các cuộc gọi dịch vụ từ xa bị lỗi bằng circuit breaker trong kiến trúc microservices.
32. Độ nhất quán dữ liệu (Data Consistency)
Định nghĩa: Đảm bảo dữ liệu giống nhau trên nhiều bản sao và không bị hỏng.
Ví dụ: Duy trì tính nhất quán của dữ liệu người dùng qua nhiều bản sao cơ sở dữ liệu.
33. Nhất quán cuối cùng (Eventual Consistency)
Định nghĩa: Là mô hình nhất quán trong điện toán phân tán, đảm bảo dữ liệu sẽ được truyền và phản ánh trên tất cả các nút.
Ví dụ: Amazon DynamoDB cung cấp mô hình nhất quán cuối cùng cho các hoạt động đọc.
34. Nhất quán mạnh (Strong Consistency)
Định nghĩa: Mô hình nhất quán đảm bảo mọi lần đọc đều nhận được ghi mới nhất trên một đơn vị dữ liệu.
Ví dụ: Sử dụng nhất quán mạnh trong hệ thống giao dịch tài chính.
35. Containerization
Định nghĩa: Khi một ứng dụng và các phụ thuộc của nó được đóng gói vào một container để chạy trên bất kỳ môi trường tính toán nào.
Ví dụ: Sử dụng Docker để container hóa các ứng dụng và triển khai trong các môi trường khác nhau như dev, test, prod.
36. Kubernetes
Định nghĩa: Nền tảng mã nguồn mở giúp tự động hóa việc triển khai, mở rộng, và vận hành các ứng dụng container.
Ví dụ: Chạy và triển khai ứng dụng container bằng Kubernetes.
37. Tự động mở rộng (Autoscaling)
Định nghĩa: Tự động điều chỉnh số lượng tài nguyên tính toán dựa trên tải của người dùng.
Ví dụ: Sử dụng tính năng Auto Scaling của AWS EC2 để tự động điều chỉnh số lượng máy chủ.
38. Nhiều khách hàng (Multi-Tenancy)
Định nghĩa: Kiến trúc trong đó một phiên bản của ứng dụng phần mềm phục vụ nhiều khách hàng/người dùng khác nhau.
Ví dụ: Các ứng dụng SaaS như Salesforce sử dụng mô hình nhiều khách hàng.
39. Giảm tải (Load Shedding)
Định nghĩa: Tạm dừng một số yêu cầu hoặc giảm chất lượng dịch vụ để duy trì sức khỏe của hệ thống khi tải cao.
Ví dụ: Tắt các dịch vụ không cần thiết trong thời gian lưu lượng truy cập cao.
40. Idempotence
Định nghĩa: Tính chất của một số hoạt động đảm bảo khi thực hiện nhiều lần vẫn cho cùng một kết quả.
Ví dụ: Yêu cầu HTTP DELETE là idempotent.
41. Quorum
Định nghĩa: Số phiếu tối thiểu cần thiết để thực hiện một giao dịch phân tán.
Ví dụ: Replication dựa trên quorum đảm bảo tính nhất quán trong cơ sở dữ liệu phân tán.
42. Orchestration
Định nghĩa: Mô hình tương tác dịch vụ trong đó có một bộ điều phối trung tâm quản lý sự tương tác giữa các dịch vụ.
Ví dụ: Sử dụng công cụ quy trình để quản lý quy trình kinh doanh nhiều bước.
43. Choreography
Định nghĩa: Đây là mô hình tương tác dịch vụ mà mỗi dịch vụ tự quản lý và tương tác qua sự kiện mà không cần bộ điều phối.
Ví dụ: Microservices giao tiếp qua một bus sự kiện theo mô hình choreography.
44. Service Registry
Định nghĩa: Cơ sở dữ liệu theo dõi các phiên bản của các dịch vụ microservices.
Ví dụ: Sử dụng Eureka Service Registry trong kiến trúc microservices.
45. Giới hạn tốc độ API
Định nghĩa: Kiểm soát số lượng yêu cầu mà một khách hàng có thể thực hiện với API trong khoảng thời gian nhất định.
Ví dụ: Giới hạn số yêu cầu API là 100 mỗi phút để ngăn ngừa lạm dụng.
46. Kho dữ liệu (Data Warehouse)
Định nghĩa: Hệ thống hỗ trợ việc tạo báo cáo và phân tích dữ liệu kinh doanh; là trung tâm của Business Intelligence.
Ví dụ: Amazon Redshift được sử dụng trong kho dữ liệu.
47. Hồ dữ liệu (Data Lake)
Định nghĩa: Hệ thống hoặc kho lưu trữ dữ liệu được giữ nguyên dạng ban đầu, thường là các blob hoặc tệp đối tượng.
Ví dụ: Lưu trữ và quản lý dữ liệu có cấu trúc và phi cấu trúc trong hồ dữ liệu quy mô petabyte.
48. OLAP
Định nghĩa: Xử lý phân tích trực tuyến; phần mềm cho phép phân tích dữ liệu trong cơ sở dữ liệu.
Ví dụ: Sử dụng OLAP cubes để truy vấn phân tích chuyên sâu.
49. OLTP
Định nghĩa: Xử lý giao dịch trực tuyến; hệ thống quản lý các ứng dụng liên quan đến giao dịch.
Ví dụ: Sử dụng hệ thống OLTP để quản lý dữ liệu giao dịch như trong hệ thống ngân hàng.
50. Dữ liệu lớn (Big Data)
Định nghĩa: Các tập dữ liệu lớn, phức tạp không thể xử lý hiệu quả bằng phần mềm xử lý dữ liệu thông thường.
Ví dụ: Phân tích các tương tác trên mạng xã hội để dự đoán xu hướng thời trang.
Lời kết
Hiểu rõ các thuật ngữ thiết kế hệ thống không chỉ giúp bạn tự tin hơn trong các buổi phỏng vấn mà còn cải thiện khả năng thiết kế và tối ưu hóa hệ thống trong thực tế. VietnamWorks inTECH hy vọng danh sách trên đã cung cấp cho bạn những kiến thức nền tảng quan trọng để xây dựng và vận hành những hệ thống mạnh mẽ và hiệu quả.
TẠO TÀI KHOẢN MỚI: XEM FULL “1 TÁCH CODEFEE” - NHẬN SLOT TƯ VẤN CV TỪ CHUYÊN GIA - CƠ HỘI RINH VỀ VOUCHER 200K