发布时间:2016-10-29 11:02 | 来源:腾讯公益 2016-09-23 14:40 | 查看:2501次
3天、超过6亿的善款总额、累计677万捐赠人次、35万个一起捐、3643个公益项目。
这是你所知道——99公益日的数据。
3亿CGI(外部应用程序(CGI程序)与Web服务器之间的接口标准)请求,峰值每秒900+的交易笔数,每一笔配捐背后都有50+因子参与复杂的规则计算
这是你不知道——腾讯公益背后的技术团队数据。
最后两周,死磕体验,改!改!改!
可以更好?那就推倒重来!
8月22日22:40分,腾讯大厦33楼,灯还亮着。
Link还在跟团队讨论着刚修改完的配捐方案,作为腾讯公益技术开发组的成员,他们已经为99公益日足足筹备了一个月。
跟去年的1:1配捐(网友每捐1元,腾讯基金会配捐1元)不一样,今年原本定的是离线算法配捐。
然而,就在白天,他们决定放弃原本的离线配捐(网友完成捐款后,技术根据当天整体捐款情况,结合复杂算法配捐)方案,改为实时在线随机配。
Link边解释边计算着调整后的工作量,从1:1配捐到离线配捐已经加大了难度,这次改随机配,对他们来说,意味着推倒重来,背后不仅是海量数据的猛增,还有峰值冲击可能带来的宕机,可是为了更好的用户参与体验,值得一试。
看看日历,距离99公益日的开始只剩下两周的时间了。
单人计算量翻了25倍
所谓“随机配”,即网友捐出善款后,将获得金额随机的配捐。这届99公益日在腾讯基金会配捐之外,又额外加入其他爱心企业配捐和晚9点“惊喜时刻”配捐,难度又加一层。
负责配捐计算的Jayyi揉了揉眼睛,跟徒弟谭顺又核了一遍方案。去年的1:1配捐,每个用户只需要2-3次的计算量。
而离线配算法相对复杂,转变成随机配更意味着他需要计算一个人能不能配,配多少的问题。用户的每一次捐款需要进行至少50多次的复杂计算。
离线变实时,透明比什么都重要
随机配的第二个难点在“在线实时”,这对于团队意味着什么?
“原本计划离线配,就是离线计算,当天结束后再用算法去配。”Link指出,离线配最大问题就是用户没有感知,“他不知道你配了没有,某种程度上他会感觉不公开不透明。”
为让每一个参与的人都可以清楚看到实时数据,了解自己配捐的金额,技术团队开始尝试以在线实时的方式进行。
这样的体验升级也意味着——代码几乎重写!
百分之八九十的东西要重来,除了搭建环境不用改,其他都重做。
仿佛像立下生死状一样,Link咬牙,“搞得赢也要搞,搞不赢也要搞,大家干吧!”
可是问题又来了!
如果采用在线实时,参与者的每一次查询请求都要到后端服务器,没有那么多台服务器做支撑,峰值到达时,极有可能宕机。
“这个时候就看前端的了,”负责后台开发Kiet拍了拍前端Hunter的肩膀,示意他继续。
Hunter解释道,“为了减少后端数据请求的压力,Jayyi会把数据缓存在CGI服务器上,就算只缓存一秒,再到后端请求,后端压力也会小很多。通过这一步,让后端的速度提升百倍。”
这个量级,我们没有预料到
从3天1亿到1天1亿
一切准备就绪,考验即将到来。
对于量级的估算,谁也说不准。腾讯公益慈善基金会副秘书长Sarah拿去年的99公益日打比方,“去年9月7日,我们是凌晨开始,当时想没啥事,就算有人捐款,也得睡觉起来冲吧,结果零点刚过,同事就打电话说,一千万(配捐)没有了。”
今年的99公益定在9点开始,这一次数据的暴增足以让Hunter目瞪口呆,“9点就同时发力,系统一下子飙上去,以前配捐逻辑比较简单,没有单独搭一组服务器,今年配捐规则更为复杂,搭了一组来处理,就是为了让用户可以看到实时数据,去年是3天1个亿,今年7号当天就破1亿了。”
3分钟消化500万配捐额
9月7日,1分钟网友捐款达到700多万;9月8日,1分钟网友捐款飙到1200多万。
Kiet看着Hunter笑着说:”真的不敢相信,数量多了,我们又怕机器有问题,每一秒都严阵以待,但还是会被数字震撼到。”
7号的晚9点过9分,99公益惊喜时刻开启。
“Jayyi从十秒开始倒数开始,我们一起在心里默念。”Kiet说道。
所谓惊喜时刻是指在99公益日3天里,每晚9点09分,为公益项目捐款(限筹款排名前99名的公益项目)获得额外惊喜配捐,每天500万额度,先筹先配,配完即止。
9点09分,一大屋子人挤在一起,盯着屏幕上数字的变化。
500万、400万、300万、200万、100万、0!
9点12分,用时3分钟,500万全部配完。
“我们就在电脑前,看着数据的变化,特别激动!”Kiet难掩兴奋。
7倍紧急拓容应对峰值冲击
可是等待他们的挑战远没有结束。
今年99公益的交易数据承载是按照去年的5倍预估的,9月8日,结合9月7日1亿的交易量,峰值每秒400笔交易的量级,团队为8号储备的处理能力是每秒700笔交易的承载。
谁也没有料到,9月8日活动一开始,实时监控上,交易量瞬间上涨,峰值突破每秒900多笔,几乎是去年交易数据的8倍!大大超出了之前的预测,后台请求的急剧暴涨造成了系统的延迟。
“冲上的量太大,我们紧急扩容了后台的服务,并优化前端提示,处理挤压的部分交易数据,以最快速度恢复系统的正常运行。”回想起来,Kiet还心有余悸。
“结合这样的量级,我们重估了9号的峰值,拓容后系统达到每秒7000笔,是8号7倍的处理能力。”
9月9日24点,Jayyi看着参与人次定格在了677万,摸着头笑了。
缘起汶川,逐年挑战
3天时间,网友捐款3.05亿元,捐款总额是去年的2.4倍,参与人次是去年的3.3倍,总计善款总额超过6亿元,刷新了国内互联网募捐纪录。
对于幕后的技术来说,在这场盛大的公益界除夕夜里,他们完成了使命。一次次量级升级的背后,到底有着怎样的故事?
说起缘起,不得不提到2008年的汶川地震。
“2007我们的捐款平台上线,当时平台捐款并不多。”腾讯公益慈善基金会副秘书长Sarah说到,“汶川地震是在下午,平台捐款突然集中爆发,发生宕机,我们集全公司之力快速解决, 8天收到捐款2300多万,那时真是震撼到我们了,为确保无误,当时坐镇的人整整一星期都没出办公室。”
随着技术的不断升级,腾讯在应对大灾大难的能力也不断加强,“雅安地震我记得很清楚。”Sarah回忆,“当时我们已经有了一个公益的紧急灾害的响应机制,一旦发生,可以在几分钟内快速启动。同时启动兄弟部门联合机制,那时候出现了支付上的问题,找了财付通,当时的产品经理当即组建了一个联盟团队解决了问题。”
2012年腾讯公益开放平台上线,第三方组织和个人可以自己在平台上发布项目;
2013年腾讯公益接入微信支付/手Q支付;
2014年一起捐上线,益行家活动;
2015年公益捐步、第一届99公益日活动项目;
2016年第二届99公益日活动项目;
Link记下技术团队的每一次重大升级。
“2012年2700万;2013年5000万;2014年近1亿;2015年5.4亿;2016年,截至目前接近7亿”Link记录下的这些年网友在腾讯公益平台上捐款的总额(不含99腾讯及爱心企业配捐额),颇多感慨,“这几年的不断完善,通过99的练兵,我们心里底气也更足了。”
不止步于99,公益是生命的分享
互联网+公益的平台强调的人的连接,从善念到行动,从个体到群体,如何发动更多的人参与公益,成为技术团队思考的又一个难题。
2014年,他们发挥腾讯的社交基因,联合微信、手Q等兄弟部门发起“一起捐”。
“一起捐,就是你选取一个公益项目,自己设置一个目标金额,然后号召朋友一起来完成。99公益日我们都采用了。”Hunter解释到。效果出乎意料,99公益日的三天,参与一起捐人次占整个活动期间人次的一半以上。“这个创新让我们看到了分享的力量!”
“不止99,我们还有益行家,微信捐步数,为盲胞捐声音。”Sarah说到,“公益是一件很快乐的事情,我们用互联网为公益提供更多可实现的场景,99公益日是一次爱的能量的释放和连接,也成为触发更多人加入进来的动因。”
而这种分享和快乐不止步于99,腾讯的指尖公益团队,除了腾讯公益,腾讯的各条产品线,结合产品特色进行各种公益的合作和创新。
QQ全城助力公益寻人平台,通过向失踪儿童所在城市数以百万计的QQ用户推送走失儿童信息、并提供警方联络电话的方式,自2014年10月上线以来已经在全国找回16名失踪儿童。
2014年,腾讯云帮助中国最大的网络寻亲平台“宝贝回家论坛”抵制黑客攻击,并主动提供技术支持,帮助论坛迁移;在意识到大量公益组织拥抱互联网的最大瓶颈是缺乏建设网站的能力后,腾讯云又同步推出“云+公益”计划,为公益组织提供免费云服务、云镜像、IT公益培训、专业技术志愿者等4大专业服务。
“404”寻亲项目组集结来自腾讯各事业群不同岗位同事,通过改造404错误页面,让你在遇到访问页面错误时看到寻人信息,让更多的人关注到失踪儿童。截止2015年5月,他们发布了655则寻人信息,帮助找回孩子40个。除了腾讯,外部5000多家网站自动嵌入404公益页面的代码。
公益是出于对生命的敬畏和另一个生命的连接。他们用对技术创新的灵敏嗅觉打造心中的公益。
“我们捐步的设计师跟我说,他告诉她妈捐步可以献爱心,老太太现在每天不走完一万步都不回家”Sarah说道,“我们希望99公益日成为很多人连接公益的第一次,也希望它成为志愿者,公益组织的一个节日,让公益不再被动,而更多的是主动式,参与式的多元化体验和连接。”
当问到这些年最大的改变和感悟是什么的时候,Hunter笑着说,“以前都不知道跟亲朋解释自己是做什么的,现在提到99公益,他们就知道我是做什么的了。”
面对全新的配捐规则,未知的风险挑战,Kiet笑一笑,”做互联网产品的,最难的你要做出很多不确定的决定,这也是最好玩的地方。”
99过去了,然而,对鹅厂的员工来说,不过又是一个新的开始。
发表评论
网友评论
查看所有评论>>