代码改变世界

回顾2013——新的旅程

2014-02-09 22:05  bangerlee  阅读(1769)  评论(3编辑  收藏  举报

2013年已经成为过去,这一年里实现了对自己的承诺, 1月份从w公司辞职,4月份进入q公司广州研发团队,成为a项目中的一名业务运维人员。个中有再找工作的迷茫、刚到新岗位时的不适应,也有工作中发现问题、解决问题的喜悦和伴随产品迅速成长的成就感。在此记录下2013年工作、学习经历的点滴,与大家分享。

 

新的开始

a是一个快速发展中的移动端IM项目,服务器侧是一个分布式RPC框架,用户量迅速增长、版本不断迭代更新给产品运营带来了很大的挑战,以下是a项目中业务运维的主要工作内容:

  • 环境搭建与维护:分配、部署、下线机器,维护机器列表,保持设备正常运作
  • 配置管理与维护:调整、维护RPC框架中svr、cli端配置,运用zookeeper等工具进行管理
  • IDC与容灾建设:多IDC建设,以方便各地区用户就近接入;IDC内机房间设备热备,方便出灾时屏蔽与切换
  • 容量管理:根据用户增长,IDC间用户迁移、节日(中秋/圣诞/元旦/除夕消息量会大增)等因素调整IM系统内各模块容量
  • 故障处理:故障恢复、优化措施跟进

另外还有域名管理、接入点测速/加速、新功能模块支持、程序起停/监控等。相比之前的系统运维,业务运维工作不但要求熟悉Linux系统、shell/python等各种工具,还需要熟悉各项业务流程,甚至需要了解业务代码,方便在故障时迅速定位问题。

 

运维工作中经常有涉及整个模块甚至全网的变更操作,一些操作稍有不慎,就有可能影响一块重要业务。a项目中Leader给予新人充分信任,新员工到岗不久后就会安排比较重要的任务。刚来的一段时间,由于不熟悉各项流程、急于完成任务,我也有几次误操作,引起几次不小的故障,当时压力山大。

后面逐渐调整心态、放慢节奏,在每项操作前先了解、学习,“涉及到哪些模块,可能会影响哪些功能,实现原理是什么,是不是一定要这样操作”,自己先琢磨一番,遇到不懂的就问,这样每次操作都变成了一次学习的过程。

 

明晰了变更内容、可能出现的负面效果,心里也有底一些,但即使事前做好万全准备,操作过程中可能还会出现问题,又或操作结果不符合预期。这要求我们不但操作前要进行检查,还要操作时灰度(先变更几台机器,没问题再上到全网),灰度过程中观察监控数据,当监控数据异常时,及时回退变更、调整操作方法。

 

多思考、多总结,不能一味求快,熟悉了,效率自然就上来了。不论做什么工作,从事什么行业,我想都是这个道理吧。

 

运营再认识

之前在w公司虽然干的是运维岗位,但只需要关注操作系统和一些中间件软件,不涉及业务,因而对业务运营的了解比较少。进入a项目之后,认识到运营工作对项目持续稳定运作,起到非常关键的作用。研发系统中,运营岗位包括运营开发/业务运维/资源管理岗/QA/客服,业务运维的工作内容在前面已有说明,下面说说运营开发和资源管理岗的工作职责。

 

运营开发岗负责监控、告警、部署系统、变更系统等各种系统的开发和维护,这些系统支撑着整个运营体系。面对a项目海量的日志和数据上报,面对迅速增长的设备规模,面对这帮更挑剔的程序员“客户”,运营开发同学的开发任务并不轻松,每个系统还需要考虑各种问题:

  • 监控:如何收集/保存/容灾程序上报的数据,业务数据、模块数据、单机数据如何关联又如何方便地展示,如何表现RPC框架中各模块的调用关系;除业务数据外,专线网络质量、机器状态(是不是死机/能不能正常服务)、单机资源(cpu/内存/磁盘等)又怎样进行监控
  • 告警:各个功能的业务数据有其自己的特点,如何设计告警算法,使得告警更准确;如何收敛相同原因引发的告警;如何对重要性不同的业务区分告警紧急程度;如何让报警报给应该接收这条报警的同学
  • 部署系统:一台机器由分配、部署(中途可能中止)到上线,中间涉及不少状态转换,部署好的机器要保证系统正确地初始化、程序依赖的各项配置齐全、服务已被正常拉起;一台服务中的机器也可能被下线,机器归还资源池前需要停掉服务、清理与该服务相关的文件
  • 变更系统:提供批量修改配置、配置修改前后对照/校验、快速发布配置/程序、变更灰度发布、变更回退等功能

a项目中业务监控、告警已经做的比较完善,有功能点出现异常,10分钟内就有报警出来。

 

身处迅速发展中的业务,资源管理同学也需要承担不少工作:

  • 设备管理:包括机器选型(接入/逻辑/存储各模块应该用什么配置的机器)、各IDC机房管理、设备分配与回收
  • 操作系统维护:Linux系统版本维护与更新、虚拟机选型与部署
  • 成本管理:包括设备租金、短信成本、宽带流量费用等
  • 宽带流量管理:如何避免穿越流量问题,如何对专线做流量监控,专线如何容灾

设备分布和带宽资源情况影响着整体系统架构;为节约设备、降低流量费用,需要不断寻找架构和程序的优化点,因而资源管理岗的工作也与开发工作紧密相关。

 

你可以做得更好

毕业后至今有两年半时间,现在的工作与上一份工作相比,节奏更快,工作到零点以后也是常有的事情,也曾一度怀疑自己能不能胜任这份工作,觉得压力非常大,但一路坚持下来,感觉都是值得的。敢于跳出舒适区的、乐于折腾自己的人,我想很多是为了得到精神上的满足,借用美剧《绝命毒师》中的一句台词:

 

现在算是实现了毕业后对自己的承诺,赶上移动互联网这波浪潮,并且在国内一流的IT团队,做着一项非常有意义的事。这时我问自己:下一步是什么?

我想这个答案会是:你可以做得更好。

 

2014年,希望更多地了解业务流程和熟悉业务代码,更多地了解各种库方法和框架实现原理,更多地思考总结和积累沉淀。

2014年,将有哪些变化,又会有哪些机遇与挑战呢?期待 !