运维开发

适用于创业公司的运维自动化工具建设:

1. 发版工具。完成应用的送测和上线流程。开发人员完成开发后从dev合并生成tag,送测试时从tag中拉取相应tag到test,同时发布到测试环境。测试完成后需要发布上线时从test拉取到release分支,完成必要的单元测试(主要是接口服务层,比如db数据获取,api联通性,缓存是否正常,主页和登录流程是否正常),然后发布到预发布和生产,服务器上至少保存上两次的发布备份,方便回滚使用。在这之后发版的脚本需要做脚本平台,做步骤拆分和脚本拆分。

2.cmdb

维护应用发版主机信息,配置文件信息,接口访问和定义信息,监控信息。尽量通过元数据组成目标数据结构,比如定义整数,字符串等类型的元数据,然后通过元数据组成业务表,比如监控项、防火墙信息等,这样就可以在线定义业务数据结构而不用频繁的变动数据表。注意做好历史版本管理、回滚等功能。最好还有回收站功能,防止业务因误管理而出现问题。

3. 流程系统,作为运维定制的订单系统,要有和cmdb良好的接口操作封装。提供事件上报,紧急版本审核和发布,权限申请,运维资源申请,db、文件存储、缓存等资源使用的权限申请等。

4. 统一权限系统,提供运维、运营、市场、测试和普通员工操作和查看相关运维系统的权限管理功能。需要有用户权限获取接口,提供权限预开通接口(通过itsm流程系统可以申请权限开通或取消)。有权限审计功能保证定期审计用户的权限。

5. 监控平台:服务区基本服务监控和业务监控。服务器上自建agent上报数据,异常预警和历史数据要完整。监控分优先级,核心业务要经过数据平台快速分析加工并展现。

6. 业务监控和数据平台:配合应用做埋点和后期数据处理工作,可以利用开源方案或是服务提供商产品。

7.db平台,主要功能包括schema修改和新增上线的review和发布(充分利用pt工具箱进行二次开发),新增sql的review和分析,慢日志汇总和分析(在从库上进行),db健康状况管理和操作