公司新闻

未来自动化运维软件的三大趋势

自动发现设备数据软件

提供各种查询API接口,并做好权限控制。目的是能够被上层的各种软件调用,是rest接口,xml接口。然后基于各种语言做相应的封装库。

应用程序监视软件

1. 统一的数据采集模块,用于采集设备运行信息,包括磁盘IO,网络带宽,CPU利用率,网络设备的Session数,PPS。这个采集模块在网络设备上能够通过snmp来实现,在服务器上通过定制化的Agent来实现,这个Agent最基础的能力是采集服务器运行数据,最重要的是能执行各种脚本语言并通过脚本语言实现对服务器的各种操作(如更改配置,分析应用程序日志并输出结果)。

2. 监视数据存储与可视化,数据采集模块采集到各种数据会很多,但对事务性没啥要求,能够用各种NoSQL数据库如Hbase,Cassandra等来实现。数据的可视化是能够做的很深且偏应用程序层面的东西,在监视软件上只实现最基本的曲线图展示,提供按时段选择和对比的功能,其他复杂的可视化操作通过各种API来实现。

3. 监视项添加和告警通知,监视项是一种层次结构,而不是列表结构。上层节点的配置能够被下层节点的配置覆盖掉。对网络设备来说监视项就是一些不同的oid。借助于底层的数据采集模块,对服务器来说监视项基本上就是脚本。能够分为标准监视项和自定义监视项,标准监视项最大化的通用,实现cpu,内存,磁盘,网络等信息的监视。自定义监视项能够用多种软件管理脚本语言等实现,脚本的输出符合规范即可,采用行结构或json串。每个监视项设定warn,crit告警阈值和若干告警联系人,阈值是数值型,特殊的能够是字符串。超过阈值的监视项会发送告警给联系人,告警能够通过短信,邮件,IM软件发出。告警发送要支持合并告警,频率控制,关闭告警。要不然可能一次小故障就能发出成千上万条告警,告警就失去效果了。

4. 监视Api接口,并做好权限控制。做法和目的与EMDB一样。开放监视数据获取,告警消息发送,配置推送的接口。主要目的是让监视软件里面的数据能够被外界利用,能够在这些数据基础上做更加绚丽复杂的数据可视化工作,或者做一些更加个性化的监视和告警。次要目的是支持对服务器的统一操作,比如公司所有机器统一升级软件软件的版本。建议统一操作的API接口仅对少数几个人开放,并且权限严格控制。

发布和线上配置管理软件

1. 应用程序发布和依赖库版本管理,应用程序发布是运维与开发对接的重要环节,发布软件会和svn软件紧密结合,svn软件里面会有线上应用程序的列表,EMDB里面会有各个机器所属的应用程序。发布软件会用到这些数据,将svn软件里面生成的应用程序包及其依赖包发布到线上,并且自身对这些应用程序包和依赖包进行版本管理和控制,在应用程序发布出现问题时能够回滚到上版本。

2. 线上配置管理,类似于linux下puppet的功能,主要用于应用程序服务器上关键配置文件的版本控制,分发,一致性维护工作。大应用程序是若干台服务器组成集群提供服务,要求这若干台服务器的应用程序配置是一致的,但有时候又存在应用程序的灰度发布操作,或者某人误更改配置。线上配置管理软件要求提供统一的配置修改入口,对灰度发布提供支持,同时对于误更改配置情况进行纠正。执行操作能够借助于Appmonitor的接口。应用程序开发人员能够通过svn软件调用Releasemanager自主打包,发布,回滚应用程序。应用程序维护人员能够调用监视软件获取数据和告警信息,通过编写相关脚本,实现一些简单告警的自动化处理工作,提升效率。