对于一个成熟的web项目而言,除了代码外需要有这么一些最基本的东西:

1,nginx日志收集和处理(logstash&elasticsearch, kafka&hadoop),定期清除脚本(自己实现,但是很简单)

2,代码级别的错误日志监控(sentry)

3,数据库慢查询日志,错误日志(自己实现,云服务器一般都帮忙实现了)

4,后台数据管理,包括redis使用情况等(自己实现, 考虑配合一些GUI工具)

5,服务器状态监控,包括硬盘,CPU等基本情况(Nagios)

6,服务器环境部署脚本(ansible),代码部署及进程管理脚本(fabric)

7,外部监控及报警,确保网站挂了第一时间知道

8,多节点的网速和可用性测试,确保多运营商没问题(networkbench)

 

同时还有很重要一些东西需要选择:

1,web server(uwsgi)

2,数据库连接池(pgbouncer)

3,消息队列(Gearman)

 

代码库级别:

Django相关:South,rest_framework

异步相关:eventlet,gevent,greenlet,twisted

搜索:Lucene(elasticsearch, solr)

node相关:express(sails),mean, ZeroJS

 

日志级别:

日志收集:logstash,Apache Flume

日志前端:Kibana

 

监控级别:

代码级监控和报错:Sentry, newrelic

服务器监控:nagios,munin

外部监控:pingdom

通知服务:pager duty

 

文档:

rST+sphinx+rtd主题是我的最爱

mkdocs或许是未来

 

部署:

服务器级别部署:chef、puppet、ansible

代码级别部署:fabric

 

运行环境:

wsgi server:uwsgi,gunicorn

node: pm2

虚拟化环境: Vagrant、virtualenv(wrapper)、docker(Panamax)

 

消息队列:

Celery,Gearman,

 

搜索引擎:

solr,elasticsearch

收费服务:

安全宝:DDOS,访问加速,数据报表

监控宝:网站监控,内容监控

阿里云监控:外部监控,HTTP/TCP监控,DDOS

oneapm: 应用性能管理