发布变动流程管理工具:作为系统接口与其余角色的工做衔接。并提供审批环节控制发布变动的风险。流程管理工具并不负责具体的业务操做的执行,只是做为单据系统跟踪流程和确保闭环。docker
告警和突发管理工具:体现业务受损的告警自动建单管理。人工确认以后升级为突发单。经过建单管理告警和突发确保流程的闭环,以及每次故障都可以总结出经验,并未度量业务的可用性提供KPI。数据库
版本管理工具(数据库):全部的发布应该以版本管理为起点。研发给的版本包先入版本管理工具,再从版本管理工具分发到现网发布。杜绝 rsync 一台服务器发布另一台的作法。服务器
配置管理工具(数据库):版本加配置等于现网每台机器的状态。最粗粒度的配置管理是到 IP 级别,至关于对机器作资产管理,分组到不一样的业务,模块和大区等业务概念上。细粒度一点会管理到进程以及进程的相关的配置。微信
配置和版本下发工具:把指定的版本,结合配置好的配置下发到现网的机器上。不一样的版本和配置方式须要彻底不一样的下发方式。以 ssh/fabric 为表明的下发方式是以脚本为中心的。以 puppet/chef 为表明的下发方式是以配置为中心的。网络
现网状态同步工具:为了规避现网状态漂移,与管理工具内的记录不一致。须要有一个工具定时上报现网的实际情况。并发
服务调度工具:发布变动常常须要一个串行的流程,先作A模块,再作B模块。不少机器的时候,须要把能并发的操做并发执行,不能并发的操做确保串行执行。同时不少发布变动流程须要操做管理范围外的服务,好比云端的DNS服务器记录等。这就须要有一个服务调度工具统一调度配置和版本下发工具,流程单据工具,以及其余系统的API接口共同组装成一个流程。运维
资源管理和隔离工具:以xen/kvm为表明的工具让运维能够更灵活的切割资源。好比虚拟机的快速起停,ip在idc内的漂移等。以 lxc/docker 为表明的工具让运维能够进一步的切割资源到进程级别。资源隔离代理的细粒度的资源控制能够得到更好的资源利用率,以及更容易进行可伸缩的资源配置。ssh
发布变动统一界面:包装全部的下层工具,提供简单的界面完成标准化的发布变动操做。工具
采集工具:通常是采集日志文件,也能够是定时轮询 DB 或者其余系统的接口。流行的开源方案是 logstash。代理
收集工具:采集工具上报给收集工具。或者由开发直接修改代码上报指标给收集工具。流程的开源方案仍是 logstash。
统计入库工具:上报多是每次调用就上报一次,统计工具负责统计出一分钟内的次数。上报也多是每5秒上报一次数值,统计工具负责统计出一分钟内的最大值。统计工具的存在是为了上报的方便。流行的开源方案是 statsd,也有大公司基于 storm 来作二次开发的。
时间序列数据库:全部定时指标会落地到数据库里。监控告警所须要的数据库须要可以支撑很是大的数据量,可是并无很严格的 ACID 要求。
运维事件数据库:记录全部的告警。包括从其余系统得到告警,以及对现网的全部变动操做记录。这些数据用于支撑告警的缘由定位。
指标异常检测工具:基于数学模型发现指标是否与过去的稳定模式背离,而推测出现网状态的变化。
拨测工具:定时 PING 或者 HTTP GET,模拟实际用户发现服务是否中断,产生告警。同时也产生指标上报给收集系统。拨测又分为本地拨测,和远程拨测。本地拨测能够用于发现磁盘只读等本机告警。远程拨测能够模拟用户的地理分布,把网络的链路情况也包含在拨测覆盖的范围内。
告警收敛工具:综合全部来源的告警,进行频率收敛,根源分析。统一汇总成报告催促人工修复。
告警自动修复工具:接受告警进行自动化的处理。帮运维完成固定的故障机下架退库等操做。或者在业务自己没有作高可用的状况下,作故障机替换,ip漂移等现网修复操做,必定程度地提升业务可用性。
告警通知工具:重要的告警须要升级为电话。须要有高可用的电话,短信,微信等通知接口。
监控告警统一界面:屏蔽下层各类工具,提供统一的agent安装,指标采集设置,指标曲线展现,告警查询的界面。一个地方知道现网的全部的问题。