回顾运维十年,如有一次重来的机会,什么才是最重要的?什么才是团队需要优先做的?才能在未来支撑我们更好的前行。

注:本文整理自 WOT互联网运维与开发者大会主题分享《如果运维可以重来一次》

“十年”不苟且的运维之路

加入腾讯已十年的运维老兵赵建春,回顾这十年:

期间,他带领运维团队负责QQ延伸出来的各种社群的运维和维护,包括QQ空间、QQ音乐、QQ会员、QQ秀等一系列的QQ产品。团队89个人,维护了10万家服务器。经历的大事件有:

不要让自己变成一个救火队员

作为运维,最重要的是先保证自己做的系统可靠、不会轻易出错,不要让自己变成一个救火队员。可靠之后,就要用更多时间去解决效率问题,让工作变得更加高效,追求更高的目标。

对团队工作帮助最大的是什么?

运维_新疆移动电子运维_传统运维管理与bim运维管理

运维团队的五个“杀手锏”

L5 系统

世界上管理服务器最多的系统

运营管理系统管理了上亿服务器,脉络非常清晰,根本不会出现混乱。L5 系统(上图)也类似于 DNS 系统,有一排能提供的服务模块,从而解决的单点问题。

L5 如何做容错?

运维_传统运维管理与bim运维管理_新疆移动电子运维

L5-主机/接口级的容错原理

L5 有由 L5、DNS 和 L5、agent 两部分构成。CGI 通过给模块提 ID,根据模块下设备的成功率和延迟情况,通过 IP+PROT 给 CGI 一个反馈,访问之后,通过成功率和延迟情况,把数据上报给了 L5agent,然后做统计数据。

当发现失败率特别低的时踢掉。当发现成功率和失败率有一定下降,会把访问权重降低,从而达到容错和负载均衡的作用。

可以注册一个模块,加多台设备,形成容错效果。如发现一台机器失败率很高,就把它踢掉。它成功率恢复过来,还可以再加回来。

新加一台服务器设计它的权重为 1,假如之前的是 100,可以逐渐上线。还可以给它一个得分,得分下降的时候,快速把它踢掉。L5 具有灰度、容错、路由、负载均衡的能力。

新疆移动电子运维_传统运维管理与bim运维管理_运维

L5 对运维团队有哪些帮助?

统一框架和架构

团队里有上千号开发同事,每年会有大量毕业生加入,也会有社交同事。进来以后,都希望为平台做更多的代码贡献、展现自己的技术实力,亦或是提高自己。

那么,问题来了。在开发过程中,如下图,有管道、消息队列、信息文件锁、记录锁、文件影射内存、还有迭代服务器 Select poll Io 等,这些是用各种各样技术组合生产出来的代码,交给团队维护,数以万计不同性格的服务器,要掌握得非常好,了解它的工作机制和原理,更好的维护它基本上是不可能的。

传统运维管理与bim运维管理_新疆移动电子运维_运维

那怎么办呢?把网络通讯部分列成一个标准框架,提高它的通讯效率,统一维护。

新疆移动电子运维_传统运维管理与bim运维管理_运维

统一框架

业务逻辑部分用 SO 动态库方式编写与框架分离部署,类似 Web 服务器上的CGI。接入层用 QZHTTP,逻辑层是 SPP 和 SF 的框架。

运维_新疆移动电子运维_传统运维管理与bim运维管理

作为社区类服务,虽然用户的热点并不是很集中,但数据量、访问量还是很大。大量用 CKV 存储,同时针对访问量非常大的问题,如说用户没有开通空间,游戏用户,会员等标记,之后均做一个定位,形成一个高访问量的模块即可。

新疆移动电子运维_传统运维管理与bim运维管理_运维

如下图,是一个架构体系:

新疆移动电子运维_传统运维管理与bim运维管理_运维

统一框架对运维有什么帮助?

网络框架和业务逻辑 SO 分离管理、运维人员学习成本大大降低、框架稳定性极大提高、可跨业务统一维护、运维效率提升最高可达 10 倍。

资源打包管理

新疆移动电子运维_运维_传统运维管理与bim运维管理

如上图,资源打包管理是对开发出的程序包进行标准打包操作,一个程序开发出来有不同特征,有需要加银行参数,有需要依赖目录,还有需要前面准备工作和后续善后工作。

把它全部放在一个类似于包里面,装进一个盒子里。之后提供标准的操作接口,如安装、卸载、启动、停止操作等这些操作让它们变成有关联的。

资源打包管理对运维有什么帮助?

部署规范统一,再也不担心找不到、标准化了操作界面,极易学习掌握、支持前后置脚本做准备和善、进程级运转的所有资源的完整镜像。

资源登记——CMDB 虚拟镜像

资源登记到二级 CMDB 形成服务的虚拟镜像,除了传统基础配置信息,把一个模块依赖的资源,全部记录进 2 级 CMDB,形成一个模块的虚拟镜像。

运维_新疆移动电子运维_传统运维管理与bim运维管理

运维_传统运维管理与bim运维管理_新疆移动电子运维

CMDB+资源=虚拟镜像

CMDB 虚拟镜像对运维有什么帮助?

一个模块运转的所有资源的“完整镜像”、记录了模块运转所依赖的所有资源、不再需要文档说明。

决策调度——织云自动化部署平台

在团队内部有织云自动化部署平台,从申请设备获取资源、发布部署、检测,进行测试,上线。在每个环节还有些细节步骤,如申请设备的时屏蔽告警事件,如发布时同步传输文件、如发布后检测程序的包进程是否启动,启动之后进行业务测试。

新疆移动电子运维_传统运维管理与bim运维管理_运维

织云自动部署流程 23 步

如下图,是织云内部自动化部署的平台。相当于把这个进程开发出来以后,依赖的资源全部打包放在盒子里,把盒子里的东西放资源仓库中,有一些模块全部登记在 CMDB。

传统运维管理与bim运维管理_运维_新疆移动电子运维

腾讯织云自动化运维体系

如果要部署一个模块 A 或进行扩容,可以人工触发或自动系统触发。

控制人工系统进行操作,把模块边上三个资源,由资源仓储部署在模块 1 上,通过 L5 系统进行一个注册,这个模块就可自动上线

。之后会把一个模块登记回来,对它进行自动化操作,每一个方块是一个步骤,这个步骤执行过去之后是绿色的,执行失败是红色,没有执行是灰色。

执行成功就可以看到,可以做自动化的扩容,可以做日常演习,还可以回收等工作。

织云全自动扩缩容

运维规范的推进历程

如下图,是运维规范的推进历程。看起来是自然而然的过来。但实际上这个过程并没有那么容易。

传统运维管理与bim运维管理_新疆移动电子运维_运维

传统运维管理与bim运维管理_新疆移动电子运维_运维

赵建春

赵建春,腾讯社交网络运营部助理总经理、技术运营通道会长、专家工程师。04年加入腾讯,先后从事过研发、运维、数据方面的建设和管理工作,在海量技术运营方面积累了丰富的实战经验。

IT技术群,期待你的加入

———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: wxii2p22