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

作者 洪强宁 发布于 2010年3月29日 下午9时5分

社区
Ruby,
Architecture
主题
可用性,
性能和可伸缩性,
数据库设计,
语言
标签
服务,
数据库,
架构评估

从我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 中文站用户讨论组中与我们的编辑和其他读者朋友交流。

::...
免责声明:
当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
内容版权归原作者所有;
本人对内容的有效性/合法性不承担任何强制性责任.
若有不妥, 欢迎评注提醒:

或是邮件反馈可也:
askdama[AT]googlegroups.com


点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

订阅 substack 体验古早写作:


关注公众号, 持续获得相关各种嗯哼:
zoomquiet


自怼圈/年度番新

DU22.4
关于 ~ DebugUself with DAMA ;-)
粤ICP备18025058号-1
公安备案号: 44049002000656 ...::