关闭

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

1043人阅读 评论(0) 收藏 举报

有个基本想法:

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底层服务器的各种状态。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17042次
    • 积分:300
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:5篇
    • 译文:0篇
    • 评论:0条
    文章分类