部署指南
欢迎来到 DatomsDBS 部署指南!这里提供了各种环境下的部署方案和最佳实践。
🚀 部署方案
AWS 部署指南
在 AWS 云平台上部署 DatomsDBS:
- EC2 实例配置
- RDS 数据库设置
- 负载均衡配置
- 安全组设置
- 监控和日志
AWS EC2 自动化部署
自动化 AWS 部署流程:
- 自动化脚本配置
- 基础设施即代码
- CI/CD 流水线
- 环境管理
- 成本优化
AWS EC2 自动化测试
自动化测试和验证:
- 部署后测试
- 健康检查脚本
- 性能测试
- 故障恢复测试
- 监控告警
🏗️ 部署架构
单机部署
┌─────────────────┐
│ DatomsDBS │
│ ┌───────────┐ │
│ │ Web │ │
│ │ Server │ │
│ └───────────┘ │
│ ┌───────────┐ │
│ │ DatomsDB │ │
│ │ Database │ │
│ └───────────┘ │
│ ┌───────────┐ │
│ │ Ollama │ │
│ │ AI Model │ │
│ └───────────┘ │
└─────────────────┘
分布式部署
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ Load │ │ Application │ │ Database │
│ Balancer │───▶│ Servers │───▶│ Cluster │
│ (Nginx) │ │ (Node.js) │ │ (DatomsDB) │
└─────────────┘ └─────────────┘ └─────────────┘
│
┌─────────────┐
│ AI Services │
│ (Ollama) │
└─────────────┘
🔧 环境配置
生产环境要求
# 最低配置
CPU: 4 核心
内存: 8GB RAM
存储: 100GB SSD
网络: 1Gbps
# 推荐配置
CPU: 8+ 核心
内存: 16GB+ RAM
存储: 500GB+ SSD
网络: 10Gbps
环境变量配置
# 生产环境配置
NODE_ENV=production
PORT=9000
# 数据库配置
DB_HOST=your-db-host
DB_PORT=5432
DB_NAME=datomsdbs_prod
DB_USER=datomsdbs_user
DB_PASSWORD=secure_password
# AI 配置
OLLAMA_HOST=your-ollama-host
OLLAMA_PORT=11434
DEFAULT_MODEL=llama2
# 安全配置
JWT_SECRET=your-super-secure-jwt-secret
ENCRYPTION_KEY=your-encryption-key
🐳 容器化部署
Docker 部署
# 构建镜像
docker build -t datomsdbs:latest .
# 运行容器
docker run -d \
--name datomsdbs \
-p 9000:9000 \
-e NODE_ENV=production \
-e DB_HOST=your-db-host \
datomsdbs:latest
Docker Compose 部署
version: '3.8'
services:
datomsdbs:
build: .
ports:
- "9000:9000"
environment:
- NODE_ENV=production
- DB_HOST=postgres
depends_on:
- postgres
- ollama
postgres:
image: postgres:13
environment:
- POSTGRES_DB=datomsdbs
- POSTGRES_USER=admin
- POSTGRES_PASSWORD=password
volumes:
- postgres_data:/var/lib/postgresql/data
ollama:
image: ollama/ollama:latest
ports:
- "11434:11434"
volumes:
- ollama_data:/root/.ollama
volumes:
postgres_data:
ollama_data:
☁️ 云平台部署
AWS 部署清单
- EC2 实例创建和配置
- RDS 数据库设置
- S3 存储桶配置
- VPC 和安全组设置
- Load Balancer 配置
- CloudWatch 监控设置
- Route 53 DNS 配置
- SSL 证书配置
Azure 部署清单
- App Service 创建
- Azure Database 设置
- Blob Storage 配置
- Virtual Network 设置
- Application Gateway 配置
- Monitor 监控设置
- DNS Zone 配置
- Key Vault 密钥管理
GCP 部署清单
- Compute Engine 实例
- Cloud SQL 数据库
- Cloud Storage 配置
- VPC 网络设置
- Load Balancer 配置
- Stackdriver 监控
- Cloud DNS 配置
- Secret Manager 配置
🔒 安全配置
网络安全
# 防火墙规则
# 只允许必要端口
ufw allow 22/tcp # SSH
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw allow 9000/tcp # Application
ufw enable
SSL/TLS 配置
server {
listen 443 ssl http2;
server_name your-domain.com;
ssl_certificate /path/to/certificate.crt;
ssl_certificate_key /path/to/private.key;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512;
location / {
proxy_pass http://localhost:9000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}
}
📊 监控和日志
监控指标
- 系统指标: CPU、内存、磁盘、网络
- 应用指标: 响应时间、吞吐量、错误率
- 业务指标: 用户活跃度、查询次数、数据量
日志管理
// 生产环境日志配置
const winston = require('winston');
const logger = winston.createLogger({
level: 'info',
format: winston.format.combine(
winston.format.timestamp(),
winston.format.json()
),
transports: [
new winston.transports.File({ filename: 'error.log', level: 'error' }),
new winston.transports.File({ filename: 'combined.log' })
]
});
🔄 备份和恢复
数据备份策略
# 数据库备份
pg_dump -h localhost -U admin datomsdbs > backup_$(date +%Y%m%d).sql
# 文件备份
tar -czf files_backup_$(date +%Y%m%d).tar.gz /path/to/files
# 自动化备份脚本
0 2 * * * /path/to/backup_script.sh
灾难恢复计划
- 数据恢复: 从最近备份恢复数据
- 服务重启: 重新启动应用服务
- 健康检查: 验证系统功能正常
- 监控恢复: 确认监控系统正常
- 用户通知: 通知用户服务恢复
🚨 故障排除
常见部署问题
端口冲突
# 检查端口占用
netstat -tulpn | grep :9000
lsof -i :9000
# 终止占用进程
kill -9 <PID>
权限问题
# 设置正确权限
chown -R app:app /path/to/app
chmod +x /path/to/app/start.sh
内存不足
# 检查内存使用
free -h
top -p $(pgrep node)
# 增加 swap 空间
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
📞 部署支持
如需部署支持,请: