【搜索推荐中台介绍】
搜索推荐中台是大型企业中的一种技术架构,旨在提供统一的搜索和推荐服务,以支持不同业务单元(BU)的需求。它通过整合和标准化各种算法及业务逻辑,使得开发人员能够专注于核心功能,而无需关心底层基础设施的复杂性。在阿里巴巴集团,搜索推荐中台扮演着至关重要的角色,服务于集团内部的62+个业务单元,处理着万级别的场景,并且是集团内最大的JAVA单体应用之一。
【Serverless实践】
面对业务的快速增长和双11期间的海量请求,传统的服务器管理模式逐渐暴露出问题,如新业务创建成本高、资源分配困难、监控和治理不足等。因此,阿里选择引入Serverless架构,以应对这些挑战。Serverless,或者说Function-as-a-Service(FAAS),是一种让开发者只需编写业务逻辑,其余如资源管理、弹性伸缩、监控等由云服务商负责的计算模型。这大大降低了新业务的成本,简化了运维工作,同时也支持快速迭代和实验。
【双11挑战与Serverless的发展】
双11期间,搜索推荐系统需要处理百万级的每秒查询量(QPS)。传统的服务模式难以满足这种突发的高流量需求,因此阿里采用了Serverless架构。通过将应用拆分为一系列微服务,利用FAAS实现快速弹性扩展,确保在大促期间能有效应对流量高峰。此外,通过JVM Runtime和面向JAVA的高度性能优化,保证了在线服务的低延迟和高稳定性。
【Serverless技术细节】
1. **资源隔离与高密度部署**:采用Docker化的AJDK多租户,实现更细粒度的隔离,提高资源利用率,支持高密度部署。
2. **智能调度**:从容器调度到场景调度,根据流量动态调整资源,实现智能负载均衡,确保服务的稳定性和效率。
3. **快速发布与实验**:利用秒级发布和日志分析,支持快速实验和反馈,以及AB实验和分层实验,提高产品的迭代速度和用户体验。
4. **监控与弹性**:5秒级监控反馈,Fiber实现10秒级扩容,以及对长尾场景的快速响应,确保系统在面临压力时的稳定性和弹性。
5. **服务网格Service Mesh**:采用类似istio/envoy的架构,但具备更低的性能开销,更广泛的语言支持,以及更丰富的降级策略,实现跨团队协作和流量管理。
6. **异构计算**:从同构到异构的转变,解决了流量聚集时的性能问题,增强了系统的隔离性和调度复杂性。
【业务逻辑标准化与全图化】
为了进一步提升效率和性能,搜索推荐中台引入了逻辑层和物理层的解耦,允许使用同步编程语言编写业务逻辑,同时将复杂逻辑标准化为平台标准实现。通过UDF(用户定义函数)和Reactive编程,使得开发人员能够零基础编写全异步代码。此外,借鉴Blink的优化思路,将数据处理过程SQL化,优化平台的执行效率,实现对细粒度操作的极致优化,如Long.parse和String.intern等。
搜索推荐中台结合Serverless架构,实现了业务的高效、灵活和弹性。通过标准化流程模板,将复杂的千人千面逻辑归一化,降低了开发和维护成本,使开发团队能够更加专注于业务创新和用户体验的提升。