InfoQ

InfoQ

文章

我的书签

登录注册 以永久保存书签。

该内容已经被标记书签!

标记书签错误,请重试!

黄晶谈人人网架构

作者 侯伯薇 发布于 2010年12月27日

领域
企业架构,
运维 & 基础架构,
架构 & 设计,
语言 & 开发
主题
MySQL ,
开放源代码 ,
REST ,
QCon ,
关系型数据库 ,
架构 ,
互联网 ,
企业架构 ,
编程 ,
数据库 ,
会议 ,
Facebook

在2010年的QCon北京大会上,InfoQ的编辑对人人网产品技术高级总监黄晶进行了采访,其中他谈到了关于人人网从校内到现在所做的架构上的转变,还谈到了人人网创建并使用的两个开源项目。

黄晶,清华大学计算机系硕士,曾在天人互动游戏公司、空中网、千橡互动任职,现任千橡互动集团人人网产品技术高级总监,负责人人网产品规划和研发。投身 Web2.0和SNS事业,秉承以用户价值为核心的理念,推崇以简约架构取得最大收益的技术路线,积极推动互联网开放平台和开源项目的发展和应用,带领人人网产品技术团队,实现人人网的稳健高速发展。

InfoQ:大家好,经常上SNS社区的人,都应该知道校内网,而现在校内已经改名叫做人人了。今天我们有幸请到了人人网的黄晶老师,来跟我们分享一下人人网在技术架构方面以及他们最近做了两个开源项目相关的一些经验和知识。

黄晶老师你好。

黄晶(以下简称黄):InfoQ的朋友们大家好。

InfoQ:大家都知道,原来人人网的名字叫校内,而现在叫人人,从最早的校内到现在的人人网,在这个不断进展的过程中,您在架构上做了哪些改进呢?

黄:因为校内的发展过程非常迅速,几年之内翻了好多倍,它的技术架构也随着这个需求也有很大的变化。

在开始的时候,校内是使用比较简单、比较典型的技术方案来实现的一个架构。然后,随着规模的扩大和一些特殊的应用的场景的需要,我们逐步地、越来越多地用到了自己开发的一些系统,以及自己开发的一些框架。比如说我们有一套非常完善、非常庞大而完整的中间层系统和架构,还有用户处理的系统,这些都完全是由我们自己开发的,而没有其它可以借鉴的一些产品。这样的系统可能我们在几年的积累下,已经逐步完善。像存储,以前用的是简单的数据,分布式存储。而对于WEB开发的框架我们也根据自己产品的需要,开发了一套自己特有的WEB开发框架,其中有一些系统,我们考虑是为更多人所用,大家一起来完善它,就考虑把一些系统开源化,让大家一块把这些做得更好。

InfoQ:应该说人人网的技术实力方面应该是非常强,而且对技术方面的投入也非常大的。

黄:我们在技术方面做了非常大的投入,我们公司的文化叫做极致文化,就是特别赞赏那种钻在技术里面,不考虑其它事情,想把技术做到极致的那种人。

InfoQ:您以及您带领的团队里会有很多很多的这种人?

黄:对,我们很多人都是那种每天钻在技术里面非常陶醉的那种人,我们觉得如果想把SNS这个事情做好的话,是需要很多这样的人。

InfoQ:都是非常快乐的程序员,我想问一下咱们现在的架构您觉得里面做的比较完美,比较满意的是什么地方?

黄:我觉得我们有一个比较独特的、自己开发的中间层系统,这个系统完成了大量的后端服务器需要处理的一些工作,包括缓存,包括一些复杂的业务处理,包括搜索也集成在里面。这些系统都放在我们这样一个中间层系统里面,这个中间层系统本身具有高可用性,可以灵活的拓展,增加服务,增加相对性的服务,可以用很少的代码量来完成里面的很多的分布式管理和内存方面的分配管理,这些都做了很长时间的积累,这个可能是我们比较大的技术方面的积累。

InfoQ:那咱们维护工作平时复不复杂?

黄:维护工作还是有一定复杂度,因为我们的业务是不能中断的,我们经常有很多的维护工作,既使是你的系统设计可以在高可用性下切换,你也必须在低负载的情况下去切换,那样风险比较低,我们很多的工作就是,除了开发之外,还经常半夜里要更新系统,要切换服务器各个方面的管理工作,其实还是比较辛苦。如果把这件事做成自动化有很大的风险,因为里面有很多会误判的情况下会有一些振荡,这个风险很大,我们还是半自动的一个过程。

InfoQ:对咱们的用户特别负责一个态度。

黄:我们工程师很多都是夜猫子。

InfoQ:那您觉得现在的系统里面会对有一些方面还不是很满意,需要改进的地方呢?

黄:我觉得我们现在是有一些地方我们的系统还需要完善,比如说在某一些数据一致性方面,我们在不同的地方之间还是不能保持很高的数据一致性,这样对以后变成多个机房工作镜像同步关系的时候,可能会有一些阻碍。我们将来的发展方向应该是会拥有多个核心节点的机房,我们要解决这个问题,首先就要解决数据一致性性,也就是数据同步方面的一些问题,这需要一个比较好的分布式系统的设计去完成。

InfoQ:也就是说以后咱们人人网的服务器,不一定全部集中在北京,可能集中在全国各地,然后大家协同来做分布式的操作?

黄:因为考虑如果是一个地方,现在地震比较频繁,如果是地震或者是火灾的话,你的核心节点不能只依赖一个地区。

InfoQ:我刚才跟那个黄晶老师交流的时候,黄晶老师提到,最近在做两个开源项目,这两个开源项目您给我们简单介绍一下吧?

黄:这两个项目其实也是我们在业务的需求下催生的,一个开源项目是分布式的key-value存储系统。这个项目其实有很多类似的开源项目,包括这个Cassandra等等,那么我们也是在经过需求分析之后,觉得这些项目多少都无法完全适合我们的场景,所以对于我们这个项目,我们把它做成一个比较灵活的,他下面的存储是可以用文件系统,可以用MySQL,也可以用Cassandra这样的系统,上层的管理要满足我们的需要,待会我会讲一下这个开源项目,我们也有这个开源项目的介绍,我们也有这个团队的一个博客,ugc.renren.com,大家感兴趣的话可以去看一下。另外一个我们打算开源的项目,是我们的一个Web开发框架,这个开发框架是Rest风格,比较简洁,比较适用于互联网的产品,它可以大大的减少开发controller这个层面的代码量,然后可以非常方便的去配置一些像O-R Mapping这样的机制,然后与它相结合。我们还有另外一个在Model层面的,很分散的、分片的大型数据库集群,当访问数据库的时候,也有和它结合很好的另外一个组件,将来如果是能够做的非常通用的话,可配置的话,我们也会考虑到开源。它是类似于MySQL Proxy访问数据库中间层的一个组件,它会负责把这些请求分发到数据库集群中。这几个结合起来,做比较规定规模的Web应用,应该是比较适合的。所以我们把这个项目开源,也是希望更多的人能够来使用和完善它,能够让更多的人在这个方面少走一些弯路,我们这几年探索过来,经过非常大量的重构。

InfoQ:您希望把你们宝贵的经验,宝贵的知识和全国甚至全世界的程序员一起来分享。

黄:因为我们也用到了很多开源的项目,基本上在开源这个框架上面做起来的,所以我们觉得这是一个很好的事情,大家一起分享一起来完善一些东西。

InfoQ:我想知道咱们的key-value系统,是基于什么样的需求呢?人人网和FACEBOOK,在什么地方差别特别大,导致咱们觉得他们那种解决方案不适合人人网呢?

黄:对于分布式系统,有一个理论叫CAP理论,有的系统可能在C和P方面做的比较好,这CAP三个,一个是高可用性,一个是节点容错性,一个是一致性,很难做到三个同时满足的,必须有折中。有的时候,有些系统在不同的取舍方面会有一些区别,这个区别就导致可能有时并不是非常适合,我们自己也希望能够对一个系统做到足够熟悉,在需要的情况下,我们可以直接去改造它的核心部分。基于这些考虑,我们就根据自己的需求,同时去学习别人的思想,做了一个新的系统。

InfoQ:在CAP这三个中间,做了针对人人网的最好的平衡。

黄:对。

InfoQ:好的,感谢黄晶老师接受我们的采访。谢谢!

黄:谢谢。


给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家加入到InfoQ中文站用户讨论组中与我们的编辑和其他读者朋友交流。

utc.renren.COM 发表人 jin zic 发表于
Re: utc.renren.COM 发表人 田 震 发表于
Re: utc.renren.COM 发表人 王 杰 发表于
Re: utc.renren.COM 发表人 dong xiaojian 发表于
Re: utc.renren.COM 发表人 黄 雯 发表于
Re: utc.renren.COM 发表人 朱 瑞贤 发表于
Re: utc.renren.COM 发表人 唐 兴华 发表于
Re: utc.renren.COM 发表人 唐 兴华 发表于
Re: utc.renren.COM 发表人 欣 李 发表于
Re: utc.renren.COM 发表人 jiang pengfei 发表于
ugc.renren.com 请更正,谢谢 发表人 张 章 发表于
Re: ugc.renren.com 请更正,谢谢 发表人 胡 伟红 发表于
浮云 发表人 liu tim 发表于
Re: 浮云 发表人 zheng spell 发表于
utc.renren.COM 发表人 wu tao 发表于
讲点详细的吧! 发表人 wu tao 发表于
怎么感觉这篇采访刚开始讲重点就结束了呢 发表人 Ding Xuefeng 发表于
我倒觉得人人网的架构在学豆瓣网的。 发表人 riguang li 发表于
标题党 发表人 姓 名 发表于
人人网的广告吧? 发表人 Luo Luke 发表于
Re: 人人网的广告吧? 发表人 Will Jack 发表于
蛋疼的文章 发表人 King Steven 发表于
Re: 蛋疼的文章 发表人 许 怡 发表于
无聊,一点干货都没有 发表人 fish sodarfish 发表于
  1. 返回顶部

    utc.renren.COM

    发表人 jin zic

    utc.renren.COM 能访问?

  2. 返回顶部

    Re: utc.renren.COM

    发表人 田 震

    当然不能……我总是感觉人人网还是在抄袭Facebook,只不过加入了一些中国特色进去。

  3. 返回顶部

    Re: utc.renren.COM

    发表人 王 杰

    这属于正常现象,现在中国国内的IT企业大多数都是抄袭别人的。

  4. 返回顶部

    Re: utc.renren.COM

    发表人 黄 雯

    你能找出一个不抄袭国外模式的例子吗

  5. 返回顶部

    ugc.renren.com 请更正,谢谢

    发表人 张 章

    ugc.renren.com 请更正,谢谢

  6. 返回顶部

    浮云

    发表人 liu tim

    我们公司的文化叫做极致文化,就是特别赞赏那种钻在技术里面,不考虑其它事情,想把技术做到极致的那种人。

    -- 然后,官人就可以忘记房子车子和现实,把一切都当做浮云了罢。。

  7. 返回顶部

    Re: ugc.renren.com 请更正,谢谢

    发表人 胡 伟红

    已经更正!

  8. 返回顶部

    Re: utc.renren.COM

    发表人 唐 兴华

    个人认为只要朝着对的方向做,没什么不能“拿来”的。
    如果真是直接照搬,它肯定不会像现在这么成功。
    在合适的地方加入中国特色满足中国用户需求才是它取得现有成绩最重要的。

  9. 返回顶部

    Re: utc.renren.COM

    发表人 唐 兴华

    结束标签忘记加/了。。

  10. 返回顶部

    Re: utc.renren.COM

    发表人 dong xiaojian

    严重同意
    中国的互联网就是复制和扯淡。

  11. 返回顶部

    utc.renren.COM

    发表人 wu tao

  12. 返回顶部

    讲点详细的吧!

    发表人 wu tao

  13. 返回顶部

    怎么感觉这篇采访刚开始讲重点就结束了呢

    发表人 Ding Xuefeng

    似乎刚开始讲到技术的话题,还没怎么说,就结束了。。。

  14. 返回顶部

    我倒觉得人人网的架构在学豆瓣网的。

    发表人 riguang li

    人人的架构不要一味模仿别人的,应该多考虑在分散式架构上面,尽量使用key value方案。

  15. 返回顶部

    标题党

    发表人 姓 名

    有点“标题党“的感觉,都是泛泛而谈,没有深度,
    用“軟广告”来形容最合适了。

  16. 返回顶部

    人人网的广告吧?

    发表人 Luo Luke

    有谁能告诉我,这篇文章讲啥了?我知道了人人网有个叫黄晶的架构师,其他啥也不知道。

  17. 返回顶部

    Re: utc.renren.COM

    发表人 欣 李

    .....

  18. 返回顶部

    Re: utc.renren.COM

    发表人 jiang pengfei

    和文章主题相差甚远,浪费大家时间

  19. 返回顶部

    Re: 浮云

    发表人 zheng spell

    说实话考虑太多房子和车子容易浮躁,得不到又太想,那只有不断的对现实不满了。不过我们所处的环境的确不好,不能安居乐业。

  20. 返回顶部

    蛋疼的文章

    发表人 King Steven

    这篇报道太有失infoq水准了,失望。

  21. 返回顶部

    Re: 蛋疼的文章

    发表人 许 怡

    这是令人蛋疼的文章,这主持人都没问到点,形式主义的问问,这个嘉宾也是浅浅的提下就结束了

  22. 返回顶部

    Re: 人人网的广告吧?

    发表人 Will Jack

    严重同意。十句有八句是夸自己好的。。。

  23. 返回顶部

    Re: utc.renren.COM

    发表人 朱 瑞贤

    360

  24. 返回顶部

    无聊,一点干货都没有

    发表人 fish sodarfish

    无聊,一点干货都没有