BT

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

豆瓣首席架构师洪强宁的年度展望

| 作者 洪强宁 关注 2 他的粉丝 发布于 2010年3月30日. 估计阅读时间: 6 分钟 | AICon 关注机器学习、计算机视觉、NLP、自动驾驶等20+AI热点技术和最新落地成功案例。

从我2006年加入豆瓣团队以来,豆瓣无论从规模上还是从架构上都发生了很大的变化,并且看起来这个变化会越来越快,越来越激烈。从刚入职时十万级PV,到百万级PV到千万级PV再到并不遥远的亿级PV目标,在每一个阶段,都给系统架构带来不小的挑战。

2009年4月份,我应泰稳和大辉的邀请在QCon大会上和大家分享了豆瓣从最初上线到当时的系统架构变迁历程,没想到得到了很多人的关注和共鸣,从一个侧面也反映出来系统架构如何按需而变是大家共同关注的问题。架构设计是为了解决实际问题,一切的考虑从这个出发,可以避免无用的过度设计。


关注性能和可用性


2009年,豆瓣的用户规模达到了千万级,最直接的需求是要解决数据量增加带来的性能问题,以及作为一个有影响力的网站,可用性要求需要上一个台阶的问题。前一个问题,我们通过对doubandb(开源版本beansdb已经在12月份在google code上发布了第一个版本)进行了进一步的性能优化(主要是哈希树的内存缓存和数据的异步读写),并对一些影响性能的MySQL大表做了水平拆分来解决。后一个问题,则是逐步完善各服务的fail over机制,建立服务部署规范,扩大监控范围,并开发了一系列的小工具来简化配置更新和上线操作。在按需设计的同时,注意对设计模式的识别和抽象,总结方法,以规范和基础设施的形式将好的设计推广,可以说是我在工作中最重要的心得。


建立面向服务的架构

当前豆瓣的信息架构正面临着巨大的调整,传统的读书、电影、音乐三个栏目将以独立的二级域名子站方式呈现,而www域名则成为社区站。各子站在发展路线和资源配给上会依各自不同的产品特性而具有一定的独立性。反映在技术架构上,则是需要把原来耦合度较高的代码和服务,依照产品类型进行解耦,为各产品线的未来发展留出更大空间。如何让这个过程进行的更为平滑,对产品开发工程师的干扰更小,是我目前最关注的问题。

同时,随着解耦的进行,各产品线新功能的不断推出,以及移动客户端战略的推进,会有更多的功能模块需要以服务的形式独立出来,豆瓣的架构也会越来越向面向服务的架构(SOA)倾斜。这是一个逐步发展的过程,在这个过程中,如何实现好SOA治理,如何在与性能和开发维护方便性的关系中取得好的平衡,不为将来的系统留下混乱的隐患,都是非常值得研究的课题,也是现在我正在重点考虑的内容。

2010年的关注点

在2010年,我希望能够在以下几个技术点上有所收获:



1. NoSQL数据库。09年可以说是NoSQL数据库蓬勃发展的一年,各个流派的NoSQL数据库层出不穷,豆瓣也贡献了分布式Key-Value存储类型的beansdb给开源社区。2010年里,相信这些新兴数据库会逐步稳定和成熟起来,也能看见大量的实际使用案例。对其他类型的NoSQL数据库的应用,以及与传统RDBM的配合使用(NoSQL的意思是Not
Only SQL,关系型数据库在不少场合下仍然是最优选择),消除RDBM在scalability上的劣势,会是一个很有意思的课题。

2. 多语言混合开发。豆瓣技术团队传统的开发语言是Python和C,但随着团队成员兴趣的不断扩展,以及新鲜血液的不断流入,对其他开发语言的应用也逐步增多。C++、Java、R、Erlang以及Google在09年新推出的Go语言,在团队内部都有爱好者,而且这些语言各有特色,各有特别适合的使用场景。如何充分发挥Python的胶水语言作用,以及充分发挥SOA架构实现无关的特性,来达到让每一个语言各尽其能的效果,也是一个不错的研究对象。



3. 并行计算平台。随着数据规模的增长,豆瓣的后台算法已经很难在单机上完成计算任务,越来越依赖多机并行计算来保证运算速度。目前已经初步实现了基于MPI的并行计算平台,基于Hadoop的MapReduce平台也正在搭建之中。希望能够对它们进行深度定制和二次开发,让它们协同工作,各取所长,并且能够与豆瓣的其他基础设施如doubandb完美协作,成为豆瓣规模化运算的方便平台。



4. SaaS。随着豆瓣的商业发展,会出现面对合作伙伴或用户的付费服务需求。一个完备的SaaS架构会是成功的基础。这对豆瓣而言是个全新的领域,并且对可用性、数据准确性等提出了更高的要求,也是很有挑战性的。

相关内容:

1、架构师(三月刊)

2、2010 年大规模技术架构的思路

3、淘宝网架构师岳旭强的年度展望

4、一个技术观察者的年度展望


个人简介:洪强宁,2002年毕业于清华大学,现任北京豆瓣互动科技有限公司首席架构师。洪强宁和他带领的技术团队致力于用技术改善人们的文化和生活品质,在网站架构、性能、可伸缩性上进行深入研究。

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

评价本文

专业度
风格

您好,朋友!

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

获得来自InfoQ的更多体验。

告诉我们您的想法

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

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

原来已经有个开源的 BeansDB by Zhang Kaizhao

原来已经有个开源的 BeansDB 了,下载回来学习。。。
最近使用 Redis 和 redis-py 在鼓捣中。。。

年度... by Zoom Quiet

看来豆瓣每年都得出来展望一下了,
作为首个自主创业成功的2.0 服务!
希望坚持下去 ;-)

Re: 年度... by Zoom Quiet

那什么...
SaaS 云豆什么时候出来哪!
VeryCD 已经被简化到桌面了,什么时候豆瓣可以主动令豆油们可以这样,
而不是"被"

期待更多的开源DB by Wu Eason

每天都在用豆瓣,确实很强大~

Re: 原来已经有个开源的 BeansDB by 毛 凌志

同道中人啊,我也在用redis,有IM吗,交流一下
frederick.mao@gmail.com

这头像...,太像了.. 我家的一个人 by Peng Arthur

豆瓣还会有面向用户的收费服务哦,

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

6 讨论

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


找回密码....

Follow

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

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

Like

内容自由定制

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

Notifications

获取更新

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

BT