半自动发布系统之实现架构
前端:bootstrap easyUI (这些都基于js html)
后端:python
web框架:django
数据库:mysql 或 sqlite(测试用的这个)
消息队列:rabbitmq
异步任务:celery
可选:nginx + uwsgi + django 实现高并发
代码构思:
1 主机信息直接对应mysql的User表,增删改查,通过django的models实现
2 资源查看、服务管理、代码更新、远程命令 都需要连接相应服务器后,进行一些操作;通过parimiko实现远程连接和执行命令
3 代码更新支持在后台异步执行,需要celery,celery broker把任务发给rabbitmq,celery work再从rabbitmq消费,然后结果存储到数据库中,通过判断任务是否完成来控制进度条
4 前端通过bootstrap实现基本样式,通过easyUI实现一些动态效果,通过js和jQuery调用api实现数据读取
5 考虑到2的复用性,把2中的服务连接、执行命令等部分抽象出来,单独封装
开发工具:
mac 笔记本一台:代码开发用(安装好pycharm python3 django celery rabbitmq等等)
公网服务器一台:安装tomcat(主要测试的就是tomcat的代码发布、回退)