返回

闲鱼的Flutter&FaaS云端一体化架构

前端

随着无线、IoT的发展,5G的到来,移动研发越发向多端化发展。传统的基于Native+Web+服务端的开发方式,研发效率难以满足业务快速发展的需要。闲鱼团队在这样的背景下,开始探索云端一体化架构,希望通过这种架构来提高研发效率,降低成本,并提升用户体验。

Flutter&FaaS一体化架构

闲鱼团队的云端一体化架构主要由两部分组成:Flutter和FaaS。Flutter是一个跨平台的UI框架,可以用来开发iOS、Android、Web、桌面和嵌入式设备上的应用。FaaS是一个函数即服务的平台,可以用来运行无状态的函数。

这两个技术的结合可以为开发者提供一个非常高效的开发环境。开发者可以使用Flutter来开发UI,然后使用FaaS来运行后端逻辑。这样可以省去很多开发和维护的成本,并且可以大大提高开发效率。

闲鱼团队已经将这个架构落地到了具体的业务场景中,例如:

  • 商品详情页: 闲鱼的商品详情页是一个非常复杂的页面,它包含了大量的商品信息和用户评论。传统的方式是将这些信息都放在一个页面上,这会导致页面加载非常慢。闲鱼团队使用Flutter来开发商品详情页,并将其拆分为多个子页面。这样可以大大提高页面的加载速度,并改善用户体验。
  • 聊天页面: 闲鱼的聊天页面是一个非常重要的功能,它允许用户与卖家进行实时交流。传统的方式是使用WebSockets来实现聊天功能。闲鱼团队使用FaaS来实现聊天功能,这可以大大降低聊天页面的延迟,并提高用户体验。

闲鱼团队在构建云端一体化架构的过程中也遇到了很多挑战和问题,例如:

  • Flutter的学习成本: Flutter是一个新的技术,学习成本比较高。闲鱼团队花费了大量的时间来学习Flutter,并将其应用到具体的业务场景中。
  • FaaS的可靠性: FaaS是一个无状态的服务,这意味着它可能会出现故障。闲鱼团队通过使用多种策略来提高FaaS的可靠性,例如:使用冗余设计、使用负载均衡、使用自动伸缩等。
  • 如何将云端一体化架构落地到具体的业务场景中: 这是一个非常复杂的问题,需要考虑很多因素,例如:业务需求、技术栈、团队能力等。闲鱼团队通过多次迭代,最终找到了适合自己的落地方式。

闲鱼团队在构建云端一体化架构的过程中积累了一些经验和教训,希望能为其他团队在构建类似架构时提供一些参考:

  • 选择合适的技术栈: 选择合适的技术栈是非常重要的,它会影响到整个架构的性能、可靠性和可维护性。闲鱼团队在选择技术栈时,主要考虑了以下几个因素:
    • 性能: 技术栈必须能够满足业务需求的性能要求。
    • 可靠性: 技术栈必须是可靠的,能够保证服务的可用性。
    • 可维护性: 技术栈必须是可维护的,以便于团队能够快速地修复问题和添加新的功能。
  • 落地前要做好充分的准备: 在将云端一体化架构落地到具体的业务场景之前,需要做好充分的准备,例如:
    • 团队需要对技术栈有足够的了解: 团队需要对所选的技术栈有足够的了解,以便于能够快速地开发和维护应用。
    • 需要制定详细的落地计划: 需要制定详细的落地计划,包括时间表、里程碑和资源分配等。
    • 需要做好风险评估: 需要做好风险评估,并制定相应的应对措施。
  • 落地后需要不断地优化: 云端一体化架构落地后,需要不断地进行优化,以便于提高性能、可靠性和可维护性。闲鱼团队在落地云端一体化架构后,通过不断地优化,将应用的性能提高了20%以上,可靠性提高了99.99%,可维护性也得到了很大的提升。

闲鱼团队的云端一体化架构已经取得了很大的成功,它大大提高了研发效率,降低了成本,并提升了用户体验。闲鱼团队希望通过分享自己的经验和教训,能够帮助其他团队在构建类似架构时少走弯路。