PHP全球开发者大会将于年5月14日至15日在北京召开,会前我们对本次活动的演讲嘉宾之一,新浪微博移动应用服务高级架构师胡波老师进行了文字专访,文中黑体字部分为DevLink记者,细体字部分为胡波老师。
胡波老师您好,能不能先介绍下自己?
我是个老码农,目前在微博工作,主要负责移动应用服务相关,主要在做社区相关项目,包括之前流行的BBS、网络空间、博客平台以及现在微博。
作为非计算机专业码农,凭着对撸码的热爱,在架构把控和管理团队之余,依然活跃在撸码一线。
您之前有过两次创业经历,为什么最后又选择进入新浪微博从事开发工作呢?为什么没有选择继续创业?
嗯,由着自己折腾了差不多五六年吧,这五六年的磨练,无论是技术本身,还是眼界、处理问题的思路、经验,都快速成长。
之所以没有像高春辉老师那样连续创业下去,“创业”真的太没有确定性了!而且折腾这些年,也只是一直面对几十万日PV这种规模的系统,我也需要更大的平台来学习锻炼,于是就先去了55BBS负责社区开发与升级,13年又来到微博负责客户端移动接口,不断迎接更大的挑战,磨练自己。
我发现您此前的工作及创业经历与社区、BBS有关的较多,我们知道维护社区系统与从事新浪微博的架构工作还是有很大的差异的,您是如何做到这样一个技术转型的?
其实,从我自己来说,并没有感觉到转型什么的。或许因为我本身是野路子,非科班出身的程序猿,在码农这条路上野蛮生长吧。再加上多年创业经历,就要求我必须什么都得做,什么都得学,那会儿也没有前端、产品经理、架构师这么多分工和头衔儿,无论是技术选型、架构体系设计还是开发实现,都得自己摸索、学习、解决。甚至连产品运维、机房布线都得自己做。虽然累,但也确实一直就被逼迫着不断开拓眼界,拔高思考问题的视角,积累经验,也锻炼了独立思考、成本意识、沟通能力等。曾经最囧的时候是我们闹过设计师荒,我还负责做了很久的页面设计呢,从此练就了娴熟的Photoshop技能,留下了“二手设计师”的称号:)所以从我来看,这是其实是一个水到渠成的过程。无论是开发、维护社区系统还是微博架构,都是满足产品需求,解决技术问题。
您现在负责微博整个移动API团队,您觉得PHP在做API这个事情上有什么优缺点,另外我们听说微博后端数据接口都是Java做的,这样的体系结构你觉得有什么优缺点?
移动API这一层,直接面向用户,行业变化快,需求变动频繁,还要求能快速响应。而PHP开发快速,性能优异,部署方便,还有丰富的库和框架,正是我们做接口层的不二之选啊。最重要的是有大量靠谱的PHPer,团队永远不愁招不到人!当然也正因为PHP太灵活了,所以代码质量控制,就成了一个挑战。我们花费了差不多一年的时间来完善开发流程,搭建自动化校验、自动化单元测试,以确保质量。
微博发展到现在,已经是一个非常庞大和复杂的系统,后端不仅有你说的Java,还有C、C++、Golang、Erlang、Python、PHP等等各种语言做的服务,这种架构体系,也是一步一步演化的结果。好处显而易见,可以根据不同业务场景特色,充分利用各种语言的特点以及自己团队现状,满足业务发展需求。当然公司的技术栈越来越庞杂,必然增加管理的复杂度。
据了解,微博是全球PHP社区第一个升级到PHP7的大型应用,是什么样的原因让您选择这样一个别人看起来较为激进的升级策略?
很荣幸,我们团队这次拿了个第一:)让我能嘚瑟一下。
很多人都觉得我们这次升级很激进,很冒险。实际上这次升级到PHP7,是我所经历的最平滑最顺畅的一次重大系统升级。之所以敢率先升级,且在元旦这么敏感的时候全量升级主要是几个方面:
-PHP7beta的时候,我们团队就一直在跟进,正式发布的时候,代码已经全面支持PHP7了;
-我们压测显示,微博移动API,跑在PHP7下比PHP5,性能提升一倍;-有鸟哥的全力支持,把我们依赖的YafYar等扩展升级到了PHP7;
-年,我们完善了项目的单元测试,覆盖率85%以上,PHP7下项目单元测试全部通过;
-每年元旦春节微博都会有巨大流量高峰,此时升级可以给公司节省巨大成本;
除了PHP,您现在还在