闲鱼服务端架构在6年时间里的演进反映出互联网业务发展对技术架构不断提出的新要求。在这一过程中有着许多值得探讨的决策和变革。
早期单一架构的形成
在闲鱼业务发展初期,业务规模较小所以采用了单一应用支撑所有业务的架构。该架构完全面向PC设计是当时技术开发的选择。因为业务规模小,还未进行服务化拆分是可行的。并且由于负责维护开发的技术同学经常调换,这种单一服务架构,能满足业务诉求。它不需要复杂的架构设计,维护成本也相对较低,与当时的业务场景具有一定的适配性。例如在一些小型互联网业务刚起步时,简单直接的架构可以快速启动业务运行。不同的互联网公司在创业前期可能都有过类似架构经验。
各地很多小型电商公司最初也是采用类似单一架构将业务运作起来的。这种架构一方面节省了人力成本,不需要太多专业架构师的深度参与,另一方面在业务功能较单一,流量小的情况下,可以实现快速部署和低成本的维护。
第一轮无线化和服务化改造
随着移动互联网的发展,闲鱼面临着App正常迭代的需求,第一轮无线化和服务化改造由此开始。改造之后,闲鱼服务端初步具备应对App迭代的能力。这样的改造顺应了时代发展需求。像许多传统互联网业务向移动端转移时同样面临着这种从PC端到移动端架构转型的过程。
就拿一些传统PC互联网社交平台来说,在转型过程中也会遭遇类似技术改造的问题。业务从原本以电脑为主要终端转换为以手机为主要使用工具,服务端必须进行相应调整。这期间,不仅要考虑不同平台的兼容性问题,还要考虑如何优化服务以适应新的网络环境和设备特点。
业务量增长带来的挑战
业务逐渐壮大,闲鱼商品量从数十万快速膨胀到数千万,原本的搜索引擎出现各种问题。如Lucene + solar搭建的搜索引擎,服务能力、算法能力接入以及运维成本等方面都不堪重负。同时,随着业务需求的增多,活动开发中前端与服务端对接遇到难题。如果每个活动都让服务端人员定制开发接口、开发服务层网关等,工作量和周期会非常大。正是在这样的背景下,技术体系需要不断优化变革。像一些大型电商平台在促销活动期间,商品量的突然堆积也会让搜索和相关服务体系承受巨大压力,类似问题的解决办法成为众多互联网企业需要探索的方向。
众多业务体系在面对业务量的忽然增长时,都会面临技术架构调整和优化。不然服务瘫痪或者低效率运行会严重影响用户体验,进而影响企业的运营收益。
Card模型带来的新思路
为解决这些问题,Card模型被引入。其核心基于MVVM概念,将关键的部分前置到服务端下发,客户端做薄。这有效地缓解了在前端与服务端对接开发方面的问题。技术创新往往为企业发展带来生机,这样的创新思想对很多有类似研发困境的互联网企业有借鉴价值。
不少互联网业务中也存在着前端和服务端交互繁琐,开发效率低下的情况,Card模型的这种前置思想或许能够改善这些企业当前的研发流程,提升效率并且降低开发成本。
第三轮技术优化与算法能力的进一步接入
新形势下,算法的优势需要被充分利用。团队看到算法的价值后,开始了第三轮技术优化。随着AI和数据大势的到来,闲鱼团队通过对业务问题的抽象分析,制作了关键系统。一个是解决商品结构化问题,一个解决流量分发链路实时性问题。通过这种方式让算法更好地融入业务体系。在如今的互联网科技浪潮下,很多企业也在探索如何将算法和自身业务深度融合。
对于许多互联网业务来说,如新闻资讯类平台或者短视频推荐平台等,一直在探索如何利用算法提升精准性,优化流量分发和内容推荐。这与闲鱼的探索不尽相同,相互间存在着可借鉴之处。
当下一体化开发与智能化探索
目前闲鱼服务端架构开始在一体化开发模式和智能化上进行尝试。依托集团的Serverless能力持续迭代业务开发架构。在智能化方面不仅在各个业务场景中融入算法能力,还进行云智能和端智能结合的探索等。这一过程优化了整个研发流程,而整个研发链路较长存在信息传递问题是长期要面临的状况。在当前互联网开发环境里,提升研发效率,减少流程中的信息差是很多企业追求的目标。
例如游戏开发公司也有着很长的研发流程,从策划到美术再到程序开发到测试,每个环节都可能出错或者效率低下,都需要通过架构变革或者流程优化来改善。
你认为你的公司业务架构在发展过程中会面临像闲鱼这样多的挑战吗?