阿里搜索事业部承载着整个集团的搜索业务需求。


面临问题: 虽然搜索事业部搜索技术强大,但这个优势很难在业务数量成规模的情况下取得突破。根本原因在于对接业务是以项目方式开展而不存在外延性,只能投多少人做多少事情。


产品设计目标:搜索技术体系首先要有沉淀规模化的复制能力,这是应对复杂系统的基本能力。在此基础上打造搜索中台,降低业务支持成本和提高用户接入体验。

产品设计核心目标:提升效率

复杂的平台系统效率提升可以分为三大方向:


系统运维效率

业务迭代效率

资源分配效率


资源分配效率提升由于阿里有专门的基于docker容器+自研编排调度框架来解决,Tisplus平台(搜索中台)也利用了集团已有方案来改善集群资源分配效率。


一、提升系统运维效率

存在两种运维管控方式


  • 过程式管控


举个搜索引擎例子:

一个引擎服务全量过程需要4个阶段。每个阶段等上个阶段执行完毕后按顺序执行。


这就是过程式管控方式,绝大部分目前的管控任务执行都是基于这种架构,这样的架构执行目标确定,实现结果的路径也是确定的,是典型的过程式处理的思路。


问题:

然后,这种处理方式最大的问题在于如果中间执行任务节点出现错误,问题矫正都需要人工接入处理,让系统先达到稳定,再继续操作。


而当系统越来越复杂,过程式管控会出现一系列问题。如过程任务诊断、恢复被排除在系统外,由人来负责加重运维&开发人员负担。


另外当运维管控操作出现反复,如:在全量任务流程中,出现更换机器, A版本升级过程中临时需要改回B版本,或回滚B版本过程中又要升级到C版本的情况,过程式管控只能等待任务流程结束,或中断任务流程。


因此,队列等待的时耗问题及问题解决基于人的能力,都会对复杂情况处理造成困扰。


  • 目标渐进管控即目标渐进式自动化运维系统



核心思想:

系统状态在当前状态(current)与目标状态(target)间多轮迭代轮回。


即当前系统状态是A,这时向系统设定一个目标状态B,系统即开始向状态B执行必要路径。


这时可以重新给系统设定新目标C,系统获得新目标。与当前执行目标进行对比,确定目标变化则马上终止当前执行路径、自动清理系统不一致状态,重新向新目标渐进。


过程中不限定对目标状态设置次数,多次目标变化对于系统是必要关键路径执行过程。


困难:

如果状态和状态间存在关键路径分支,如何选择最短最优路径是目标渐进管理的挑战设计。


需要搭建更为智能化的决策中心,不仅仅获得目标状态变更的执行关键路径,还能在复杂分支执行路径中寻找最优路径进行执行。


收益:

这种管理方式能做到沉淀能力和释放人力。


搜索中台系统运维管控设计

管控技术体系服务化

做到端对端更高层的抽象设计,屏蔽后端系统间复杂的协同交互,用户一站式操作。管控可视化

离线数据高效设计

建立tisplus离线组件平台:平台核心能力是让用户可以在画布中通过拖拽节点的方式去定义数据之间的关系和数据处理流程。


  • 通过一次性的数据关系和处理流程的可视化描述,就能将搜索引擎所需要全量和增量完美统一。只需要拖拽描述下节点,全量数据准备和实时增量更新就能完全交由平台系统搞定。

  • 支持各种异构数据源的自由组合,换句话说用户任何来源(ODPS、HDFS、HBASE、MYSQL、RDS、OTS、OSS)的结构化数据(非结构化数据也支持UDF进行处理)都能自由去定义他们之间的关系和处理流程


二、提升业务迭代效率


成本控制

  • 通过搜索资源调度框架(Hippo)做到屏蔽机器概念,进而通过资源弹性调度机制使得物理机可以被多业务合理复用,而使用容器技术也使得每个业务就可以被容器度量的资源

  • 打造了资源计费系统costman,有了该系统平台上任何的业务都可以被单独计费,一些资源浪费和成本优化都可以被追踪,同时也让数据化运营价值有了可以被衡量的数据化依据

容量优化


为了能自动化的指导应用申请合理的机器资源,提供稳定的搜索服务的同时提高资源使用率设计了容量评估平台Torch:


容量评估平台主要核心执行流程是:


1.容量管控:根据并发设置测出极限容量。

2.传送压测数据及kmon日常数据到IDST资源成本分析算法服务形成合理资源申请建议。

3.检验算法建议更新资源再次做自动压测校验。

4.验证后资源建议持久化保存。

5.tisplus console展示并提供容量优化建议,方便用户一键进行容量优化

控制稳定性


  • 测试技术体系设计


冒烟平台:

实现业务快速回归、快速发现线上异常。


1.提供丰富的测试方法,如查询验证、流式case、对比测试。

2.业务方可在tisplus平台进行小白化case编写,轻松写case。

3.冒烟case执行接入Tisplus业务发布流程,实现了发布自动冒烟,保证了上线版本质量,同时也逐渐培养业务方无冒烟,不发布的质量意识。

压测平台:

支持多种服务发现方式(ip/cm2/vip/hsf/mtop),多种数据读取方式(hdfs/odps/http),是一个分布式、高性能的压测平台


1.依托于搜索调度系统,实现施压机自动分配、扩容,压测过程不仅支持人工调速;

2.支持多种自动调速模式,

3.tisplus平台无缝对接了压测平台,所有平台业务无需准备测试数据、测试机器、测试脚本、只要填写压测目标,即可快速完成系统性能压测


优化日常化


  • 优化大师平台设计:



1.字段配置合理性分析:用户不谨慎的字段类型配置。

2.容量评估合理性分析:业务规模变化数据、查询变化率分析。

3.算法feature耗时分析:精确定位到算法字段性价比分析。

4.查询Query性能分析:,对用户查询Query的分析后,对查询慢、性能损耗过多的查询Query在搜索查询多个阶段的耗时进行精准定位性能瓶颈

  • 全链路问题诊断


全链路一键诊断系统

  • 报警


智能化报警平台的建设: 建立反哺业务持续健康发展的生产资料,它是可以通过挖据其内部的价值,建立报警数据模型从而实现通过历史业务指标数据去预估业务动态报警阀值、系统异常点检测的目标