知乎,http://www.zhihu.com/ 目前已经是国内较大的问题社区(主要是产品经理的聚集地)。
这次想要分享一下关于知乎创业过程的一些内部经验。
python 语言
Tornado Web server
SQLAlchemy ORM
知乎的开发演变过程分为三个阶段,分别为石器、青铜、蒸汽三个时间:
- 石器时代:注重核心逻辑,低成本快速开发,尽量外包周边业务,linode VPS. 硬件和网络环境的改善,服务器国内,购置了主机进行托管,技术方面通过Mysql master/Slave 减缓数据库压力、使用Ha proxy做热备份、使用Tornado解决高并发问题,异步编程特性
- 青铜时代:Tornado进行优化,采用Celery作为分布式任务队列,使用Redis提高多个场景的性能(功臣:Redis)。Redis主要配合Cache、MQ与存储功能。通过内部开发的Redis Shard解决
采用Cobbler统一安装配置操作系统、Puppet统一管理服务器、使用Nagios/Cacti进行监控报警。
- 蒸汽时代:
代码量大,切分 服务;
紧耦合,使用 sink(内部系统)消息服务;
调试难,使用Kids(内部系统)对开发日志集中收集;
开发验证,基于Virtualbox的虚拟开发环境Hobox(知乎内部系统)