python用于系统运维管理和灰度发布部署

有个基本想法:

nginx+tomcat,用于中小规模web应用生产环境的灰度发布。

nginx作负载均衡,标记为LB,若干个tomcat作应用服务,标记为App1, App2, App3, ... AppN。

发布过程:

1. 从LB中摘除App1,App1的应用服务停止,部署新应用,启动App1应用。,重新再LB中挂载App1

2. 从LB中摘除App2,App1的应用服务停止,部署新应用,启动App2应用。,重新再LB中挂载App2

3. ...

4. 从LB中摘除AppN,AppN的应用服务停止,部署新应用,启动AppN应用。,重新再LB中挂载AppN


整个发布过程中,由于每次只停机一台App,其他服务器正常服务,所以整体系统可用性不变,用户体验会保持不变,而且研发和运维团队也可以在白天任何时间进行上线发布。


可用python开发一个上述功能的专用发布平台。基本要点如下:

1. 采用web方式,可用flask框架。

2. 在web页面上进行所有的操作,包括Appl的摘除、挂载,应用包的上传, App服务的启动、停止、状态查看等。这方面python有良好的库可供应用,包括fabric, cuisine等。

3. 发布历史的记录,操作记录,历史版本应用包的保存。这部分可作为额外附加功能。

4. 顺带可以监控nginx, tomcat底层服务器的各种状态。

阅读更多
想对作者说点什么? 我来说一句

教务管理系统(Python)

2016年10月17日 26KB 下载

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭