自动化,智能化运维笔记

宋鑫    2017-04-07

本文:自动化,智能化运维笔记,原创于:宋鑫的官方网站,转载请注明出处,谢谢。

自动化,智能化运维笔记

什么是运维?

  • 环境定义:开发环境、测试环境、类生产环境、生产环境等。
  • 部署:能够将部署包有效的部署到不同的环境。
  • 监控:能够监控部署后的系统和应用。
  • 告警响应:出现问题时的响应和处理机制。
  • 性能优化:系统各个服务如Nginx/Java/PHP/DB/网络的优化。
  • SLA保障:通常要和业务相关部门讨论确定。

运维自动化

部署自动化:

这部分的进化过程大抵如此:Scripts -> Auto tools -> Cloud -> Container,略作说明如下:

  • 最早的部署方式,都是ssh到目标机器上,下载部署包,拷贝到指定的位置,重启服务。
    如果应用频繁升级,操作人员就会很痛苦,所以就想办法自动化。
    于是大家来写Shell脚本,自动化部署过程。虽然,Shell脚本好用,但是读起来代码量大,不好维护。
  • 随着工具的发展,客户的部署脚本迁移到了Chef/Puppet,使用起来方便,而且容易维护。
  • 再往后有了私有云,公有云,部署方式又发生变化,这时候面对的层次不一样,部署包也不一样,
    以前的war包,rpm包,现在到了IaaS层,都变成了image,虽然部署简单了,但考虑的问题更多了,
    怎么管理image,怎么用好image,怎么更快的scale?都是问题。
  • 现在,Container来了,部署在Image的基础上,又变化了,部署自动化现在解决的已经不仅仅是部署本身了,
    还包括怎么能更快scale,更容易管理artifact,更容易屏蔽底层的不同。

因此“企业的架构不是设计出来的,是演变而来的。”

故障处理

故障处理分为四个阶段:源头发现、告警确诊、修复授权和故障维修。
在这四个阶段中源头发现和告警确诊主要将大量的告警进行收敛,将真正需要处理的告警进行明确化找到故障的跟原因(如一个业务进程僵死或者进程宕机)。
在沟通授权阶段,当不能真正做到无需知会直接处理的时候,就必须进行人工干预和确认:
故障维修将已经明确的故障跟原因的故障进行自动修复(例如重启服务进程),需要人工确认的故障修复需要人员参与半自动化修复。


文章有用?分享给你的朋友们,让更多的人受益


更多精彩干货,尽请关注我的个人微信公众号
wechat