速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

阿里妈妈技术质量开源面向广告搜索推荐系统的线上测试和性能测试平台

  • 2020-04-21
  • 本文字数:2240 字

    阅读完需:约 7 分钟

阿里妈妈技术质量开源面向广告搜索推荐系统的线上测试和性能测试平台

2020 年 4 月 7 日,阿里妈妈技术质量团队开源了线上测试平台 MagicOTP 和性能测试平台 ACP。两个平台经过阿里巴巴广告业务的长期锤炼,在大规模广告搜索、推荐系统的线上测试和性能测试上深耕多年,内置了面向广告搜索、推荐领域的工业级线上测试和性能测试解决方案。

一、ACP(alimama-common-performance-platform)

概述

ACP(alimama-common-performance-platform)平台是阿里妈妈的全链路智能性能测试平台。区别于业界一些开源的工具和平台,ACP 平台将有监督建模、无监督建模、混沌工程等智能化技术引入到性能测试领域;并将其打造为高性能通用的基础组件。平台提供了压测 query 智能抽取、压测流程智能调控、系统指标智能监控三大智能化功能;在阿里妈妈实现了无人值守的智能化性能测试。


(github 地址:https://github.com/alibaba/alimama-common-performance-platform-acp )

系统核心能力

  1. C++高性能压测工具


ACP 提供了 SYNC 同步压测和 ASYNC 异步压测两种模式;同步压测的工作模式是阻塞式发送,异步压测采用非阻塞并发模式,目前开源版本支持同步压测模式。


Chain-Line 链式的线程管理系统,智能调整内部线程和并发数,最终快速达到指定的 qps。


基于 Linux 内核的消息队列的监听服务,在不需要重启进程的情况下做到实时调整 qps。


组件:


  • 智能压测调控框架

  • Chain-Line 链式的线程管理组件

  • Adaptive Auto Control 实时流量调控组件

  • Kernel-queue 消息队列读写组件


压测 Client 工作模式图:



  1. 大规模分布式调度服务


性能测试的一个难点是如何高效利用测试资源,在压测机器有限,压测机器规格不一致,压测任务消耗硬件资源不一的情况下;如何高效调度成千上万个 agent 是我们要解决的问题。ACP 平台利用 zookeeper,使用 DFS 深度优先的搜索算法,实现了资源分配粒度达到内核级别,并开源了其产品化的能力。


  1. 基于历史样本的有监督学习建模及预估能力


传统性能测试更多需要人来手工操作,测试效率普遍不高,我们提供了基于随机森林( random Forest)、线性模型、非线性等多种算法建模组件;用建模、预估技术代替人力手动调压等操作,用户可以根据业务场景定制自己的建模方案,此外,我们也提供了多种样本处理组件。


  1. 特征样本归一化,对于历史监控数据,我们将样本(sample)进行归一化处理(normalization),将不同量纲、不同单位的样本进行加权处理,保证后续建模的精度。

  2. 特征样本去噪,历史监控数据有很多噪声,如作弊流量,异常流量,而这些噪声会直接影响模型的预估表现,减少无效样本对模型的影响。

  3. 特征样本转换,feature transformer 是将多维特征转为单维(Single-Demension)特征的过程,如服务器带宽和 qps 有着强关联,我们将二者做除法得出新特征,即每个请求占用的带宽(bytes per query),而这种特征能够直观反映系统表现。



  1. 基于实时样本的无监督学习建模及预估能力


我们提供了基于 arima 模型的无监督学习建模预估能力(差分整合移动平均自回归模型,又称整合移动平均自回归模型)。和上述有监督建模预估相比,无监督建模预估准入门槛低,相比于之前的用历史监控数据建模的方案,arima 不需要人为的收集历史数据和打标。



  1. 性能测试用例智能生成


Netflix 提出了 Chaos Engineering,我们基于混沌工程和 fuzz 思想进一步探索了 query 智能组合构造方案,分钟内智能构造千万级数据样本;解决了压测数据样本单一,异常场景构造成本高,覆盖率低的问题,从而可以充分验证系统稳定性,鲁棒性。



后续开源计划


  1. 历史样本有监督学习建模及预估能力

  2. 实时样本无监督学习建模及预估能力

  3. 基于 fuzz 的性能测试用例智能生成方案


欢迎通过邮件组 acp-opensource@list.alibaba-inc.com 和 github issue 联系和反馈

二、MagicOTP — 线上测试平台

概述

广告搜索推荐业务上,线下功能测试的覆盖和线上实际场景总是有一定的 gap,深层次的原因是因为业务和算法模型强相关,线下不可能覆盖所有业务场景。鉴于此我们通过使用线上的数据,实时 trace 和智能化技术打造了线上智能测试平台 MagicOTP,通过线上测试很好弥补了线下功能测试覆盖和实际业务场景之间的 gap,实现了全场景的测试覆盖保障,同时在阿里妈妈落地了智能化的无人值守的发布闭环。


(github 地址:https://github.com/alibaba/online-test-platform

系统核心能力

  1. 多种线上数据采集技术(时序、分布、规则采样、基因变异算法等),节省人工构造测试数据的成本,提高测试效率。

  2. 健壮的规则校验引擎,测试数据通过规则进行多维度校验,相比传统冒烟的单点固定验证,具有更高的场景覆盖度。



  1. 精准的规则智能推荐技术和智能化验证技术,基于大数据分析和字段关联关系(Association Rules)建模,利用推荐算法和异常数据检测(K-sigma 等)实现了智能化的规则推荐和校验。



  1. 高效的多业务接入能力,在平台配置完任务,任务执行过程中自动推荐出基础校验规则,减少开发成本。当业务变更时维护只需简单修改规则即可。


开源 Roadmap


目前一期提供了基础的线上请求回放能力和规则引擎服务,以及基于此的完整的线上测试方案,后续我们会开源规则智能学习推荐功能和无人值守的发布验证方案。


欢迎通过邮件组 magicotp-opensource@list.alibaba-inc.com 和 github issue 联系和反馈


ACP:


github 地址:https://github.com/alibaba/alimama-common-performance-platform-acp


MagicOTP:


github 地址:https://github.com/alibaba/online-test-platform


研发成员:朱藻、橦录、翰龙、凤暄、凝珂


本文转载自公众号阿里巴巴技术质量(ID:AlibabaTechQA)。


原文链接


https://mp.weixin.qq.com/s/bxQqfAfsKCGQ_5rp18UWGA


2020-04-21 14:052846

评论

发布
暂无评论
发现更多内容

关于Java已死,看看国外开发者怎么说的

越长大越悲伤

Java 后端

架构课模块一作业

庚小庚

如何用 TDengine 预测 “未来”

爱倒腾的程序员

涛思数据 tdengine 时序数据库

制造业用哪款堡垒机好一点?为什么?

行云管家

网络安全 堡垒机 双因子认证 制造业

山西等级保护测评机构有哪些?有几家?

行云管家

信息安全 等级保护 等保测评 等级测评 山西

5G与妈祖守护的那片海

脑极体

5G

文盘Rust -- FFI 浅尝 | 京东云技术团队

京东科技开发者

rust C语言 企业号 7 月 PK 榜 FFI

数智驱动 百业共荣!亚信科技精彩亮相2023 MWC上海展

亚信AntDB数据库

数据库 AntDB AntDB数据库

[杂谈] 从PDF文件中进行表格抽取(tabula || paddle-pp-structure)

alexgaoyh

paddle 版式还原 表格提取 tabula pp-structure

“多”维演进:智能编码的深度进化

阿里云CloudImagine

云计算 编码 视频编码 视频云

Spring Loaded代码热更新实践和原理分析 | 京东云技术团队

京东科技开发者

spring 热更新 Loader 企业号 7 月 PK 榜

为什么越来越多的网站选择海外主机跨越国界?

一只扑棱蛾子

海外主机

基于袋鼠云实时开发平台开发 FlinkSQL 任务的实践探索

袋鼠云数栈

sql flink 实时开发

研发质量指标大 PK:MTTR vs MTBF,谁是靠谱王?

LigaAI

高可用性 研发效能度量 MTTR 研发效能管理 企业号 7 月 PK 榜

GPU 容器虚拟化新能力发布和全场景实践

Baidu AICLOUD

GPU容器虚拟化

玩转“擎舵”,秒变AIGC时代营销创意“掌舵人”

Geek_2d6073

5G与妈祖守护的那片海

白洞计划

5G

人脸识别技术的精度提高及其应用

来自四九城儿

PoseiSwap 治理通证POSE登录PancakeSwap,开盘涨幅超2100%

西柚子

HDC开发者盛典 | 破解创业老板高效制果汁奥秘挑战!赢取代金券、按摩枕、收纳袋等礼品~

华为云PaaS服务小智

云计算 软件开发 华为云 华为开发者大会2023

软件测试/测试开发丨Selenium的常用元素定位方法

测试人

Python 软件测试 自动化测试 测试开发 selenium

【OpenAI】ChatGPT函数调用(Function Calling)实践 | 京东云技术团队

京东科技开发者

openai 数据交互 企业号 7 月 PK 榜 Function Calling

分享实录 | NGINX 网络协议优化(下)

NGINX开源社区

nginx TCP TLS HTTP

MatrixOne 0.8.0 开放公测啦!

MatrixOrigin

云原生 超融合 #数据库 MatrixOne

了解Java可见性的本质

阿里技术

Java java 编程

ElasticSearch - 批量更新bulk死锁问题排查 | 京东云技术团队

京东科技开发者

elasticsearch MQ 企业号 7 月 PK 榜 BulkProcessor

手把手教你如何做手机PCB电磁兼容性设计

华秋PCB

电磁 PCB 电路板 电子 PCB设计

在 7 月 4 日,PoseiSwap 治理通证 $POSE 上线了 BNB Chain 上的头部

鳄鱼视界

ABAQUS有限元分析软件吃CPU还是GPU比较多?

思茂信息

gpu cpu 显卡 ANAQUS 有限元分析

人脸识别技术的安全性和隐私保护

来自四九城儿

解决ueditor表格拖拽没反应的问题

互联网工科生

数据库 Vue

阿里妈妈技术质量开源面向广告搜索推荐系统的线上测试和性能测试平台_开源_朱藻_InfoQ精选文章