升级方案(草稿)
1. 风险评估
将PHP5环境升级至PHP7过程中,主要面临如下风险:
- 语法兼容问题, 很难全部排查覆盖. 人工排查不到的点, 需要依赖长时间灰度来测试.
- PHP7 + Swoole层面BUG. 依赖长时间稳定性测试解决.
2. 升级收益评估
分别在PHP5与PHP7环境下对若干业务接口进行压力测试.
单机: 观察升级前后1小时流量变化与CPU使用率, 在参考流量基础上评估PHP7升级对CPU使用率影响.
集群: 同上.
除CPU使用率, 需评估系统其他指标, 比如内存占用, 同时业务接口指标, 比如RT, 可能需要PaaS与运维提供精确监控数据.
3. 升级方案
方案一
- 开发环境PHP5环境, QA+预发PHP7环境, 快速发现问题
方案二
- 因为灰度原因, 代码上线前要经过PHP5.6 + PHP7环境同时测试, 完全兼容; QA+预发 多个业务共享PHP7环境机器, 代码上线前要分别测试两套环境.
灰度升级期间要加强对supervisor日志关注, 特别是
Fatal error
引起worker重启的问题.
- 对于灰度没有发现的问题, 现在一旦出现并且与PHP7升级有关, 需要第一时间解决.