QConShanghai2013-付超群-PHP项目治理

上传人:平*** 文档编号:46151415 上传时间:2018-06-23 格式:PPTX 页数:28 大小:1.67MB
返回 下载 相关 举报
QConShanghai2013-付超群-PHP项目治理_第1页
第1页 / 共28页
QConShanghai2013-付超群-PHP项目治理_第2页
第2页 / 共28页
QConShanghai2013-付超群-PHP项目治理_第3页
第3页 / 共28页
QConShanghai2013-付超群-PHP项目治理_第4页
第4页 / 共28页
QConShanghai2013-付超群-PHP项目治理_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《QConShanghai2013-付超群-PHP项目治理》由会员分享,可在线阅读,更多相关《QConShanghai2013-付超群-PHP项目治理(28页珍藏版)》请在金锄头文库上搜索。

1、QCon北京2014大会 4月2527日InfoQinfoqchinaPHP项目治理付超群 QConShanghai 2013目录 代码治理 架构治理 项目治理目录 代码治理 架构治理 项目治理代码治理:示例140行代码,22个if,最深有5层if代码治理:问题表象:大文件,一泻千里,长函数重复代码单一功能,多文件跳转出问题时找不到对应文件/方法新写代码不知道应该放哪上线不知道有哪些依赖理解代码容易,理解代码流程难乱代码治理:目录设计几个原则:不同的应用分开同一应用全部放一起MVC即可,不要太多层次最少暴露,易于部署 docs 项目整体设计文档 globals global.conf.php

2、common.php 各种全局文件和第三方库 img js css images Foo configs controllers docs htdocs models views misc Bar代码治理:使用框架 规范的MVC开发 高质量的基础类库 快速开发 更少的代码量 易于监控 比较好的维护代码一致性代码治理:版本管理问题: 线下开发有版本管理吗? 线上部署有版本管理吗? 线上线下的版本对应的上吗? 回滚怎么处理?方案: 使用git管理线下版本 使用branch来管理不同的开发分支git checkout b foobar 使用tag上线发布系统git tag v3.07.09git p

3、ush origin v3.07.09git checkout b v3.07.09 v3.07.09 回滚直接到前一个tag即可git checkout v3.07.08代码治理:配置管理 共用配置:global.conf.php 开发环境:dev.conf.php foo机房 :foo.conf.php bar机房 :bar.conf.php env.conf.php软链到对应文件代码治理:好的实践 短代码,单函数不超过40行 依赖注入 抽象,聚合,封装 约束 配置 代码 三个层次:代码优雅,接口优雅;代码龌龊,接口优雅;代码龌龊,接口龌龊。代码治理:示例目录 代码治理 架构治理 项目治理

4、架构治理:规划 简单可信赖 可替代 可伸缩 好维护, 易于迭代 拥抱失效 不那么烧钱架构治理:MySQL/缓存 MySQL部署在SSD可以解决大多数问题 MySQL Master-Slave大多数情况下足够用 memcache/redis使用场景http:/ mc hits/usage/eviction mc compress mc多实例部署架构治理:缓存优化案例架构治理:服务 即时响应还是后台处理? 队列可以解决大多数后台处理需求 Gearman是即时响应服务不错的方案 HTTP+JSON也是RPC好方案 后台脚本管理crontab管理后台脚本:rc.local - supervisord架

5、构治理:教训 活在当下 尽可能使用成熟的开源系统,不要DIY 避免过度设计,容易失去假期 层次清晰 尽量不要跨IDC部署动态应用 不要引入太多系统目录 代码治理 架构治理 项目治理项目治理 如何防止或者延缓项目烂掉? 如何重构一个烂项目? 如何监控项目运行情况? 海量服务的一些策略项目治理:防腐 开发分层数据层:核心工程师逻辑层:普通工程师 代码review容忍烂代码,不容忍烂结构 quick&dirty的项目组件化项目治理:重构 不要轻易重构整个项目代码烂不代表运行效率烂速度慢,先定位瓶颈经常挂,先定位资源 渐进式重构烂代码 - 可重构代码 - 重构代码 破坏性重构用户无感知:旧API兼容;

6、新旧数据/系统并行项目治理:监控 基础监控cpu/memory/load/disk/network/io/traffic 应用监控调用耗时/访问日志/错误日志 可用性监控sla/延时 业务监控数据实时性/准确性 移动业务监控完整数据上报项目治理:案例问题:访问高峰时,网站大面积502/504top/iostat/mysql 看不出明显问题打开php slow log很多的curl慢日志,QQ OAuth登录大量session_start()慢日志优化后网站频现白页项目治理:海量服务 可降级服务/有损服务 及早拒绝:守住宝贵的资源 灰度策略 服务隔离 避免雪崩Q&A特别感谢 QCon上海合作伙伴

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号