SRE/运维保障体系的建设/SLA
前言
运维的基础工作通常是针对现有系统及项目的,例如服务器、各类云产品,正在运行的项目、监控、账号权限管控,项目上线等等,是宽泛而繁琐的,少有建设性的内容。
那当我们接手一套新的系统,就有必要将它本身及周边进行完善。可能少数公司有较为全面的运维体系,有我们的桌面运维,网络运维,安全运维,研发运维、数据库运维以及系统运维或应用运维等专业团队,而更多的公司运维可能只有1-2个。以上的岗位工作都需要完成,但以下我们着重会聊到应用运维。
在接触新环境时,面对的是上任留下的坑,这比开发接手代码要更加严峻。交接的资料其实不应该只是账号密码、工作流程,工作注意事项,更重要的是操作维护文档,因为系统很少有简单的环境,即便有,也会存在一些微妙的项目逻辑关系,稍有不慎,就有可能酿成线上问题,现在大多都是微服务的结构,增加了系统维护的复杂性。
例如接手后领导要你部署使用docker部署一个java服务 , 从正式环境复制一个到测试环境,结果启动后出问题了,可能是启动参数与目前环境不匹配,可能是连接权限未放开,可能是启动后连接的是生产的数据库,如果程序启动后清空或者修改了一些历史数据,令人细思极恐。
这种问题很常见,就我目前就遇到不少,好多配置信息写的很模糊,项目与项目之间耦合度非常高,没准就牵扯到哪个系统了,牵一发而动全身,是关也不敢关,改也不敢改,作为一名运维工程师,我们居然会不敢动一个项目!
所以要打造一个铁桶出来,这是一个创造性的过程,也是我们深入项目的过程。只有更深入的了解项目,才能更好的去维护项目。
做好一个运维的基础
- 对自己当前的环境和任何东西都应该非常清楚;
- 要有监控,切实有用的可以发现问题的监控;
- 任何东西都要有备份,可以用于快速恢复,也要做恢复演练。
进阶∶
- 针对系统做优化处理;
- 针对工作流程做优化处理
这就是上述大纲了,后续会详细说明的,其实也是大众路线,先标准化、流程化,再自动化。
基础
2.1 项目摸底
在接手系统后,先要确保能日常维护,对整套系统做一个摸底,一般包括以下几项:
- 项目简介
- 账号密码表
- 项目资源管理配置清单
- 各种结构流程图
- 部署维护文档
- 项目监控策略汇总表
- 项目应急操作手册
- 项目简介
我们可以从当前项目的业务范围,即项目的功能是什么?以及项目负责人及相关人员是谁,方便我们后面更好的项目对接。 - 账号密码表
账号密码表中应详细记载各服务器、平台、系统的登录用户名及密码,另外还应该有权限记录表,记录给谁开过权限,登录账号又是什么,以上种种,此处仅是距离,需要记录的东西很多,切记一定要准确清晰。 - 项目资源管理配置清单
这里面我觉得至少包含但不限于4个sheet表:服务器清单,项目