1、知乎研发环境治理纲 测试环境的问题 测试环境的标 服务治理的背景 知乎环境实践 环境治理的经验及总结测试环境的问题配置管理资源多管理扰质量效率线上数据污染频繁部署测试覆盖不全测试环境的标! 隔离性致性! 线上、测试环境隔离 服务隔离数据隔离代码致性资源致性数据致性中间件致性 测试环境隔离完整性稳定性! 业务完整性 数据完整性 资源统管理 配置统管理知乎环境治理背景! 知乎在 2016 年已经完成了全部业务的容器化建设! 知乎的环境采统管理平台-ZAE 服务管理 资源管理 任务管理 配置管理 志管理 计费知乎测试环境演变测试环境分成三个阶段!线上环境:知乎初期的测试在线上完成统测试环境:所有共套
2、测试环境,账号隔离数据独测试环境:每个可以有独的测试环境,各个环境之间数据隔离。知乎环境实践(1)-分部署! 问题:开发过程中的单个服务测试解决:使待验证的代码(分!)进部署,测试流量分发到分部署的服务进功能测试。知乎环境实践(1)-办公室环境! 根据DNS返回不同的地址,访问不同的Nginx服务办公室的Nginx服务转发请求到分部署!知乎环境实践(2)-测试环境测试环境与产环境物理隔离!采账号的式隔离各个业务的测试数据冗余,不容易清理法共存多个版本的服务知乎环境实践(3)-联调环境在知乎APP中选择环境、分后,知乎APP会根据条件进request的修改知乎环境实践(4)-上线过程(T)测试环
3、境:个与其他环境络上隔离的独阶段,数据库、缓存等资源也是隔离的(O)办公室环境:个独的容器,只有知乎办公室可以访问,其他与线上环境相同,会修改线上数据(C)丝雀阶段:产环境 1% 的容器,外可访问。来验证代码是否正确,出错会动回滚并发送 Slack 通知(C)丝雀阶段:产环境 20% 的容器,外可访问。来验证代码是否正确,出错会动回滚并发送 Slack 通知(P)产环境知乎环境实践收益整理服务的依赖关系、依赖服务的调、存储。后端测试可以在测试环境充分验证,不需要直接上线验证功能。降低部署成本,可以随时创建连调环境,由脚本成测试数据。线上、线下数据隔离数据脚本由接导维护简单,并且可以测试业务逻辑。接功能、稳定性、性能测试。知乎环境实践经验 拆分任务,定短期标,快速完成 开发驱会QA驱动更效 测试环境和组织结构、测试策略是相互匹配的 微服务的拆分要合理,否则服务依赖关系太多,不容易理清楚 有状态的数据(搜索),需要特殊的处理式 离线任务模拟数据计算,计算过程不进验证,结果直接写14知乎环境实践困惑 业务中包含数据计算 impala,hive 数据有状态 数据如何组织 户的为如何模拟Q&AThanks