Quora 技术架构分析

Quora使用的开发语言是Python, web框架最初是Pylons。选择Pylons的原因是他们不打算用模板、ORM等很多东西(事实上他们直接使用的原生SQL,能够更好的调优),pylons比Django等框架更容易替换。如果Flask在他们启动项目的时候已经发布了的话,他们也可能去考虑用flask。他们现在正逐步使用自己开发的框架LiveNode/WebNode来代替。使用Nose做单元测试。

Thrift用于在不同的后端系统之间通信。

web服务器是Paste(Pylons默认的)结合nginx,HAProxy用来做web负载均衡。quora是实时的,Comet服务器用的是Tornado。

服务器主机使用Amazon的EC2和S3。

数据存储当前是用MySQL结合memcached,有两个服务是使用c++写的(其中之一就是搜索时的自动补全)。他们没有用 NoSQL,Adam D’Angelo认为如果在应用程序层次上进行分区,MySQL将不在有伸缩性问题,他还举例在2008年的时候FaceBook就跑在了1800台 MySQL数据库上,当时他们只有2名DBA。

版本控制用的是git。

---

原文:http://blog.flyzen.com/2010/11/quora-tech-infrastructure-analysis/

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。