Tính năng và kiến trúc
FPT MongoDB Enterprise chạy trên hạ tầng cloud-native của FPT Cloud, với các thành phần vận hành và bảo vệ được tích hợp sẵn thay vì gắn thêm sau. Trang này nêu dịch vụ làm được gì, và quyết định kiến trúc duy nhất mà bạn không đổi được về sau.
Tổng hợp khả năng
Khả năng chia thành tám nhóm. Một số luôn sẵn sàng; số khác phải bật lên mới bảo vệ hay báo cáo được gì. Cột cuối là cột cần đọc nếu bạn đang lên kế hoạch triển khai production.
| Nhóm | Bạn nhận được gì | Bật sẵn? |
|---|---|---|
| Quản lý & vận hành database | Console tập trung để provisioning, cấu hình và vận hành cluster. Tự động hóa vòng đời gồm provisioning, scaling tài nguyên, cấu hình parameter và quản lý dịch vụ. | Có |
| High Availability & khả năng mở rộng | Kiến trúc Standalone, Replica Set và Sharded Cluster. Failover tự động trên Replica Set và trong từng shard. Mở rộng ngang qua nhiều shard. | Kiến trúc được chọn lúc provisioning |
| Backup & recovery | Backup tự động theo lịch và point-in-time recovery. | Backup và PITR bật sẵn lúc tạo, nhưng dữ liệu chưa được bảo vệ cho đến khi có backup job và job đó đã chạy |
| Monitoring & alert | Metric real-time (CPU, memory, IOPS, connection) qua FPT Monitoring, kèm dashboard Grafana và tra cứu log. | Không — cần liên hệ FPT Support để bật |
| Bảo mật & tuân thủ | Mã hóa khi lưu trữ và khi truyền, RBAC, tích hợp VPC, kiểm soát truy cập theo IP. | Có |
| Tối ưu hiệu năng | Cấu hình engine, chiến lược index, tối ưu truy vấn. | Bạn tự áp dụng |
| Logging & audit | Log tập trung và dấu vết audit phục vụ xử lý sự cố và tuân thủ. | Có |
| Dịch vụ được quản lý & hỗ trợ | FPT Cloud vận hành 24/7, xử lý sự cố theo SLA. | Có |
Hai thứ cần bạn ra tay
Phần lớn danh sách trên hoạt động ngay khi cluster chạy. Hai thứ thì không, và mỗi thứ đều từng khiến người dùng mắc lỗi:
- Backup. Backup service bật khi bạn tạo cluster, nhưng điều đó chỉ có nghĩa là dịch vụ sẵn sàng. Chưa có restore point nào cho đến khi một backup job được cấu hình và chạy xong ít nhất một lần. Xem Tổng quan Backup & Restore.
- Monitoring. Không tự phục vụ. Tab Monitor sẽ nhắc bạn liên hệ FPT Support để bật thu thập dữ liệu cho cluster. Xem Monitor & alert.
Chọn kiến trúc
Đây là quyết định quan trọng nhất, vì nó cố định ngay lúc provisioning. Nó quyết định cluster có sống sót khi mất một node hay không, và có mở rộng vượt sức chứa của một máy đơn lẻ được hay không.
| Standalone | Replica Set | Sharded Cluster | |
|---|---|---|---|
| Cấu trúc | Một database instance, không replication | Một Primary và nhiều Secondary node | Nhiều shard, mỗi shard là một replica set 3 node, đứng sau mongos router và config server 3 node |
| Failover tự động | Không | Có | Có, trong từng shard |
| Replication dữ liệu | Không | Có | Có, trong từng shard |
| Cách tăng dung lượng | Chỉ nâng node lớn hơn | Nâng node lớn hơn, hoặc thêm node | Nâng node lớn hơn, thêm mongos router, hoặc thêm shard |
| Giảm gián đoạn khi nâng cấp phiên bản | Không | Có | Có |
| Tốc độ triển khai | Nhanh nhất | Chậm hơn | Chậm nhất |
| Quy mô nhỏ nhất | 1 node | 3 node | 11 node |
| Khuyến nghị cho | Phát triển, kiểm thử, staging, workload nhỏ | Production và mọi hệ thống cần chịu lỗi | Khối dữ liệu hoặc lượng ghi vượt sức một replica set |
Standalone triển khai nhanh, rẻ hơn và đơn giản hơn khi quản lý. Đánh đổi là triệt để: không có failover, và nếu node không khả dụng thì dịch vụ dừng.
Replica Set replicate dữ liệu qua nhiều node và tự động thăng cấp một Secondary khi Primary hỏng, giữ cho dịch vụ chạy tiếp qua sự cố node. Mọi node vẫn giữ trọn bộ dữ liệu, nên trần mở rộng chính là node lớn nhất bạn mua được.
Sharded Cluster phá trần đó. Dữ liệu được chia theo shard key, mỗi shard chỉ giữ phần của mình, nên dung lượng và throughput ghi tăng theo số shard thay vì theo kích thước node. Cái giá là số lượng node và độ phức tạp vận hành — cluster nhỏ nhất console dựng được là 11 node, và hiệu năng truy vấn giờ phụ thuộc vào việc chọn shard key sao cho tải trải đều.
Sharded Cluster gồm những gì
Ba vai trò node, mỗi vai trò được cấu hình riêng lúc provisioning:
| Vai trò | Nhiệm vụ | Số node |
|---|---|---|
| Mongos | Query router. Client kết nối vào đây chứ không vào thẳng shard. Mongos đọc metadata của cluster rồi chuyển từng thao tác tới đúng shard đang giữ dữ liệu. Không lưu trạng thái nên không giữ dữ liệu riêng. | 2 đến 32, bạn chọn |
| Shard | Giữ một phần dữ liệu. Mỗi shard triển khai dưới dạng replica set 3 node, nên bản thân shard chịu được mất một node. | 2 đến 32 shard, bạn chọn — tức 6 đến 96 data node |
| ConfigServer | Lưu metadata của cluster: chunk nào trong dải shard key nằm trên shard nào. Triển khai dưới dạng replica set. | Cố định 3 |
Vậy một cluster 2 shard gồm 2 mongos + (2 × 3) node shard + 3 config server = 11 node.
Số shard không bị khoá từ lúc tạo — bạn tăng được về sau ngay ở tab Overview của cluster, cùng với số mongos router. Config server thì vẫn giữ 3 trong mọi trường hợp. Xem Scale out database cluster.
Dù vậy, thêm shard vẫn là thao tác cần lên kế hoạch chứ không phải bật một công tắc: MongoDB phân phối lại dữ liệu sang bộ shard mới, và hiệu năng tụt trong lúc chạy. Ước lượng sẵn theo lượng dữ liệu bạn dự kiến sẽ đỡ được một lần rebalance.
Architecture Type được đặt khi tạo cluster và không thể thay đổi sau đó. Chuyển giữa Standalone, Replica Set và Sharded Cluster nghĩa là provisioning cluster mới và migrate dữ liệu. Chọn Replica Set nếu workload có khả năng trở thành production, và chỉ chọn Sharded Cluster khi đã chắc một replica set không chứa nổi dữ liệu.
Thành phần nền tảng
Quanh bản thân database, dịch vụ tích hợp các thành phần tập trung bao phủ toàn bộ vòng đời cluster:
- Monitoring — metric và log, hiển thị qua FPT Monitoring và Grafana
- Logging — thu thập tập trung phục vụ xử lý sự cố và audit
- Backup và restore — backup theo lịch cùng point-in-time recovery
- Alert tự động — gửi qua email và Telegram khi có sự kiện backup, tài nguyên, scaling và maintenance
Scaling tài nguyên chạy online: vCPU, RAM và storage điều chỉnh được mà không phải dừng cluster, trong phạm vi quota của VPC.
Cô lập và bảo mật
Kiến trúc áp dụng cô lập nhiều lớp, kết hợp với:
- Cô lập mạng bằng cách đặt trong VPC, nên cluster nằm trong ranh giới mạng của chính bạn
- Mã hóa dữ liệu khi lưu trữ và khi truyền
- Kiểm soát truy cập qua IAM role và Security Group
Kết hợp lại, dữ liệu được bảo vệ cả ở nơi lưu trữ lẫn khi di chuyển.
Bước tiếp theo
- Phiên bản Database Engine để xem danh mục phiên bản được hỗ trợ
- Kết nối tới database qua Floating IP để biết về endpoint, mô hình truy cập và Security Group
- Tạo database đầu tiên sau khi đã chọn kiến trúc