BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

QQ安全中心的两小时Bug:快速响应+快速部署的经典案例

| 作者 杨赛 关注 3 他的粉丝 发布于 2013年3月27日. 估计阅读时间: 5 分钟 | CNUTCon 了解国内外一线大厂50+智能运维最新实践案例。

3月24日晚11点22分,@左耳朵耗子想改QQ密码,触发了QQ安全中心的一个bug:

于是发微博吐槽之。大家初步分析这是一个比较低级的错误,@翁雨键在评论中认为:

目测是因为#是非法字符。程序员偷懒跟密码长度不对用了同一个错误提示,QA不知道有这样的规定设计测试用例没覆盖到,PM/UE太junior只关心正常的path没给错误用例设计提示。

然后过了半个多小时,@腾讯QQ安全中心的运营人员发现了这条吐槽,并进行了反馈:

image

又过了一个多小时,@腾讯QQ安全中心又回来这条微博下评论,说bug已经改好了:

image

此消息一出,腾讯QQ安全中心背后的运维、响应、部署流程立刻引起了大家的关注。当事人陈皓对腾讯这次的响应速度进行了高度评价

只有高度自动化测试+程序员完全自主才会有这样高效的流程。

在看到这条消息的时候,InfoQ编辑正好在跟腾讯互联网产品运维副总监Coati沟通QCon北京分享的事情,便问他腾讯在快速响应、部署这方面是怎么做的。Coati表示,虽然QQ安全中心属于基础运维部,而自己负责的范围属于应用运维,但根据他跟同事的沟通,他们在运维响应方面的很多处理流程是差不多的,比如:

一般我们推送新版本,大体分为三级:一种是大版本的更新,涉及到特性增减改动等方面的,一般每周会做2-3次,而且会选择周一到周四之间做推送,一般不在周五做推送;另外一种是运营性的版本更新,这个更新频率不一定。这两种都是需要QA参与的。第三种是bug修复,这里也分级别,比如外网对bug进行快速修复,大的bug是需要走灰度的,而小的bug,比如只是涉及到界面、体验相关的,是可以免测试的。

这次密码功能bug的修复,因为涉及到程序逻辑,所以上线之前还是要经过测试的。不过这并不是说测试人员就一定要在公司,我们可以VPN登陆,从家里也可以随时响应的。

Coati表示会在QCon北京上的分享介绍更多的细节,包括:

  1. 腾讯的互联网产品运维这块是如何划分领域的?
  2. 运维和开发有明确的界限么?平时如何协作?
  3. 代码部署和代码审查都使用什么工具?发布流程如何?发布的频率如何?
  4. 应用运维的监控分为几个层面?信息源来自哪里,监控的力度、频率如何?

想了解腾讯运维体系的同学们,可以重点关注Coati的分享。

InfoQ在前不久刚刚介绍过Etsy的运维体系。根据Sam Haskins的介绍,Etsy的核心平台团队平均每天的部署次数在20-30次,最高时甚至能达到70次。他们的监控手段也比较立体,在自动化监控工具之外,有大量的工作是靠人肉看图表来完成的,另外帮助论坛和客服那里也是重要的反馈来源(他倒是没提到有没有在用Twitter做这方面的监控)。

阿里系方面,应用运维的刘勇(@淘宝仲明)也公开介绍过他们的运维流程。阿里应用运维的发布观察期一般在一个小时左右,涉及到交易等重要的变更则走灰度,需要24小时的观察期;监控也分为很多维度,针对底层有常规指标的监控,针对业务层面有交易量等业务指标的监控,也有对用户投诉的监控,根据投诉出现的频率和修复bug需要的时间来确定bug修复的优先级。仲明也是今年QCon北京自动化运维专场的讲师。

乔梁也对百度的DevOps运动进行过介绍,提到了从2010年到2011年之间,百度内部的提测耗时和上线部署耗时大大减少的情况。对于不了解DevOps文化的同学,这篇文章也是一个很好的入门资料。

最近几年在运维界流行的DevOps文化,可以说是开发领域的敏捷运动的一个延伸,提倡开发和运维协同工作,以实现快速部署、快速响应。这个理念尤其适用于互联网产品和移动互联网产品,因为此类产品的迭代速度是核心竞争力,不仅影响产品本身的质量、功能发展,还很大的影响到产品的市场口碑和传播效应。像本次QQ安全中心的例子,用户反馈的信息源出现在新浪微博这个第三方平台上,而众所周知,官方微博的运营人员往往是不懂技术的。

微博运营人员如何能够判定这个bug反馈的重要程度(无论是在技术层面还是营销层面)?运营人员把此类bug反馈到哪个渠道(一般的情况下,腾讯这样大的公司,你不可能很快知道负责QQ安全中心这个产品的技术经理是哪位的)?谁来决定这个bug值不值得在凌晨12点的时候电话把同事叫起来进行修复(当然,也有可能是这一块的负责人那个时候还没下班)?

这些都是很有意思的话题,而且已经不完全是技术的范畴。腾讯这样规模的公司能做到这样快速的反馈,的确很厉害;同时这也意味着,即使你是一个小公司,在产品迭代、响应速度上要赶超腾讯,是难度很大的。

现在就开始建立这样一个快速响应的开发+运维+测试的体系吧!

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

目测是因为#是非法字符. 应该不会吧 by Dai Gangbo

目测是因为#是非法字符. 应该不会吧,很多服务商都推荐这种使用特殊符号做密码的,google的就可以用#号。

密码居然是明文显示的! by 曹 云飞

这是更严重的bug呀

Re: 密码居然是明文显示的! by able jet

明文是应该的,复杂的密码,如果用星号替换,很容易写错。
#号分隔造成截取长度不正确?这个貌似不会吧,也不是sql注入过滤造成的,奇怪

这么坑的bug都能发布? by Cai HeatoN

软件有bug正常,不过这个bug我想说也太坑了。难道没有自动化测试么?

确实需要有个自动化的平台才能做到这么高效的发布 by Chen Zhen-bao

我们也有一个类似的平台,称为开放工厂(iOpenWorks.com),程序员发现一个Bug后,经修复,可以通过右键一键将最新程序的编辑结果发布出去,所有部署将在半小时内自动进行升级,当然,你可以可以实现手动升级的。

Appdyniamics 是查App错误的利器. by Christian Eleven

如果出现应用程序上的瓶颈监控,可能就需要更好的专业工具

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

6 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT