BT

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

王伟冰:百度贴吧的私有云改造
录制于:

| 受访者 王伟冰 关注 0 他的粉丝 作者 InfoQ 关注 13 他的粉丝 发布于 2016年12月16日 | ArchSummit北京2018 共同探讨机器学习、信息安全、微服务治理的关键点
09:54

个人简介 王伟冰,2010年加入百度,参与设计开发百度Memcached、Redis、通用反作弊等通用服务,服务百度50+产品线,日pv上万亿。 负责百度LNMP基础设施(Nginx、PHP、HHVM、RPC中间件、扩展、基础库等)开发维护,服务百度数千名PHP开发者。负责百度OXP私有云平台建设,为业务提供开发框架、测试环境、运维平台、监控系统等一站式服务,支撑百度O2O、社区、知识、移动云等核心业务。 负责百度贴吧性能优化,节约过半服务器,优化PC、移动、Native客户端的用户访问速度,建立全面的性能评估、分析、监控体系。

全球架构师峰会(International Architect Summit,下简称ArchSummit)是由InfoQ中文站主办的一次全球性架构师峰会。ArchSummit专门针对架构师人群,讲述与架构和架构师相关的各方面趋势、技术和案例。这也是继QCon之后,InfoQ中文站主办的又一次高端技术盛会。

   

1. 各位InfoQ的网友大家好!现在我们是在ArchSummit深圳大会的现场,作客专访间的是百度贴吧的王伟冰。首先请您讲讲百度私有云平台建设的过程。

王伟冰:最开始不叫私有云,只是做了一些通用的服务,每个产品线都在做一些重复的事情,比如说memcached、Redis这样的东西,我们就想可以做这样一个事情,减少研发产品线的人力,所以一开始我们做了一些通用的服务,后来又做了一些通用的开发框架,再往后发现业务线的问题不仅仅在开发上,开发完了上线以后运维还是有很多的问题,所以我们把重点从开发转到运维上,这时候才开始搭建私有云平台,希望产品提升运维效率。

   

2. 建私有云平台用了多长时间?

王伟冰:从2012年就开始建了,到目前为止还是一直完善的过程。

   

3. 能否详细介绍一下百度贴吧在向OXP私有云迁移的具体方案,比如数据是怎么迁移的?网络是怎么改造的?流量切分机制是什么?

王伟冰:我们私有云主要是托管php应用,首先对贴吧做了LAMP化改造,把所有前端包括一些后端的模块用php重写,这是一个前提。这个前提之下做私有云,以前大家用php开发有一个大的环境,大家都往一个地方部署代码,整个贴吧是一个很大的php集群,现在要迁移到私有云上,需要在私有云上搭建实例,这些实例是按应用分开的,以前贴吧是一个大应用,现在要把它拆下来变成一个一个小的应用,然后搭建在私有云上。会去做一些小流量的测试,没有问题的话再慢慢把一个应用的流量从大集群迁移到私有云上,这个过程是非常漫长的,过程中业务还是在不断地迭代的,需要代码双向同步,保证两边是一致的,在这个前提下把流量慢慢切换。 数据方面,整个数据跟前端代码迁移是分开的,数据也是通过几代叠加,一开始全部都是专有的存储C模块,到后来有一部分慢慢迁移到Mysql,这也是一个需要做数据的过程,我们内部是有消息队列的,会存储所有提交的记录,做数据的过程中可能从从库里停写,把数据做全量同步之后再把消息队列里的消息回放,后来一部分数据迁到Redis里面,也是同样的原理。

   

4. 网络这边没有太多改动是吧?

王伟冰:对,内部网络都是互通互联的。

   

5. 随着贴吧业务规模和团队规模的扩张,每天上百次迭代的情况下,A/B测试是怎么做的或者说是用什么策略来做的?

王伟冰:A/B测试是并行做的,有多套实验,流量进来以后会进行不同策略,百分之多少用户到这个组,百分之多少用户到那个组,最终会记录到日志里面,然后我们去分析日志。

   

6. 分析完日志才对迭代做一些策略变化是吗?

王伟冰:除了A/B测试还会在线上进行基本的回归测试,每次上线之后都会去线上跑一些case。有一个case fail的话,上线可能就会停止,通过这样来保证上线是可靠的。

   

7. 私有云里用的存储方案是什么?

王伟冰:对业务来说是有多种选择的,比如说Mysql,这是另外一个团队提供的,也可以用我们提供的redis存储,或者其他公司提供的kv存储,是比较自由的,我们会给业务提供选型的建议,什么样的场景用什么更合适。

   

8. 贴吧现在用的是内存存储吗?

王伟冰:贴吧现在是综合的,有Mysql,有Redis,有cache,还有一些KV存储和一些专有存储。

   

9. 贴吧的存储为什么会这么复杂?

王伟冰:贴吧有它的特点,比如说贴子列表是很长的拉链,贴子里的回复列表也是很长的拉链,贴吧里最长的贴子可以达到几千万,目前的开源存储方案没有特别合适的,这一块我们是采用自己的专有存储方式来实现。

   

10. Native和WebApp优化的过程中除了性能方面能不能分享一下安全是怎么做的?比如客户端XSS的安全问题,百度开放帐号系统接入的问题,怎么处理?

王伟冰:安全这一块,一个是服务端,公司有专门的团队搭建了一套比较完善的防攻击系统,服务端的攻击他们大部分都能识别出来。另外,在他们后面我们还有自己的防攻击策略,有时候可能会有一些人频繁的访问贴吧的一个帖子,而且这个帖子还是特别长的,从前端看没有问题,但是到后端系统会造成很大的压力,这一类我们现在是在接入层做一些防攻击策略来实现的。

   

11. 我知道百度的帐号系统是特别庞大的一个系统,你们在贴吧移动端有没有做什么处理?

王伟冰:百度帐号系统自己做了很多事情,我们唯一需要做的事情是集成它的SDK,另外它有更新的时候会通知我们。你刚才提到客户端的XSS,首先我们做了参数的过滤,去避免这个问题,也不是完全避免,还会利用浏览器的特性做一些监控,当可能有XSS漏洞的时候浏览器会通知我们,然后我们再去看是不是真正的问题。

Infoq:谢谢。我的采访就到这里。

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT