运维与个人英雄主义
《运维与个人英雄主义》要点: 什么是个人英雄主义? 根据互动百科,个人英雄主义有以下释义:
以上释义是一个适用于所有行业的解释,那么对应到运维领域,个人英雄主义该怎么定义呢?我的理解是下面这样的:
这里我们需要对系统进行一下定义,系统可以是以下任何一个或者他们的组合:服务、团队、流程、软件 个人英雄主义在运维中的表现前面对系统进行了定义,在运维的过程中一般会给系统定义SLA,或者一些其他可以描述系统正常运转的指标. 但是现实中的系统往往达不到预定的SLA或指标,这时候英雄出现了,他或她会尽全力试图使系统达到预定SLA或指标. 通常英雄会通过以下努力来力挽狂澜:
具体实例工单队列英雄的团队负责一个工单系统,对外承诺的SLA是24小时处理,每周由不同的团队成员轮班. 由于业务系统的高速发展,每天都有很多新的工单进来,在8个小时之内根本处理不过来,我们的英雄会工作到很晚去处理,每天的工作时间从8小时发展到10小时、12小时、16小时,以确保可以达到承诺的SLA. 服务SLA英雄的团队负责一个生产服务,该服务设定的SLA是可用性4个9.但是由于该服务的软件架构设计、发布流程、监控设置等问题,该服务达不到4个9. 我们的英雄会每天巡视服务的监控系统,人肉定位异常、回滚有问题的发布、提前发现资源预警、重启有问题的程序等等,以确保可以达到承诺的SLA. 个人英雄主义好不好回答这个问题需要看站在什么样的立场来看待好不好.
如何避免个人英雄主义?在遇到突发问题时,个人英雄主义对暂时度过难关是有帮助的.但是长远来看则应该建立正确的期望,团队运维的系统不应该依赖任何英雄就能做到正常运转. 为什么会发生?前面讲了那么多的不好,那为什么还会发生呢?原因主要有以下几点:
如何避免?如何在运维中避免个人英雄主义,首先需要团队经理或者技术领导能够意识到这个问题,理解这种思想、行为对个人/团队/系统所带来的巨大负面影响,然后采取行动 1. 思想传达定期、及时的传达个人英雄主义带来的问题,让团队成员清晰的认识到没有必要忍辱负重的维护不合理的SLA或指标;鼓励团队成员分享所遇到的问题;鼓励团队成员及时向上级反馈问题. 2. 工作安排根据团队成员反馈的问题,合理制定工作,对系统进行改进,使之不依赖于任何单点就可以达到预期的运行状态.团队成员把时间花在可以对系统产生长远收益的项目上. 这是个很高的要求,因为并不是所有人都能看到一个项目对系统能带来的长期收益,抑或是有些人只关心功能的快速上线,这时候运维经理需要顶住迫切上线的压力,合理安排团队成员的时间,以短期被动换取长期的主动. 3. 合理预期如果系统的SLA或者指标没法达到,承认这个事实,然后对系统进行改进. 这会使系统短时间内达不到SLA,但是通过投入精力改进系统,修复真正的底层问题,系统会最终恢复而且是恢复到一个长期稳定不需要人额外关注就可以达到SLA的状态. 4. 消除单点团队负责运维的系统很多时,难免会产生不同团队成员负责不同组件的情况,这时即便没人想成为那个英雄也难免被成为那个英雄. (编辑:ASP站长网) |