腾讯SNG梁定安:显微镜下的运维自动化(2)
再讲就是组件化,这里也有一个实例.假设我们现在要上一个网站,必须要有一个Web Server,不同的开发团队会有不同的选择,有人说Apache性能好,有人说NGINX比Apache强,有人说我用IIS,有人说那三个都是垃圾,我自己写的是最好的. 很不幸,这个事情如果在2009年之前在腾讯确实是这样子的,百花齐放,这就导致我们没有办法维护.对运维来说,100个不同的Web Server我就要选择100次. 为什么我们不能要求一致?我们站在组件化的高度及要求下,同一种应用场景只能选一个,这次才能针对这种组件化去做到极致. 说完我们的一些框架化、组件化的举例,通过提出了这样一些要求,我们运维团队让我们每一个业务开发,开发出来的架构都基本上长成上面的样子了.还有一些组件TGW、L5这些东西没有介绍到,大家可以在搜索引擎上查到之前的分享. 今天我特别希望把这个理念跟大家完整阐述一遍.当我们的业务架构的层级都长成这个样子的时候,我们无论是对它做自动化运维也好,做监控也好,都很方便. 刚刚上一个老师提到一点我觉得很有启发,一款应用我们应该怎么样去度量它?指标是怎么样子的? 腾讯内部是直播年.腾讯自己也在做直播,我们社交的直播光是APP估计两个数手不完,各种开发团队都在做直播,不同的直播怎么度量? 所以这时候,运维团队就占了很重要的决定性的作用.我出来说直播的质量、体系就应该这么看,我就给你定好了这种指标. 我觉得有很多事情,不是说技术好或不好,而是看谁来做更合适.这时候运维作为一个公共的支撑的团队,它更有这种权利或者说它更应该去规范这样的东西,让我们对同质的业务场景可度量. 前面两个部分,把我们的理念讲完了.我们要怎么样去落地?细节是什么样子的?下面有一个全局的图. 在我们社交运维团队,我们主要的运维产品有四大块:一个是织云,主要负责运维自动化方向,还有一个天网,还有我们的报表体系,专门用来做我们可度量的.最后还有一个手机运维MSNG,这里面包含了很多子的系统,今天主要是讲织云里面的一小部分. 三、运维自动化的技术细节今天着重介绍织云,并且是织云最核心的功能点.有了标准化以后要做很多事情,才可以很轻松的实现运维工作的自动化. 光是在运维自动化里面,大家都说标准化、运维规范,那究竟是什么?今天特别想跟大家一起打开这个黑匣子,看一下腾讯运维的标准化是怎样的? 我们把业务架构又切分成不同的层,其实就是刚刚那个图的另外一种表现形式.五层,不同的层级,我们要做的标准化针对的对象不同的.
特别是在虚拟化的今天,如果任由一个业务随意去选择它的机型,对于我们来说就是多了一种对象.在腾讯这么大的体量下我们没有办法容忍随随便便给我多增加一个运维对象. 所以我标红了几个字,就是要减少运维对象.像其他的业务层,你是IM型的应用,架构分布必须要三地、三活,QQ调度方案跟Q Zone的调度方案必须是一样的.所以我们做的一切的一切都是要减少运维对象. 减少完运维对象怎么去执行?在开发前,把整个产品的生命周期分成这么几块,在开发前、上线前、上线中、运营中,不同阶段,考虑的点不一样. 开发前,知道业务形态长成什么样,可能用到什么样的组件、什么样的框架,这个时候基本上杜绝了写死IP的念头,或者对本地存储特别敏感的情况.
当我们形成了这样一个开发和运维合作的文化之后,开发团队自己就会遵守了,并且在不同的阶段,我们提出了不同的要求.每个要求都会对应了我们运维的一个工具系统,去支撑它,就是说我们的标准化可以落地了. (编辑:ASP站长网) |