Phân tích kiến trúc KYPO Microservices Architecture
Tổng quan
KYPO Cyber Range Platform không được xây dựng như một hệ thống nguyên khối (monolithic) mà được thiết kế theo kiến trúc microservices. Trong mô hình này, mỗi thành phần chức năng được triển khai dưới dạng dịch vụ độc lập và được container hóa bằng Docker.
Các dịch vụ giao tiếp với nhau thông qua REST API, giúp hệ thống linh hoạt, dễ mở rộng và dễ bảo trì.
Sơ đồ kiến trúc hệ thống

Các lớp trong kiến trúc hệ thống
Kiến trúc microservices của KYPO Cyber Range được chia thành ba lớp chính:
- Frontend (User Interface)
- Backend Microservices
- Infrastructure & Automation
Ba lớp này phối hợp với nhau thông qua REST API để cung cấp môi trường đào tạo an ninh mạng linh hoạt và tự động.
Frontend (User Interface)
Frontend của hệ thống là KYPO Angular Portal, đóng vai trò là giao diện web trung tâm cho toàn bộ hệ thống.
Portal phục vụ hai nhóm người dùng chính:
- Administrator / Instructor
- Student / Trainee
Các chức năng chính của Portal:
- Thu thập yêu cầu từ người dùng (đăng nhập, tạo training, tham gia lab...)
- Gửi request đến các backend services thông qua REST API
- Hiển thị kết quả trả về như trạng thái lab, thông tin người dùng, quyền truy cập...
Frontend chỉ đảm nhiệm phần giao diện và tương tác người dùng, trong khi toàn bộ logic nghiệp vụ được xử lý ở backend.
Backend Microservices
Lớp backend là trung tâm xử lý logic của hệ thống. Các chức năng được chia thành nhiều microservices độc lập.
Xác thực và quản lý người dùng
Người dùng đăng nhập thông qua KYPO Angular Portal và được chuyển đến hệ thống xác thực sử dụng Keycloak OIDC.
Keycloak thực hiện:
- Authentication (xác thực người dùng)
- Cấp Access Token (OIDC / JWT)
Sau khi xác thực thành công, token này sẽ được các service backend sử dụng để xác định quyền truy cập của người dùng.
User Management Service
User Management Service chịu trách nhiệm:
- Quản lý thông tin người dùng
- Xác định role (admin / instructor / student)
- Cung cấp thông tin user cho các service khác
Các service khác không xác thực trực tiếp người dùng mà tin cậy token do Keycloak cấp.
Training Service
Training Service chịu trách nhiệm quản lý toàn bộ logic đào tạo:
- Quản lý course và training
- Quản lý scenario
- Quản lý topology lab
- Xác định số lượng VM cần thiết
- Quản lý tiến độ của người học
Service này quyết định khi nào cần tạo môi trường sandbox cho người học.
Training Service cũng có thể gọi REST API của User Management Service để kiểm tra:
- User là ai
- Thuộc role nào
- Có quyền tạo hoặc tham gia training hay không
Điều này giúp đảm bảo việc phân quyền được quản lý tập trung.
Sandbox Service
Sandbox Service đóng vai trò là thành phần điều phối việc triển khai môi trường lab.
Training Service gửi yêu cầu tạo môi trường đến Sandbox Service, bao gồm:
- số lượng VM
- loại hệ điều hành
- network topology
- thông tin scenario
Sandbox Service thực hiện:
- Authentication và Authorization
- Quản lý quota
- Quản lý vòng đời sandbox (create / reset / destroy)
Sandbox Service được chia thành hai phần:
- Sandbox API Gateway
- Sandbox Infrastructure Orchestration
API Gateway tiếp nhận request từ Training Service và chuyển đến lớp orchestration để triển khai hạ tầng.
Infrastructure & Automation
Lớp hạ tầng chịu trách nhiệm triển khai và cấu hình các môi trường máy ảo.
OpenStack
Hệ thống sử dụng OpenStack để cung cấp tài nguyên hạ tầng cloud.
OpenStack chịu trách nhiệm:
- tạo máy ảo (VM)
- tạo network
- gán IP
- quản lý security group
Chỉ Sandbox Infrastructure Orchestration mới giao tiếp trực tiếp với OpenStack.
Terraform (Infrastructure as Code)
Sandbox Service sử dụng KYPO Terraform Client để triển khai hạ tầng dưới dạng Infrastructure as Code.
Terraform thực hiện:
- lập kế hoạch triển khai
- tạo VM
- tạo network
- cấu hình tài nguyên trên OpenStack
Ansible Automation
Sau khi các VM được tạo, hệ thống sử dụng Ansible để tự động cấu hình môi trường.
Ansible thực hiện:
- cấu hình hệ điều hành
- cài đặt các công cụ cần thiết
- thiết lập network nội bộ
- triển khai scenario
- tạo các lỗ hổng giả lập phục vụ đào tạo
Nhờ đó môi trường sandbox được thiết lập hoàn toàn tự động.
Luồng hoạt động của hệ thống
Quy trình hoạt động của KYPO Cyber Range diễn ra theo các bước sau:
- Người dùng đăng nhập vào KYPO Angular Portal
- Portal chuyển yêu cầu xác thực đến Keycloak
- Sau khi xác thực thành công, Keycloak cấp Access Token
- Portal gửi request đến Training Service
- Training Service yêu cầu Sandbox Service tạo môi trường lab
- Sandbox Service sử dụng Terraform để triển khai hạ tầng trên OpenStack
- Ansible cấu hình VM và cài đặt scenario
- Trạng thái môi trường được trả về Sandbox Service
- Training Service cập nhật trạng thái và gửi kết quả về Portal
- Người dùng nhận thông tin truy cập và bắt đầu thực hành
Đặc điểm của kiến trúc
Isolation
Mỗi người học được cấp một môi trường sandbox riêng biệt, đảm bảo không ảnh hưởng đến các sandbox khác.
Scalability
Nhờ kiến trúc microservices, các dịch vụ như Training Service hoặc User Management Service có thể được mở rộng độc lập mà không ảnh hưởng toàn hệ thống.
Reproducibility
Việc sử dụng Infrastructure as Code giúp hệ thống triển khai hàng loạt môi trường giống hệt nhau một cách nhanh chóng và nhất quán.
Centralized Security
Hệ thống xác thực tập trung thông qua Keycloak giúp tăng cường bảo mật và giảm rủi ro tấn công.
Full Automation
Sự kết hợp giữa Terraform và Ansible tạo nên quy trình triển khai môi trường lab hoàn toàn tự động.
