如何正确认识互联网运维工作?(3)
手工管理阶段:业务流量不大,服务器数量相对较少,系统复杂度不高.对于日常的业务管理操作,大家更多的是逐台登录服务器进行手工操作,属于各自为战,每个人都有自己的操作方式,缺少必要的操作标准、流程机制,比如业务目录环境都是各式各样的. 工具批量操作阶段:随着服务器规模、系统复杂度的增加,全人工的操作方式已经不能满足业务的快速发展需要.因此,运维人员逐渐开始使用批量化的操作工具,针对不同操作类型出现了不同的脚本程序. 但各团队都有自己的工具,每次操作需求发生变化时都需要调整工具.这主要是因为对于环境、操作的规范不够,导致可程序化处理能力较弱.此时,虽然效率提升了一部分,但很快又遇到了瓶颈. 操作的质量并没有太多的提升,甚至可能因为批量执行而导致更大规模的问题出现.我们开始建立大量的流程规范,比如复查机制,先上线一台服务器观察10分钟后再继续后面的操作,一次升级完成后至少要观察20分钟等. 这些主要还是靠人来监督和执行,但在实际过程中执行往往不到位,反而降低了工作效率. 平台管理阶段:在这个阶段,对于运维效率和误操作率有了更高的要求,我们决定开始建设运维平台,通过平台承载标准、流程,进而解放人力和提高质量. 这个时候对服务的变更动作进行了抽象,形成了操作方法、服务目录环境、服务运行方式等统一的标准,如程序的启停接口必须包括启动、停止、重载等.通过平台来约束操作流程,如上面提到的上线一台服务器观察10分钟. 在平台中强制设定暂停检查点,在第一台服务器操作完成后,需要运维人员填写相应的检查项,然后才可以继续执行后续的部署动作. 系统自调度阶段:更大规模的服务数量、更复杂的服务关联关系、各个运维平台的林立,原有的将批量操作转化成平台操作的方式已经不再适合,需要对服务变更进行更高一层的抽象.
通过自调度系统,根据服务运行情况动态伸缩容量,能够自动化处理常见的服务故障.运维人员的工作也会前置到产品设计阶段,协助研发人员改造服务使其可以接入到自调度系统中. 在整个运维的发展过程中,希望所有的工作都自动化起来,减少人的重复工作,降低知识传递的成本,使我们的运维交付更高效、更安全,使产品运行更稳定.对于故障的处理,也希望由事后处理变成提前发现,由人工处理变成系统自动容灾. 文章来自微信公众号:高效运维 (编辑:ASP站长网) |