11. 交付与运维
11.1 一键部署
部署方案
智能农业解决方案支持多种部署方式,提供一键部署脚本:
部署方式
1. Docker Compose部署
- 适用场景:单机部署、开发测试环境
- 优势:简单快速,易于管理
- 劣势:不适合大规模生产环境
2. Kubernetes部署
- 适用场景:生产环境、大规模部署
- 优势:高可用、弹性伸缩、易于管理
- 劣势:配置复杂,需要Kubernetes集群
3. 云服务部署
- 适用场景:快速上线、弹性扩展
- 优势:无需维护基础设施,按需付费
- 劣势:成本较高,依赖云服务商
Docker Compose部署
docker-compose.yml:
version: '3.8'
services:
# API服务
agriculture-api:
image: agriculture-api:latest
ports:
- "8000:8000"
environment:
- DATABASE_URL=postgresql://user:password@postgres:5432/agriculture_db
- REDIS_URL=redis://redis:6379
- VECTOR_DB_URL=http://milvus:19530
- INFLUXDB_URL=http://influxdb:8086
depends_on:
- postgres
- redis
- milvus
- influxdb
# 数据库
postgres:
image: postgres:14
environment:
- POSTGRES_DB=agriculture_db
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
volumes:
- postgres_data:/var/lib/postgresql/data
# Redis
redis:
image: redis:7
volumes:
- redis_data:/data
# 向量数据库
milvus:
image: milvusdb/milvus:latest
volumes:
- milvus_data:/var/lib/milvus
# 时序数据库
influxdb:
image: influxdb:2.7
volumes:
- influxdb_data:/var/lib/influxdb2
volumes:
postgres_data:
redis_data:
milvus_data:
influxdb_data:
部署脚本:
#!/bin/bash
# deploy.sh
echo "开始部署智能农业解决方案..."
# 检查Docker和Docker Compose
if ! command -v docker &> /dev/null; then
echo "错误: 未安装Docker"
exit 1
fi
if ! command -v docker-compose &> /dev/null; then
echo "错误: 未安装Docker Compose"
exit 1
fi
# 拉取最新镜像
echo "拉取最新镜像..."
docker-compose pull
# 启动服务
echo "启动服务..."
docker-compose up -d
# 等待服务启动
echo "等待服务启动..."
sleep 30
# 检查服务状态
echo "检查服务状态..."
docker-compose ps
echo "部署完成!"