返回

基于Fluid的计算存储分离实践:TKE用户故事 | 作业帮检索服务

见解分享

1. 背景介绍

作业帮是全球知名的在线教育独角兽,专注于k12在线教育辅导。作业帮旗下的作业帮学而思网校、作业帮直播课和作业帮智能硬件三个核心业务产品,月活用户超 1.5 亿。

作业帮旗下智能题库是业界最大的中小学题库之一,收录题目超过10亿道,单题检索量每天超过1000万次。

作业帮检索服务致力于为公司内部及外部用户提供单题检索服务。检索服务下游服务包括作业帮学而思网校、作业帮直播课、作业帮智能硬件等,此外,公司内部其他业务部门也可以通过检索服务接口来搜索题目。

2. 面临的挑战

在作业帮检索服务实践中,作业帮面临着诸多挑战:

  • 检索性能差。 检索服务采用传统的三副本架构,检索性能瓶颈较为明显。
  • 服务稳定性差。 检索服务采用三副本架构,当其中一个副本出现故障时,服务会受到影响。
  • 服务弹性差。 检索服务采用三副本架构,当检索请求量激增时,服务会受到影响。
  • 成本高。 检索服务采用三副本架构,成本较高。

3. 基于Fluid的计算存储分离实践

作业帮在检索服务上采用了基于Fluid的计算存储分离方案,该方案的架构图如下:

架构图

在该方案中,作业帮将检索服务的计算层和存储层分离,并将存储层部署在Fluid上。

Fluid是CNCF毕业项目,它是一个分布式云原生文件和块存储系统,可以为Kubernetes提供持久的存储服务。Fluid可以提供高性能、高可用、弹性伸缩的文件存储和块存储服务。

作业帮在检索服务上使用Fluid作为存储层,可以获得以下好处:

  • 高性能。 Fluid可以提供高性能的存储服务,可以满足检索服务对性能的要求。
  • 高可用。 Fluid可以提供高可用的存储服务,可以保证检索服务的高可用性。
  • 弹性伸缩。 Fluid可以提供弹性伸缩的存储服务,可以满足检索服务对弹性的要求。
  • 成本低。 Fluid可以提供低成本的存储服务,可以降低检索服务的成本。

4. 实践效果

作业帮在检索服务上采用了基于Fluid的计算存储分离方案,取得了以下效果:

  • 检索性能提升。 检索服务的检索性能提升了2倍。
  • 服务稳定性提升。 检索服务的稳定性得到了提升,服务故障率降低了50%。
  • 服务弹性提升。 检索服务的弹性得到了提升,服务可以自动伸缩,以满足检索请求量的变化。
  • 成本降低。 检索服务的成本降低了30%。

5. 总结

作业帮在检索服务上采用了基于Fluid的计算存储分离方案,取得了良好的效果。该方案可以提升检索服务的性能、稳定性、弹性和成本,非常适合于对性能、稳定性、弹性和成本有较高要求的场景。