对于一个成熟的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: 应用性能管理