Hệ thống môi trường Docker cho mạng lưới phân tán đa tầng (vệ tinh, máy bay, mặt đất, di động, tàu biển).
┌─────────────────────────────────────────────────────────┐
│ Backend (NestJS) + MongoDB + Heuristic Service │
│ Ports: 3000 (API), 50051 (Node gRPC), 50053 (Timeline) │
└─────────────────────────────────────────────────────────┘
▲
│
┌─────────────────────────┴─────────────────────────┐
│ Network: 192.168.100.0/24 │
├────────────────────────────────────────────────────┤
│ 🛰️ Satellites (2) │ ✈️ Drones (3) │
│ 🏢 Ground Stations (3)│ 📱 Mobile Devices (4) │
│ 🚢 Ships (3) │ │
└────────────────────────────────────────────────────┘
- Backend: API server, gRPC services (monitoring + timeline tracking)
- Heuristic: Route optimization service
- MongoDB: Database lưu trữ nodes, metrics, timelines
- 15 Agents: Nodes phân tán theo địa lý thực tế
environment-configuration/
├── topology.docker-compose.yml # Docker Compose orchestration
├── topology.json # Network topology definition
├── custom_hosts # DNS mapping cho agents
├── random_connected.py # Script tạo topology ngẫu nhiên
└── .dockerignore # Docker ignore rules
- Nodes: 15 nodes với tọa độ GPS thực tế
- Types: space, air, ground, mobile, sea
- Links: 20-23 connections đảm bảo connectivity
- Docker Engine 20.10+
- Docker Compose v2+
- 8GB RAM khả dụng
# Pull images từ Docker Hub
docker-compose -f topology.docker-compose.yml pull
# Start toàn bộ hệ thống
docker-compose -f topology.docker-compose.yml up -d
# Kiểm tra trạng thái
docker-compose -f topology.docker-compose.yml ps
# Xem logs
docker-compose -f topology.docker-compose.yml logs -f- Backend API: http://localhost:3000
- MongoDB: mongodb://localhost:27017
- Frontend: http://localhost:5173 (chạy riêng)
# Dừng containers
docker-compose -f topology.docker-compose.yml down
# Xóa volumes (reset database)
docker-compose -f topology.docker-compose.yml down -v- Multi-tier Network: 15 nodes phân tầng space/air/ground/mobile/sea
- Auto-discovery: Agents tự động connect và register với backend
- Metric Monitoring: Real-time CPU, RAM, network, disk metrics
- File Transfer: Hop-by-hop transfer với MD5 verification
- Timeline Tracking: Millisecond-precision transfer timeline
- Heuristic Routing: Tối ưu route dựa trên metrics và topology
- Health Checks: Auto-restart và dependency management
- Startup Time: ~30-45 giây cho toàn bộ stack
- Network Latency: <10ms giữa các containers
- Resource Usage: ~6GB RAM, ~4GB disk
- Agents Connected: 15/15 nodes
- Node Status: Dashboard hiển thị realtime 15 nodes
- Metrics Graphs: CPU, RAM, bandwidth visualization
- Timeline View: File transfer tracking với tooltips
- Network Topology: Force-directed graph visualization
# Chỉnh sửa hostnames trong random_connected.py
python random_connected.py
# Hoặc edit trực tiếp topology.json
# Sau đó restart containers- Thêm service mới vào
topology.docker-compose.yml - Cập nhật
custom_hostsvới IP mapping - Cập nhật
topology.jsonvới node/link mới - Restart:
docker-compose up -d
# Backend
- NODE_ENV=production
- DATABASE_URL=mongodb://mongodb:27017/sagsin-db
- GRPC_URL=0.0.0.0:50051
- TIMELINE_GRPC_PORT=0.0.0.0:50053
# Agents
- HOST_NAME=<node_name>
- LAT=<latitude>
- LNG=<longitude>- Agents sử dụng
/etc/hostsmapping cho communication - Backend health check đảm bảo agents chỉ start khi backend ready
- Topology file được mount read-only vào agents
- Network sử dụng custom subnet
192.168.100.0/24
Docker Images: baocules/sagsin-be, baocules/sagsin-agent, baocules/sagsin-heuristic