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/
