本文为WOT2016互联网运维暨开发者大会直播内容。全新主题WOT2016企业安全技术峰会将于2016年6月24-25日在北京珠三角JW万豪酒店隆重召开!赵建春表示,自2004年加入腾讯以来,他已经做了十年的运维老兵,随着时间的流逝,他和团队一起成长。回顾过去的十年,如果有机会重来,真正最重要的是什么?团队优先考虑做好的一件事是什么?思考,深入思考,这只为支撑我们更好的前行。关于赵建春及其团队赵建春目前负责社交网络大数据和运维工作。2004年加入腾讯,加入后从事贺卡开发。2005年加入QQ空间开发团队,负责留言板模块。2006年底,随着公司组织架构的变动,我开始接触运维工作,到现在已经10年了。运维团队主要负责QQ延伸出来的各个社区的运维,包括Q空间、QQ音乐、QQ会员、QQ秀等一系列QQ产品。89名真实员工,加上外包同事,维护了100,000台服务器。与谷歌相比,在维护能力上还有差距,但对于很多传统公司来说,已经可以算是领先者了。团队经验,比如红米空间首发,红米QQ空间90秒卖出10万台,获1亿点赞。天津大爆发迅速将2亿多活跃用户从天津转移到了深圳和上海,这在中国互联网史上也算是一次非常大规模的转移。春节红包筹备,今年红包访问量比去年增长10多倍,5000台设备快速扩容。前端统一组织部署达到每秒477万次访问。赵建春说,作为运维团队,最重要的是保证自己做的系统是可靠的,不会轻易出错,不要让自己成为救火队员。靠谱之后,就要花更多的时间去解决效率问题,让工作更有效率,最终的目标是追求更高的目标。高效可靠的最大优点是什么?团队合作最好的地方是什么?如上所示,资源管理就是将编写的程序和代码进行明确的划分和分类,将每一个资源构建成不同的形状。容错解决方案是在维护大量服务时,保证在运维过程中出现故障时不影响项目服务,服务端必须及时处理。统一架构CMDBA是将所有依赖的资源注册到一个业务模块上。同时,要想快速做出决策和安排,还需要有效的监控。DLP是内部定义的非常关键的监控。出现这个点之后,就可以知道故障发生在什么地方了。入口监控是为了通知故障源在哪里。容错解决方案的L5用于解决容错、灰度、路由等。全球管理服务器最多的L5系统赵建春表示,运营管理系统管理了数亿台服务器,脉络非常清晰,不会出现丝毫混乱。L5系统(上图)也类似于DNS系统,可以提供一排服务模块来解决单点问题。L5-主机/接口级别的容错原理L5是如何实现容错的?如上图,L5由两部分组成:L5、DNS、L5和agent。CGI给模块提供ID,根据模块下设备的成功率和延迟,通过IP+PROT反馈给CGI。接入后通过成功率和时延将数据上报给L5agent,然后进行统计。当发现故障率特别低时踢出。当发现成功率和失败率下降到一定程度时,会降低访问权重,实现容错和负载均衡。可以注册一个模块,添加多个设备,形成容错效果。如果你发现一台故障率很高的机器,就把它踢掉。它的成功率已经恢复了,可以加回去了。L5的灰度、容错、路由、负载均衡能力,新增一台服务器,设计权重为1,如果之前的是100,可以逐步上线。你也可以给它打分,当分数下降时,迅速踢掉它。L5具备灰度、容错、路由、负载均衡能力。L5如何帮助运维团队?日常故障减少80~90%,无需频繁更换ip+port(也是故障根源),方便同名服务上下线,通过权重灰度上线,模块访问关系帮助定位rootfailures,interfaces延迟和故障率可用于监控,将容错、负载均衡、路由、灰度和监控能力集成到一个统一的框架和架构中。赵建春表示,团队中有数千名开发同仁,每年都有大量毕业生加入。会有社会同事。进来之后,他们都希望能为平台多做代码贡献,或者展现自己独特的技术实力,或者提升自己。统一框架的问题就来了。开发过程中,如上图所示,有管道、消息队列、信息文件锁、记录锁、文件映射内存、迭代服务器SelectpollIo等,这些都是结合各种技术产生的代码交给交给团队进行维护。想要掌握数万台各有千秋的服务器,了解它的工作机制和原理,更好地维护它,基本上是不可能的。统一框架如上图所示,将网络通信部分列为标准框架,以提高其通信效率和统一维护。统一框架:接入和逻辑业务逻辑部分采用SO动态库方式编写,与框架分离部署,类似于WEB服务器上的CGI。接入层使用QZHTTP,逻辑层是SPP和SF的框架。统一框架:存储是一种社区服务。虽然用户热点不是很集中,但是数据量和访问量还是很大的。大量的CKV用于存储,同时针对访问量非常大的问题,比如未开通空间的用户、游戏用户、会员等,事后做一个定位,形成高访问模块。统一架构:标准架构视图,管理节点如上图所示,是一个架构体系,接入层为TGW,流量进出。对于中间层,L5用于调度。在存储层,由于每个存储模块都需要进行分段,所以增加了Access,从上到下规范了技术架构。同时,组织也对接逻辑运维层,进行标准化维护。统一框架如何助力运维?网络框架和业务逻辑SO分开管理,大大降低运维人员的学习成本,框架的稳定性大大提高,可以跨服务统一维护,提高运维效率最多10次。资源打包管理所有程序统一打包,如上图所示。资源打包管理是对开发的程序包进行标准的打包操作。一个开发出来的程序有不同的特点,有的需要加bank参数,有的需要依赖目录,有的需要提前准备和善后,全部放在一个袋子状的包裹里,装进一个盒子里。然后提供一个标准的操作界面,如安装、卸载、启动、停止操作等,这些操作使它们具有相关性。资源打包管理如何助力运维?部署规范统一,再也不用为找不到而发愁了。操作界面标准化,易于学习和掌握。它支持脚本前和脚本后准备以及对在进程级别运行的所有资源的完整镜像。资源注册——CMDB虚拟镜像资源注册到二级CMDB,形成服务的虚拟镜像。除了传统的基本配置信息外,一个模块所依赖的所有资源都记录在二级CMDB中,形成一个模块的虚拟镜像。CMDB+resources=虚拟镜像CMDB虚拟镜像如何助力运维?一个模块运行的所有资源的“完整镜像”记录了该模块运行的所有资源,不需要文档。决策调度——智云自动化部署平台智云自动化部署流程23步赵建春介绍,如上图所示,团队内部有一个智云自动化部署平台,从应用设备获取资源,发布部署,检测,测试,并上网。每个环节还有一些详细的步骤,比如申请设备时屏蔽告警事件,发布时同步传输文件,发布后检查程序的打包进程是否启动,启动后进行业务测试等。腾讯智云的自动化运维系统,如上图所示,是在智云内部进行自动化部署的平台。相当于流程开发完成后,所有依赖的资源都打包在一个盒子里,盒子里的东西放在资源仓库??里,一些模块都注册在CMDB里。智云自动扩缩容如果要部署模块A或扩容,可以手动触发,也可以由系统自动触发,由手动系统控制运行。模块旁边的三个资源是资源仓库部署在模块1上的。通过L5系统进行注册,即可自动启动该模块。之后,将注册回一个模块,并对其进行自动化操作。每个块是一个步骤。这一步执行完之后是绿色的,执行失败是红色的,没有执行是灰色的。如果执行成功,可以看到可以做自动扩容、日常练习、回收。运维规范的推广过程赵建春说,上图是运维规范的推广过程,看起来比较自然。但实际上这件事情并不是那么好办的。运维中最难解决的问题是什么?赵建春表示,运维难是历史遗留问题。每个团队都会遇到自己的历史问题,解决一个,另一个就会出现。运维团队虽然不能再做了,但是现在创业团队很多,新项目也很多。能否在一开始就让运维和开发共同参与,为以后的运维工作制定可预见的规范规则,然后由开发为其打下基础。开发如果对用户有很大帮助,一定是运维与开发的深度合作,才能打造高效的运维基础,达到高效的效果。回顾这十年的运维历程,我仔细思考,只为未来更好的前行。本文整理自自媒体主办的WOT2016互联网运营与开发者大会,来自腾讯社交网络运营部总经理助理、技术运营频道主席赵建春。主题是运维能不能再做一次。讲座视频:http://edu.51cto.com/lesson/id-100765.html讲师简介:赵春生,腾讯社交网络运营部总经理助理,技术运营频道总裁,专家级工程师。2004年加入腾讯,先后从事研发、运维、数据建设与管理工作,积累了丰富的海量技术运营实战经验。
