续班体系建设和优化
原创
邢沛
新东方技术
新东方技术
微信号
gh_4f54cbcacb95
功能介绍
互联网开发的实践经验,技术分享、沉淀和前瞻性思考。
一、背景简介
续班场景是学员首次报入和再次报入的主要途径,主要承载的用户场景是:配合学校的运营推广场景,引导学员,分阶段在系统中完成班级报入。
图①:续班体系业务位置
续班体系的入口为网报服务,嵌入在不同的报入渠道(新东方APP、微信公众号、移动站点等)。为了满足运营场景的引导、推荐、促销的诉求,续班体系建设了灵活的优惠规则配置和优惠计算服务—优惠服务;为了识别学员能力对学员进行分层、智能或人工推荐课程套餐,续班体系建设了资格服务。
网报服务、优惠服务、资格服务三个子系统构成了整个续班体系。
图②:续班体系和子系统
二、性能提升和稳定性建设
1、性能和稳定性要求
续班网报服务也是学员在新东方课程开始的第一个接触点。为了应对集中报入对系统的舒适压力,保障报入过程的学员/家长体验流畅度,首要的任务是在续班体系进行性能优化和高可用能力的建设。
2、思路确定
思路的确定,有助于帮助自己和团队认识清前进方向,在大型建设/跨团队项目开始前,一个上下同步,清晰的,可被完成呈现的思路是最终落地成功的保障。
结合业界实践经验、新东方业务场景思考、续班体系现状问题的深入分析。首先确定的是性能优化&稳定性建设的工作思路:建设2个能力,落地3个专项。
2个能力抓手建设:
① 进行生产全链路压测, 驱动系统性能优化;
② 进行生产故障注入,驱动系统稳定性进化。
3个专项推进落地:
① 优惠性能专项;
② 续班监控专项;
③ 续班复盘专项。
3、工作拆解和推进
具体优化事项的拆解和推进方式,是以OKR的方法论来规划和拆解的。这样的管理手段,更助于我们在具体工作事项中持续保持目标感(O),也看得到下一个里程碑(KR)。也能在持续的KR达成中,不断给团队正向回馈和激励。
OKR拆解概要如表格所示:
3.1 能力① 性能优化 全链路压测&性能基线
建设基础能力,基于业界优秀实践经验进行生产全链路压测:
① 压测标识透传、压测通路建立,具备生产全链路压测的基础能力
② 基于新东方业务特性和系统特性考虑,建设虚拟学校,可以在生产上进行验收、压测、演示、培训。
建设性能基线,掌握系统性能水位,时刻了解性能变化:
① 生产全链路压测,定期进行系统性能基线打点
② 服务发布/资源调整后进行性能对比验收和验证
效果:
续班整体性能提升300%+,可进一步提升(扩容)。
图③:能力1 性能优化
3.2 能力② 高可用提升 生产故障注入
引入业界混沌测试思路和实践,验证生产系统高可用能力,查漏补缺:
① 发现问题点和高可用缺失点
② 发现监控缺失点,验证高可用有效性,验证SOP有效性
图④:能力2 高可用能力提升
3.3 专项① 优惠性能专项
全链路压测得到续班体系瓶颈点在优惠服务上,从而启动优惠性能专项。
体系化分析性能瓶颈点;做到性能优化迭代:
① 使用专用工具(arthas等)分析CPU使用情况,采样绘制CPU火焰图,诊断性能瓶颈点;
② 代码串讲、代码review、流程图绘制等手段来;
③ 通过 非必要反序列化去除、存储对象减少、ES读取优化、规则缓存、减少网络IO 等一系列动作进行优化和验证分析性能影响点。
效果:
核心接口TPS提升15倍,Avg. RT降低至原来8%。
图⑤:专项1 优惠性能专项
3.4 专项② 续班监控专项
建设续班监控大盘;发现业务、服务、资源问题和报警:
① 分层建设监控体系;各角色(运维、研发)共同/分工参与建设;
② 业务日志监控,聚类和多维分析;
③ 建设链路跟踪能力(trace),提升定位效率。
图⑥:专项2 续班监控专项
3.5 专项③ 续班复盘专项
以史为鉴,通过复盘过往一年发生的若干生产故障,总结的改进专项,称之为“复盘专项”,思路和手段都不会局限在技术层面:
① 建立续班沟通和问题响应机制;
② 提升发布质量&降低发布风险;
③ 提升研发规范&提升代码质量。
图⑦:专项3 续班复盘专项
4、优化效果总结
图⑧:续班性能和稳定性总结
三、后续
然而性能优化稳定性提升是没有尽头的。这两个方向后续演进的思路:
系统高性能
• 性能提升:全系统可以横向扩容是系统高性能建设的理想状态。
•
推动基础能力提升:通过全系统横向扩容可提升整体吞吐的能力建设后,进一步反推发布体系和资源体系能够做到弹性扩缩容,这样能进一步追求续班体系的极致 。
系统高可用
•
监控体系完善,降级能力完善(强弱依赖关系梳理)
•
系统内无单点风险,数据存储使用/流向合理化
•
单元化部署,多IDC多活
总结来看,复杂系统的性能优化和稳定性建设是有“套路化”的思路和手段的, 再可以一定程度结合业务上下文进行创新实践。
整个优化过程同时也收获和培养了更多具有架构意识、具有性能调优经验、具有稳定性建设经验的团队成员。沉淀出来的系统底层能力,辅助平台也能有效的将优化经验和能力转移到别的团队和场景落地。这也是更宝贵的收获。
四、其他
伴随着续班体系的性能调优和稳定性提升过程中,新东方服务技术架构也在进行着翻天覆地的变化和演进。
续班体系同步在架构上进行了两个较大的调整:微服务拆分和数据链路治理。(这两部分后续都可以另开篇章细讲)
最后以续班体系的最新架构示意图作为结尾,感谢大家,期望有所收获。
图⑨:续班体系架构
预览时标签不可点
微信扫一扫
关注该公众号
继续滑动看下一个
轻触阅读原文
新东方技术
向上滑动看下一个
知道了
微信扫一扫
使用小程序
取消
允许
取消
允许
:
,
。
视频
小程序
赞
,轻点两下取消赞
在看
,轻点两下取消在看
分享
留言