探索中国CIO人才现状 | 第四季调研报告
腾讯赵建春:从一个海量产品的演变看互联网运维
2015-06-03  作者:腾讯社交网络运营部助理总经理 赵建春 来源:CIO发展中心

【CIO发展中心独家】2015年5月16日,在CIO发展中心联合护航科技共同在深圳举办的“互联网化的IT运维创新研讨会”上,负责腾讯社交网络事业群的业务运维和数据挖掘分析工作的腾讯社交网络运营部助理总经理赵建春先生,从他在腾讯11年从事开发和业务运维的经验,做了主题为“从一个海量产品的演变看互联网运维”的分享。全文整理如下:

大家好!今天我主要讲讲互联网企业运维方面做的事情,希望对大家有所启发和借鉴。首先做一个自我介绍。我2004年大学毕业后就加入腾讯,最初做开发工作,然后一直做运维管理,现在是腾讯社交网络运营部助理总经理,负责腾讯社交网络事业群的业务运维和数据挖掘分析工作。我们的团队服务的产品主要包括腾讯QQ、QQ群、QQ空间、广点通、QQShow、QQ音乐、QQ相册、QQ会员等等。目前团队管理十万级的服务器、数十个机房、多地部署。 

赵建春 

腾讯社交网络运营部助理总经理 赵建春

通过QQ空间业务发展看运维演变

今天我想通过QQ空间(Qzone)的一个发展历程来介绍互联网运维需要应对和处理的问题。我刚进入腾讯时就是做Qzone的开发,Qzone从2005年发布到今年正好走过10个年头,已经发展成为亿级用户的海量产品,我也经历了这个产品的发展整个过程。根据2015年第一季度腾讯公司的财报,QQ空间的月活跃用户数是6.68亿,其中移动终端月活跃用户数为5.68亿。2015年5月2日这一天上传的照片达到6.5亿张。

Qzone是2005年6月6日正式发布的,它的发布也是web2.0发展中的代表性事件。Qzone让用户能够在线上展现和表达自己,所以一上线就受到了用户的欢迎,最初发放的“英雄帖”非常抢手,开放注册后用户增长速度也非常快。

其实十年前各种线上服务的规模都非常小,当Qzone这个应用的同时在线人数达到四、五十万人的时候,系统就开始面临很大压力。但是那时我们的运维支持还非常“原始”。遇到故障死机、性能瓶颈、Bug漏洞等问题,需要研发人员单兵作战,自己解决。当时我们也不断做硬件升级,工具化建设也开始起步。

当同时在线人数达到百万级别时,我们将开发和运维做了分离;引入了ITIL体系,对突发事件、问题管理、流程管理、质量考核等进行规范;进行了立体化监管体系建设和效率工具的建设。

到了千万级在线时,运维面临更加严峻的挑战。曾经在一段时间,在百度搜索输入“为什么”三个字,联想出的第一个问题是“为什么QQ空间打不开”。针对这种情况我们开始了SET化部署;跨机房、跨地域调度;数据分布与适时传输;速度体验优化;进行运维专业分工。经过我们的优化,用户体验得到了提升。

目前亿级用户在线的情况下,我们必须考虑高昂的成本存量和增量,庞大的服务器集群规模,大量的变更和平台级影响等问题。比如在今年春节的QQ抢红包活动中,我们就调度了2000台实体服务器进行支持,而晚上八点抢红包活动结束后,我们又迅速将这些服务器投入了对零点QQ空间送祝福活动的支持中。亿级在线的运维管理必须是集群化管理,是云化、智能化、精细化的管理。

如何实现高效的应用运维

应用运维需要从效率、质量、速度和成本四个方面进行运维规划,必须同时兼顾用户体验和企业成本。

效率方面需要强化自动化运维:包括包/文件部署系统、自动编译、流程系统、业务视图/层视图、架构标准化和内部云平台等的建设。质量方面要做到监控和容错:需要建立立体化监控、实现自动报表、进行容错建设和SET化、处理突发事件、进行故障自动诊断和ROOT诊断。速度方面要考虑PC端和移动端,建设测试系统、CDN、动态加速、调度系统、SET分布和缓存机制等等。成本要考虑设备和带宽,从容量管理、访问密度、预算管理、虚拟化、Top用户分析和程序性能等方面进行规划。

精细化的运维分工从整个企业的运维来说包括服务器团队、网络团队和应用运维团队。而应用运维团队还要进行细化的岗位分工,包括存储层运维、逻辑层运维/基础运维、接入层运维、业务运维和运维开发。各个运维组都要有明确的核心职责,同时也鼓励额外的探索。

总结来说,要实现高效运维就是要做到减少运维对象的差异性,规范技术架构和分层专业维护。

当然还有自动化运维的问题,比如如何迅速扩容2000台服务器。这就需要通过自动化扩容流程进行,包括申请设备、获取资源、发布部署、发布自检、业务测试、灰度上线等一系列的过程。

互联网运维对传统企业的借鉴

互联网化会给传统企业带来挑战:企业会担心竞争对手借助互联网的工具跑得更快,取得领先优势;同时拥抱互联网也面临安全、速度、稳定性带来的挑战。

互联网企业在发展过程中,运维方面遇到过很多的“坑”,比如专线中断、安全漏洞等等,同时针对这些问题也积累了大量的经验和方法。传统企业在向互联网转型的过程中,这些互联网企业的经验是可以借鉴和复用的。

目前我们已经处于一个云的年代,国内的云服务发展很快。互联网企业在发展初期遇到的很多运维问题现在的云服务都已经可以很好地解决,比如网络和安全的优化、跨网访问等等。传统企业可以选择云服务来解决基础性的运维问题。企业可以将自己的核心和敏感数据放在内部的私有云,将接触用户的一端放到公有云,以混合云的方式来搭建企业的互联网架构。

互联网化也给企业的IT部门带来了机遇。IT部门的人是最接近互联网的人,有经验,有技术。IT有机会从支持部门变成业务部门,从支持系统变成生产系统,去创造利润,创造价值。

最后说几点总结和建议:第一,个性化是效率的最大障碍,所以要统一架构、减少运维对象。第二,规范和现状的平衡,做标准化和统一架构会带来效率的下降,在企业“打江山”的时候可能不宜设置太多死板的限制和规则,但一定要有标准和规范的长远规划,并且一步步实现,找到管理的平衡点。第三,在互联网企业中,技术的种类非常多,比如网络、硬件、安全、自动化、运维等等,而人很难多专多长,如果IT部门规模较小,人员不多是很难做到面面俱到的。最后,还是要强调减少运维对象,规范技术架构和分层专业维护这三个基本要点。

传统企业要在互联网转型中跑得快,可以使用更成熟解决方案。最后给腾讯云做一个小小的广告,腾讯的vpc可以让企业把核心数据放在本地,而把非核心数据放到云上。云服务可以帮用户处理攻击等安全问题,也可以提供监控服务。另外目前有80%的用户已经在移动端,所以移动在未来是非常重要的,腾讯云提供完整的移动应用解决方案,可以解决跨网请求、域名解析、图片和移动视频服务、研发周期长、运营不稳定等等问题。

今天主要和大家分享了腾讯在海量产品的发展和运维中积累的一些经验,希望对大家有所启发。谢谢大家!

(本文由CIO发展中心整理)