Agoda从GraphQL单体架构到微服务的非常规客户优先转型

Agoda 从单体 GraphQL API 向微服务架构的迁移策略

Agoda 最近分享了他们从单体 GraphQL API 向微服务架构过渡的非常规方法。与传统的先分解服务器端组件的方法不同,Agoda 采用了客户端优先的策略,通过内部开发的智能协调器库,使客户端应用程序能够同时处理单体和微服务。

主要观点

  1. 客户端优先策略:Agoda 优先准备客户端应用程序,使其能够同时处理单体和微服务,从而降低风险并减少协调工作量。
  2. 智能协调器:智能协调器是 Agoda 客户端优先迁移策略的关键组件,它在过渡期间充当动态路由层,根据配置将请求定向到单体 GraphQL API 或新部署的微服务。
  3. 逐步迁移:Agoda 逐步执行迁移,每个新创建的微服务都经过严格测试,以确保与单体的数据正确性匹配。
  4. 自动化数据驱动方法:Agoda 采用自动化数据驱动方法,分析和准备跨 100 个应用程序 Git 仓库的 GraphQL 查询,以确保客户端在迁移期间的准备就绪。
  5. 解耦跨域查询:解耦跨域查询是 Agoda 过渡的关键步骤,根据查询的复杂性,工程师将查询分解为独立的请求,并在客户端合并结果。

关键信息

  • 智能协调器的功能:除了路由外,智能协调器还自动管理模式更新和映射,支持迁移的增量性质。
  • 迁移的挑战:在分解单体的过程中,Agoda 将现有代码原样迁移,导致旧的技术问题转移到新的微服务中。
  • 迁移的动机:单体系统的复杂性、高操作开销和知识孤岛等问题促使 Agoda 转向微服务架构,以提高可管理性、可扩展性和敏捷性。

重要细节

  • 智能协调器的开发:智能协调器客户端库是内部开发的,以满足现有解决方案无法满足的特定需求。
  • 迁移的方法论:Agoda 开发了一种自定义方法,通过分析数据库模式并将表分类到特定域来定义微服务边界。
  • 客户端优先策略的灵感:客户端优先策略的采用受到理论和实际经验的影响,旨在减少与外部团队的协调工作,并促进无缝过渡。

结论

Agoda 的客户端优先策略和智能协调器的使用,为从单体 GraphQL API 向微服务架构的过渡提供了一种有效的方法。这种方法不仅减少了迁移期间的风险和协调工作量,还确保了客户端应用程序的平稳运行,为微服务的并行开发提供了坚实的基础。

阅读 41
0 条评论