后端服务
后端用python实现,采用flask web框架。
可从github上获取flasky源码,在此基础上进行业务逻辑的实现。
程序结构如下:
├── app # 业务逻辑实现代码
│ ├── common # 公共函数实现,这里主要是数据库相关的增删改查接口实现,以及算法模型的推断功能实现
│ ├── init.py
│ ├── main # 视图函数实现,即供前端调用的API实现
│ └── pycache
├── config.py # 工程配置文件
├── log.txt # 日志文件
├── manage.py # 工程启动入口文件
└── start.sh # 启动脚本
启动服务
Gunicorn是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server,这里通过gunicorn部署我们的后端服务。
启动脚本start.sh如下:
gunicorn -w 4 -t 200 -b 0.0.0.0:8900 manage:app
执行脚本即可。
docker容器封装服务
该项目后端业务功能执行涉及算法模型的推断,算法模型依赖环境较复杂,为了后续方便部署,将服务封装成一个docker镜像,启动docker容器即可启动服务。
1.构建镜像
通过Dockerfile构建镜像。
# Dockerfile
FROM {dockerhub仓库名}/caffe_python2.7and3.5_flask:v1.0
WORKDIR /vblt_server
ENV PYTHONPATH=/workspace/caffe/python
CMD ["nohup", "./start.sh"]
docker build -t vblt_server:v1.0 .
2.创建容器并启动服务
docker run --net=host --restart=always --privileged -v /root/vblt_server:/vblt_server --name=vblt_server2 vblt_server:v1.0
mysql服务
同样可以采用docker方式部署mysql服务。
该项目涉及两个服务,后台业务及mysql,为了简化部署并便于维护的,可以通过docker-compose进行docker容器的部署和管理。在此不展开,后续有时间再写。