您的位置:首页 > 编程语言 > Python开发

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

2016-05-30 11:20 701 查看
有个基本想法:

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底层服务器的各种状态。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: