Chuyển tới nội dung chính

🏗️ Kiến Trúc Nexus

"Một nền tảng vững chắc không chỉ chịu được trọng lượng hiện tại — nó còn sẵn sàng cho tương lai."


🎯 Triết Lý Thiết Kế

Kiến trúc Nexus được xây dựng trên ba nguyên tắc cốt lõi:

Nguyên tắcÝ nghĩa thực tiễn
Độc lập mô-đunMỗi công cụ hoạt động độc lập — có thể triển khai từng phần, không cần all-or-nothing
Triển khai không phụ thuộcMột file binary duy nhất, không cần runtime, không cần cài đặt phức tạp
Đa nền tảng nguyên bảnWindows (Dev) và Linux (Production) — hành vi giống hệt nhau, không có bất ngờ

🧬 Kiến Trúc Hệ Thống

Nexus là một Rust workspace — 11 crate chuyên biệt chia sẻ thư viện lõi nhưng duy trì ranh giới trách nhiệm rõ ràng.

graph TB
subgraph "Môi trường phát triển"
VSCODE["VS Code Extension"]
NEXUS_CLI["nexus CLI"]
ICOMP["icomp — Trình biên dịch"]
end

subgraph "Management Server — isman"
AXUM["Axum HTTP Server"]
IPOL_SVC["Policy Service (ipol)"]
ING_SVC["Ingenium Service (ing)"]
JOBS["Job Scheduler"]
HEALTH["Health Monitor"]
end

subgraph "Core Library"
TERMINAL["Terminal Abstraction"]
DB2["DB2 Integration"]
CRYPTO["AES-256-GCM Crypto"]
SSH_LIB["SSH Library"]
POOL["Terminal Pool"]
PROCESS["Process Manager"]
end

subgraph "Hệ thống mục tiêu"
LOCAL["Local Terminal"]
REMOTE["Remote SSH Servers"]
DB2_SERVER["DB2 Database"]
end

VSCODE --> NEXUS_CLI
VSCODE --> ICOMP
VSCODE --> AXUM
NEXUS_CLI --> TERMINAL
ICOMP --> TERMINAL
AXUM --> IPOL_SVC
AXUM --> ING_SVC
AXUM --> JOBS
AXUM --> HEALTH
IPOL_SVC --> TERMINAL
IPOL_SVC --> DB2
ING_SVC --> TERMINAL
JOBS --> TERMINAL
TERMINAL --> LOCAL
TERMINAL --> REMOTE
DB2 --> DB2_SERVER
REMOTE -.-> SSH_LIB
TERMINAL -.-> POOL

📦 Bản Đồ Phụ Thuộc

Mọi thành phần đều xây dựng trên Core Library — đảm bảo hành vi nhất quán trên toàn hệ thống:

CrateLoạiChức năng
coreLibraryNền tảng: terminal, DB2, crypto, parallel execution
sshLibraryQuản lý kết nối SSH, connection pooling
policyLibraryMô hình dữ liệu policy và nghiệp vụ
nexusBinaryCLI điều phối môi trường
icompBinaryTrình biên dịch COBOL thông minh
imanBinaryQuản lý Ingenium (CLI)
ipolBinaryQuản lý Policy (CLI)
ismanBinaryHTTP server quản lý trung tâm
benovaBinaryTiện ích lập trình viên
vscextExtensionTích hợp VS Code

🔌 Tầng Trừu Tượng Terminal

Đây là quyết định kiến trúc quan trọng nhất của Nexus — một abstraction thống nhất cho phép mọi thao tác chạy giống hệt nhau trên máy local hoặc remote server qua SSH.

               ┌──────────────────────┐
│ Terminal Trait │
│ execute() │
│ read_all() │
│ change_directory() │
│ get_variable() │
└──┬───────────────┬───┘
│ │
┌───────▼────┐ ┌──────▼──────────┐
│ Local │ │ SSH Terminal │
│ Terminal │ │ (Remote) │
└────────────┘ └─────────────────┘

Lợi ích thực tế:

  • Viết một lần, chạy mọi nơi — Code quản lý máy dev local và server production là như nhau
  • Terminal Pooling — Tái sử dụng kết nối hiệu quả, ngăn resource exhaustion
  • Timeout cấu hình được — Từ query nhanh (giây) đến batch job dài hàng phút
  • Health check tự động — Kết nối chết được phát hiện và thay thế trong suốt, không gián đoạn

🌐 Kiến Trúc Management Server

isman được xây dựng trên Axum + Tokio — stack async Rust hiệu năng cao, xử lý hàng nghìn request đồng thời với tài nguyên tối thiểu.

Client Request


┌───────────┐ ┌──────────────┐ ┌────────────────┐
│ Router │────▶│ Validation │────▶│ spawn_blocking │
│ (Axum) │ │ (Params) │ │ (Tokio) │
└───────────┘ └──────────────┘ └───────┬────────┘

┌────────▼───────┐
│ Terminal Pool │
└────────┬───────┘

┌────────▼───────┐
│ DB2 / SSH Ops │
└────────────────┘

API Endpoints

EndpointMethodChức năng
/pingGETKiểm tra kết nối nhanh
/statusGETSức khỏe hệ thống & uptime
/ipol/tasksGETDanh sách policy task
/ipol/copyPOSTSao chép policy giữa các môi trường
/ipol/exportPOSTXuất policy artifacts
/ipol/importPOSTNhập policy artifacts
/ipol/uploadPOSTTải archive lên qua HTTP
/ipol/downloadGETTải archive xuống qua HTTP
/shutdownPOSTTắt server có kiểm soát

🗄️ Tích Hợp DB2

  • Quản lý kết nối tự động — Kết nối một lần, tái sử dụng, tự ngắt khi dọn dẹp
  • Xử lý credential an toàn — Giải mã trong memory, dùng xong xóa ngay, không bao giờ ghi log
  • Ngăn SQL injection — Hàm sql_escape() tích hợp và parameterized queries
  • Thao tác nguyên tử — Hỗ trợ BEGIN ATOMIC ... END cho multi-statement transactions
  • Phát hiện lỗi thông minh — Phân tích SQLSTATE và SQL code để báo lỗi chính xác

📐 Stack Công Nghệ

TầngCông nghệLý do lựa chọn
Ngôn ngữ chínhRustHiệu năng cao + an toàn bộ nhớ + binary đơn lẻ
Async RuntimeTokioXử lý hàng nghìn kết nối đồng thời, zero overhead
HTTP FrameworkAxumNhanh nhất trong Rust, routing type-safe
Mã hóaAES-256-GCMTiêu chuẩn quân sự, tích hợp xác thực
SSHlibssh2Thư viện SSH đã được kiểm chứng thực tế
Serializationserde + serde_jsonZero-copy, hiệu năng cực cao
CompressionzstdTỉ lệ nén tối ưu nhất hiện nay

📄 Tuyên Bố Pháp Lý

Tài liệu này được cung cấp cho mục đích tham khảo và tư vấn. Mọi thương hiệu thuộc sở hữu của chủ tương ứng. Dự án không liên kết với DXC Technology, Sun Life hay bất kỳ bên thứ ba nào được đề cập.