Rhino 字节跳动全链路压测的实践( 七 )


目前已经有多个业务方接入常态化压测,以此保证线上服务的稳定性 。
4.5 DevOps 流水线中的压测服务在上线时,都会经过预发布,线上小流量灰度,线上全量发布 。在这个过程中,我们可以通过线上测试 Case 以及灰度发布,来拦截服务线上功能缺陷 。但是对于性能缺陷的拦截,却不够有效 。
从线上故障跟踪系统里就可以发现,由于上线前没有做好性能压测,很多性能缺陷都逃逸到了线上 。
【Rhino 字节跳动全链路压测的实践】为了拦截各种性能缺陷,Rhino 平台完成了 DevOps 平台的打通 。将压测服务在 DevOps 平台上注册成一个原子服务,研发人员可以将压测节点编排在任意流水线的任意位置,实现上线前的例行压测 。DevOps 流水线中的压测,不仅可以帮助 RD 发现代码中的性能问题,还能与性能基线进行 Diff,来发现代码性能变坏的味道 。
5. 总结与展望5.1 总结Rhino 压测平台从立项到现在,不到两年的时间内,其发展已经初具规模,如图(每月压测执行统计) 。这个期间,非常非常感谢公司内所有合作团队,尤其是架构团队,中台团队对压测平台的支撑,没有他们的支撑,全链路压测建设是难以完成的 。

Rhino 字节跳动全链路压测的实践

文章插图
 
5.2 未来发展业务深层次定制化通用压测平台已经初步搭建完成,基本上能满足业务线日常压测需求 。但在日常压测支撑过程中,发现不同业务线在压测时,但是仍然有大量的前置和后继工作需要人工来完成 。
如何更进一步降低业务方压测改造的成本,如何减少压测环境数据预置成本,如何快速完成压测数据清理,如何快速定位出性能问题等等,Rhino 压测平台后续将更进一步深入业务,与各大业务方开展更深入的合作,提供更深度的业务定制,为研发提效,助力业务线发展 。
压测与容量规划业务目前资源是否充足,其具体容量是多少;按照目前业务增长,其机器资源还能支撑多久?
目前服务资源利用如何,是否可以优化,如何更进一步提升资源利用率,降低机器资源成本?
某大型活动,需要申请多少资源?是否不需要压测,或者自动化利用线上流量数据,或者利用日常压测数据,就可以给出上述问题的结论?
压测与 SRE如何保证服务稳定性,如何监控服务性能劣化并及时预警,限流、超时、重试以及熔断等服务治理措施配置是否合理?以及如何配合混沌测试进行容灾演练,保证服务稳定性等等,这些 Rhino 平台都会做更进一步探索 。
6. 招聘目前 Rhino 团队还非常小,非常缺少性能测试以及后端开发相关的研发工程师,欢迎感兴趣的同学来加入 。简历投递邮箱: tech@bytedance.com ;邮件标题: 姓名 - 工作年限 - Rhino。
参考文献[1] http://jm.taobao.org/2017/03/30/20170330/
[2] https://testerhome.com/topics/19493
[3] https://tech.meituan.com/2018/09/27/quake-introduction.html
[4] https://tech.meituan.com/2019/02/14/full-link-pressure-test-automation.html
[5] https://www.open-open.com/lib/view/open1484317425690.html
[6] https://www.infoq.cn/article/NvfJekpvU154pwlsCTLW
[7] https://tech.bytedance.net/articles/3199
[8] https://www.usenix.org/conference/osdi16/technical-sessions/presentation/veeraraghavan




推荐阅读