BT

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

人人网专家谈开放平台中的“防癌系统”和敏捷

| 作者 崔康 关注 0 他的粉丝 发布于 2011年12月28日. 估计阅读时间: 16 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

【编者按】:本月12月21日,人人网召开了开放平台发布会,相关负责人与大家分享了人人网开放平台的系列创新,解读了人人网凭什么更开放?为了让大家对人人网开放平台更加了解,会后InfoQ对人人公司副总裁黄晶,开放平台项目经理李波进行了专访。以下是采访的具体内容:

InfoQ:请两位做一下自我介绍。

李波(L):我是人人网开放平台的项目经理李波,大家好。

黄晶(H):我是人人公司副总裁黄晶,负责产品技术运营方面的工作,包括开放平台。

InfoQ:人人网开放平台从08年开始起步,应该算是咱们国内开放平台的先行者。如今发展的规模大概有多大?

H:刚才在会上我们介绍了一下,目前人人网站内有超过2000家公司提交了上万款应用。然后,站外的采用我们人人帐号登陆的这个应用的数量现在是大约?

L:也有将近七八千家吧。

InfoQ:那么面对现在亿级的海量活动用户,人人网开放平台在可靠性方面采用了哪些关键的技术呢?

L:其实在关键性技术上,我们自己开发了一些系统,比如说类似于防癌系统,主要是应对海量用户的访问的时候,对平台整体系统的稳定性造成的冲击,能够及时的切断用户的一些不正当访问,以及API调用出现的问题,防癌系统还是比较给力的。

InfoQ:您方便再详细的介绍一下吗,比如这套系统的原理是什么,怎么运作的,大概用到了哪些算法,或者说架构之类的?

L:我们这套方案系统是这样,它主要是在我们API的一个中间层做监听,监听结果的调用量,比如说某个调用猛然间出现一个突增或者突减,这套方案系统应该能够监听到,很快的做出响应,来切断它,或者说通知我们人为的或者自动的来切换,大体上是个这样的东西。

H:因为开放平台的面向外部提供API的集群是一个统一的集群,比如某一些第三方在调用方式上有不太正确的,或者有突发性的增长的话,它有可能因为一个第三方影响到其他的人的调用,所以我们会监控这个东西,相当于是在中间做了一层监听和比较及时的预警。然后,人人网开放平台的整体架构来说,从整体上来说和人人网整体是不分离的,人人网本身的架构以前我们也做了很多的介绍,比方说我们在这么多的用户的情况下,大家产生的这个信息流,然后大家之间的关系,都是通过我们自己克服了很多问题,然后开发了很多分布式的系统来解决的,整个人人网的架构其实还是有很多可说的点的。

InfoQ:人人网开放平台的架构这些年的发展,产生了一些比较大的变化,那么接下来想问一下,主要的变化有哪些?然后这样做的驱动力大概是什么呢?为什么要做这些变化?做这些调整以后能给咱们带来哪些价值?

L:架构是这样,最开始我们开发平台的时候,就是做了很简单的API的一些调用,在安全性等方面做的也不是很到位。但是,紧跟着我们越来越关注用户的授权以及用户隐私方面,接下来我们采用的OAuth 2.0更加关注授权方式以及安全策略,这是我们最大的一个变化。整体的架构就是说,其实我们在内部的wiki上会有一张整体的开放平台的架构图,那个架构图是我们一个架构师所设计的一套架构,最底层的可能就是一个API,开发者可以直接在API上来调用,紧接着再上边有一些封装,封装的东西包括SDK,还有什么widget API,再往上一层就是开发者可以拿这个东西再做一层封装,都没有问题,这是整体的一些架构。我们是想让第三方能够在各个层面使用,就是比如说我技术能力比较强,那可以直接调用API,我技术能力比较弱,那可以直接调用SDK。那我还想在你的开放平台基础上,总觉得你做的不好,那我可以再做封装,这是我们更加Open的一个技术架构。

InfoQ:开放平台与最终用户的桥梁是第三方开发者和服务提供商,人人网是如何吸引这些对象的呢?

H:开放平台必须是一个多赢的局面才能吸引到这些开发者,从最开始来说,比如说我们平台开放,第一批的开发者,就是看到了人人网有大量的用户,然后借助这个用户的关系,可以得到很好的传播,他们好的想法可以得到大量的用户,这个是最直接的一个原因,我们能够给他带去用户和流量;第二点原因就是说我们有很多人人网特有的一些API,比方说我们的这个LBS API,我们提供的各种相册什么的API,第三方不用去关心太多的(技术细节),比方说他要做一个应用,让用户去网上分享照片,或者让用户去网上查地图的话,他用人人网的API就可以做了,他不用自己去解决很多技术上的难题;第三点就是说我们也提供了很完善的支付的体系,很多典型的游戏在人人网上是可以挣到钱的,可以支撑他们进一步发展。综合这几点就是说,在一些技术能力上的满足,然后让他们获得用户和流量,第三点让他们赚到钱。

InfoQ:人人网的技术专家在QCon杭州技术大会上做了有关开发平台安全机制的演讲,获得了我们参会者的好评,除了安全性,还有哪些非功能性的需求是咱们开放平台比较重点关注的?

L:当时去杭州做开放平台安全性机制的演讲是关于OAuth方面的,是我一个同事,除了OAuth安全性这方面,我们觉得,非功能性需求主要是满足第三方开发者,对新的业务的一些拓展,比如说我想用到人人网上圈人功能。如果他的应用里边有需求,可能需要开发平台来提供,开始的时候我们是没有提供的。所以开放平台以后更多的在业务上的关注,可能在API这主要是能开放更多的人人网上的API的接口,比如说我们最近开放了圈人API,还有配置API。

H:重点就是说我们会去关注开发者的开发门槛,包括我们面向开发者的接口,然后提供给开发者的各种widget和SDK,实际上都是在想尽办法帮他们来降低开发的门槛,让他在手机上用简单的几句代码就可完成一项功能。实际上这些API的功能我们都是有的,但是为了让开发者更简单的能够接入,他简单的加几行代码,就可以让这个应用带上社交化的功能,然后可以通过比如分享到人人之类的机制能够获得更多的用户,让他为此付出的这个开发成本非常低,这个是我们比较关注的。

InfoQ:咱们现在有一个比较热的词,叫BigData,就是在海量数据的并发,还有实时处理这方面,现在有没有面临一些技术上的挑战?人人网开放平台,面对这些挑战是怎么解决类似问题的?

L:人人网本身有一套自己的并发处理机制,开放平台在此基础上做了一些优化。海量数据的并发处理上,用到了一些开源的项目,比如memcache和redis等,做了一些二次开发,逐步完善中。

H:人人网数据量的特点是热点不是特别集中,需要多层的缓存。比如速度要求最快的地方用redis做缓存,下面用到了SSD等,还用到MySQL和Mongodb等。在大数据量、热点又比较分散的情况下,你只有靠多级缓存来提升效率,然后在比较关键的地方,像实时性强、业务逻辑有比较复杂的地方,我们会在开源项目的基础之上,做定制化的开发。比如我们有一个分布式中间层,你可以把它视为一个大的带有人人网业务逻辑的缓存,它是我们自己搭的一个集群,数据在内存里能够交换、运算。在新鲜事体系中,每天分发的新鲜事的条数可能是百亿条的规模,操作很频繁,我们自己设计和开发了这样的集群。

InfoQ:目前国内外有不少的开放平台,刚才咱们在发布会上也提到了。竞争相对来说还是比较激烈的,能不能再解释一下,您认为应该如何在这种环境中,树立人人网的开放平台这么一个品牌?

H:我觉得首先有一点,每个开放平台的能力是不一样的,人人网有他的特点。从用户群体上看,它最早是从中国大学里走出来的,现在扩展到了白领和高中各个阶层,用户的层次是比较高的,使用互联网和接受新事物的能力是比较强的。由于用户的素质比较高,相应的支付能力也比较强。另一个,产品的特性来讲,我们强调真实的资料和人际关系,可以让很多好的想法在上面获得更好的效果,不管是社交游戏还是社交应用,构建在真实的关系上,它的传播度和信赖度要比普通的非真实关系高得多。第三点,人人网在很多产品上有布局,在无线互联网上有大量的用户,比如在在地图LBS上面,在很多基础设施上,我们也有投入,还有网络相册等产品,所有这些功能加在一起,可以让第三方做的事情得到更好的支持,尤其是手机方面。

InfoQ:刚才讲到大数据的时候,提到了人人开放平台用到的开源工具,你们对开源工具有怎样的评价?

L:我们的确采用了一些开源工具,比如memcache,它是最常用的并发处理工具。我们认为开源工具有其精华的部分,可以降低我们开发任务的一些成本,可以很快的应用到其中的一些功能,把需求很多的开发出来,节省了很多人力。但是针对具体的开放平台的特别任务,我们可能还是要做二次开放,有些开源工具不能完全适合我们。

H:刚才李波也说了,实际上我们借助了很多开源的力量,比方说MySQL,这是我们用的最多的数据库技术。在采用开源项目的时候,有几个原则,我们很谨慎,首先在一些不重要的、压力不大的产品中试用,然后逐步推广。开源项目是有风险的,找到适合你的或者说经过验证的。我们曾经考察了某个系统的许多方案,其中有一个各方面都很强,但是后续开放没有很好的支持,所以是有很大风险的。另外,我们也尽可能的回馈开源社区,会把一些项目开源,提交补丁等等。

InfoQ:目前有没有提交到开源社区的产品或者说工具?

H:我们以前有一个Web开发框架现在是开源的,有部分人在用,我们有一个Kay\Vlaue系统,现在因为做了很多了,可能并不一定有很多人用。比方说用在lucene的切词组件,我们会把它开源,还会继续做下去。

InfoQ:就我想问一个关于项目管理的问题,现在开放平台的团队采用的开发方法是传统的呢,还是敏捷的模式呢,在这方面有没有可以分享的一些经验?

L:开放平台最开始的时候,因为人员比较少,可能对开放平台的一些业务具体了解不是太全面,所以最开始我们采用比较传统的。产品需求提过来以后,我们紧跟着就是开始做,没有一个整体的规划性,在一些时间点和把控上都是有很大变动,可能最终做出来的东西,和原先设计的东西是有很大的不同,随着开放平台业务线开展的越来越多,我们在中间也采取了一些方法,比方说采用scrum敏捷式开发,因为我们越来越意识到,开放平台的很多的业务是短平快,我们采用那种迭代式的开发,就是争取能够在短时间内能迭代一个版本,能让团队更加的有成就感,能够不断的发现问题,还有整改问题。其实在真正的一个项目立项阶段,我们现在开放平台推出项目管理部这么一个概念,希望能把产品和技术能够真正的融合在一起,因为产品线越来越多,业务线越来越大,需要有一个人能够把产品、技术、人力资源等把控好,这样能保证我们的项目能够按时的完成。

H:基本上作为一个互联网公司如果你不采用敏捷开发模式,那就是死路一条。所以每家公司可能都在探索适合自己的开发模式,不一定某一种模式就一定有效,或者说完全照那个去做,或者说你照着教科书去做的话,未必是对的。比方说我们也会经常的和像Face Book、Google这样的公司交流他们的开发模式,他们可能有他们自己的一套。开发模式就涉及到产品技术之间的配合,其实可以通过一些方式更好的去消除问题,然后让整个开发更加有序,让大家的工作更加高效配合起来,更加无缝一些。比方说我们也会看一些比较新的开发的理念,比方说我们会在产品的设计的初期,把技术引入进来,然后产品会多拿出一些方案做高保真的模型,让客户去试,然后保证这个在这个版本的需求是比较这个稳定的,然后进入一个迭代之后,这个需求就不会再变更,然后技术去按照scrum的方式去把它做出来,然后再进入下一个迭代。总之我觉得这个开发模式不是一个很固定的,你比如说XP或者scrum英文就一定好使,你还是要找到适合你的这些人,然后适合你的业务特点的一些模式。比方说在我们的一些产品线上就很适合用scrum,比方说它是客户端开发的,它是一个版本一个版本非常有序,有一些像偏网页或者一些新产品,它要不断的摸索,上线的时候可能要根据数据的反馈来进行下一个版本迭代,这个迭代周期要求非常短,响应非常迅速,可能这两个线采用的模式就是不一样。

InfoQ:最后请谈一谈人人网开放平台的发展规划?

H:第一点,我们会坚持开放的心态,不排斥和任何人的合作。只要他能够为用户提供有价值的服务、产品。第二点就是说我们会开放更多的技术能力,尤其是在移动互联网上面。比方说我们其实从今年初开始逐步的放开了很多以前限制的比较严格的一些接口,像用户发照片,我们后续还会开放,比如说地图类似这样的API,这些API其实有很多是非常适合在手机上去用的,所以我们会进一步的去开放这方面的能力。第三点就是说,我们会给想办法给这个开发者更多的回报。有一些开发者可能比较看中的是他能够得到用户和流量,比方是一个垂直的一个网站,或者是想把它做大的,有些开发者可能是游戏开发者,他比较看重的是一款游戏能够多快赚到钱,所以我们会给他们更多的这两方面的回报。

InfoQ:谢谢两位接受采访。


感谢崔康对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ)或者腾讯微博(@InfoQ)关注我们,并与我们的编辑和其他读者朋友交流。

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

OAuth 3.0是啥?2还没正式呢! by YANG LiN

如题,请各位科普下。

Re: OAuth 3.0是啥?2还没正式呢! by 贾 国清

感谢您的指正,又根据采访录音确认了一下,采访时提到的是OAuth 2.0,已将原文中的内容作了修正:)

允许的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通知我

2 讨论

深度内容

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT