自动化运维之自动化监控

昨天我们讲了自动化构建,今天我来讲讲我认为的自动化监控。每个项目正式上线后,是要给用户使用的,那如如何保证系统可以持续给用户提供服务? 我认为除过项目前期的合理架构设计、规范和科学的编码和高效准确的发布外,上线后的系统运行监控也很重要。

对于传统的系统架构而言,系统运行监控可以分为操作系统监控、中间件监控、应用监控、数据库监控、网络监控等等。操作系统监控一般主要监控操作系统可用性、CPU使用率和负载、内存使用率、磁盘使用率等等指标。中间件监控主要监控可用性、JVM使用率、线程监控、JMS监控、JDBC监控等等。应用监控主要监控系统的可用性、响应时间、用户连接数等等。数据库监控主要监控数据库的可用性相关指标、表空间使用情况、性能相关指标等。网络监控则是为了保证IT整理网络的运行,监控网络延迟、可用性、通讯质量相关指标。其实啰嗦了这么多,换个角度来讲,一方面监控服务的可用性,另一方面监控服务的性能,保证系统能用、好用、安全。

对于互联网架构的系统,这些监控的对象几乎被彻底颠覆了,不过万变不离其宗,监控的核心思想还是保证高可用、高性能、高安全。

初级的互联网架构,已经可以实现操作系统的虚拟化,就是所谓的IAAS架构,我们根本不需要关心每个操作系统的一堆指标,而是站在服务可用性的视角,一旦发现哪个操作系统的可用性或者性能不符合要求,直接隔离,永不续用;其他层面的架构可能跟传统监控类似。

中级的互联网架构,在实现了操作系统虚拟化的基础上,已经实现了中间件的虚拟化,就是所谓的Paas架构,开发人员只要写好代码并经过各种测试后,直接将代码自动部署到Paas平台即可,需要部署多少就部署多少,反正脚本帮我们去部署,我们不需要关注操作系统、中间件的各种指标,只要每个Paas提供的应用服务可用性和性能超过我们设置的基线,自动从负载均衡中隔离,我们只要关注对外服务的可用性和性能,还有IAAS和Pass平台本身的监控即可。

对于高级的互联网架构,其实就是现在流行的Saas架构,公司不需要开发人员写代码、测试代码、发布代码,而是直接购买各种微服务,由于微服务本身的高可用性和高性能,我们什么都不要监控了。IT业务由各种微服务组成,就跟搭积木一样简单,只要关心业务本身,关心如何让用户的体验更好。虽然这种Saas服务,业界还有各种质疑,尤其安全性方面的风险。但是不得不说,私有的Saas架构也是一个比较折中的办法,互联网大厂应该早就在试水了。

说了半天了,随着IT架构的演化,我们需要监控的东西越来越少。如果你是IT运维人员,恭喜你离失业不远了。时代要求我们IT运维人员具备开发能力或者业务能力,只要这样我们才不会失业!

今天的废话结束了,退朝!

相关推荐