关于分布式架构的底层思考

在讨论架构时,首先要说明为什么会出现架构。我们说的架构更确切的指的是“分布式架构”,即以RPC为基础构建的服务独立部署的系统架构。之所以会出现“分布式架构”,其根本是有两个原因:

  • 单机容量无法无限垂直扩展(导致物理机扩展多计算副本)
    假设每台物理机的计算资源和存储资源都是无限的,就不需要引入分布式。将所有计算放在同一台物理机上不管从资源利用率还是响应时延上都是最优的。但现状是单台物理机有其不可逾越的能力边界,在技术发生革命性颠覆前,系统必须采用分布式架构,以此来适应大规模计算与存储。
  • 业务资源需求配比与物理机配置配比不同(导致出现不同服务模块)
    计算机提供了三种资源:CPU、GPU、存储。一旦引入分布式,就又面临一个问题,业务对三种资源的需求与物理机提供的资源比例是不同的。拿菜品召回举例,需要用到1w核左右的计算资源和1000GB的存储资源,资源比例为10:1。但是物理机的配置为128核512GB,配置比例为1:4。这种配置差距导致为了满足计算资源的要求,我们必须按照10:40的资源比例投入物理机。这样就导致了资源的闲置。这一问题在单一业务下是无解的,只有将大量异构业务统筹协调时,才能通过调度策略缓解这一问题。
    例如,数据方面引入的“存算分离”等概念,就是为了缓解这一问题。存算分离的本质,是按照资源纬度划分架构。按此推演,我们可以得到模型计算服务(GPU资源)、业务计算服务(CPU资源)、数据存储服务(存储资源)需要独立部署的结论。在理想情况下,系统只需要分为三个服务:GPU服务、CPU服务和存储服务。
  • 人类个体容量无法无限垂直扩展(导致出现不同服务模块)
    系统高复杂度与人类个体容量的限制必然导致分工,而分工后进而会引入过高的协同成本。这一点其实与分布式物理机的原因与面临的问题是相同的,即沟通协作成本,因此组织架构也可以理解为“人力分布式架构”。按照人类的特点,一般按照“责权”与“专业”的方式划分组织架构(这一点是现状,未必是最优,有待突破),各个组织间的迭代频率和节奏不尽相同,协同复杂度很高。在未出现能让各组织迭代之间相互不受任何影响的技术方案之前,必须通过分布式系统来缓解这一问题。

若不考虑第三个现状,当前外卖广告系统应该仅划分为AS、CTR、召回三个模块。由于召回模块中的单元召回对存储量使用极小,可以近似认为是计算类服务,可以合并进AS。当前之所以存在AS、QS两个服务,是由于第三现状(组织分工)以及AS与QS技术栈不同导致的,并不是遵循基础理性的必然。菜品召回由于数据量大,需要独立分片扩展。

在上述分析下,我给出我的预判:在全图化引擎实现后,我们就通过技术手段解决了各组织迭代之间相互影响的问题。在此以后,系统中只存在三种集群,GPU集群、CPU集群、存储集群。单元召回、DSA出价逻辑、机制服务、主题题服务等等,在部署上会完全合并到CPU集群中。模型相关计算,完全合并到GPU集群中。大数据量召回计算完全合并到存储集群中。而我们现在要做的有两点:一是建设全图化能力,二是面向即将到来的未来,设计我们的业务架构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值