性能 | 可用 | 伸缩 | 扩展 | 安全 | |
build |
1、审慎引入第三方库(是否活跃、是否带入query、是否容易缓存) 2、db:减少query次数 减少耗时query 减小返回集 缓存查询结果 johnny.cache 读写分离 3、模板:俄罗斯套娃式缓存 4、耗时操作异步处理 celery 5、前端:压缩js/css django-pipeline/django-compressor 分析性能 Django Debug Toolbar/YSlow/PageSpeed 压缩图片 pngcrush 压缩上传图片 easy-thumbnails CDN
|
重点在测试 1、单元测试 2、代码覆盖率 3、代码规范 - pep8 4、功能测试 - Selenium 5、压力测试 - Jmeter django-discover-jenkins可以同时输出上述指标 |
1、settings文件分base、dev、deploy | ||
deploy |
1、操作系统用Ubuntu LTS 2、配置合适varnish参数 3、配置合适uwsgi参数 4、配置合适数据库参数 5、优化缓存 django-redis 6、监控实时性能 Graphite |
1、配置管理工具 ansible/salt 2、进程管理工具 系统的upstart/systemd,第三方的daemontools/supervisord 3、脚本执行代码更新过程 Fabric 4、检查是否有单点故障 chaos monkey 5、缓存: 防止缓存key过期而涌入db django-newcache 缓存服务器宕机可能返回500 django-ft-cache 6、监控出现异常错误 Nagios/Riemann |
集群 | 检查安全性 django-secure | |
lanuch |
1、新系统先小范围试运行后,再推广 2、更新代码,先更新集群中部分机器(当然session要通用) 3、准备好可以回滚 |
||||
ahead |
监控各重要部件: 1、varnish命中率 varnishstat 2、uwsgi uwsgitop 3、消息队列 celery的inspect命令 4、缓存 memcache-top 确保开启了定时持久化功能 5、数据库 pg_top/mytop |