用于机器学习的微服务

主要观点:作者介绍了个人财务追踪项目从单体应用到微服务的转变过程,包括遇到的问题、找到的服务边界、共享数据挑战、服务部署策略、服务间通信模式等,并给出了将单体 ML 服务分解为微服务的实用路线图和最终思考。
关键信息:

  • 项目开始简单,后逐渐增加功能,因一个模型失败导致整个服务崩溃,意识到单体应用的单点故障问题。
  • 打破单体应用的第一步是根据功能边界划分服务,如核心交易处理、消费分析等。
  • 分解服务面临共享数据和特征的挑战,通过服务拥有数据、共享数据服务、事件驱动更新三种模式来处理。
  • 不同服务有不同的部署策略,如轻量级服务共享容器、重量级模型专用容器、批量处理定时任务。
  • 服务间通信采用 HTTP 实时请求、消息队列后台处理、共享缓存提高性能等模式。
  • 对于单体 ML 服务的项目,可按列出 ML 能力、确定共享数据等步骤进行分解。
    重要细节:
  • 最初按技术相似性分组模型错误,后按功能边界划分,如交易分类、消费分析等。
  • 安全服务拥有欺诈相关特征,规划服务管理投资等信息,通过不同模式共享数据。
  • 轻量级服务如交易分类在同一容器,重量级模型如投资推荐单独容器,批量处理服务定时运行。
  • 服务间通信中,实时请求用 HTTP,非紧急任务用消息队列,通过共享缓存提高性能。
  • 实用路线图包括列出 ML 能力、确定共享数据等步骤,采用渐进式迁移。
阅读 183
0 条评论