白山白山“乐高式松耦合乐高式松耦合”架构实战架构实战
现在很多公司都在做松耦合,因为随着业务发展、需求增加,紧耦合系统的问题会慢慢凸显,并日益加剧。
以云分发行业为例,其属性在逐渐发生变化。过去,极少人产生内容,绝大多数人消费内容,云分发主要以下行流量为主,而
随着全民直播的兴起,云分发变成了云交互;物联网的发展使物与物的数据交流成为主要方式,例如智能家居每天会产生上千
条数据,但其中只有几条会被消费;VR爆发,用户产生的数据逐渐会从图片、视频转变为VR内容;基于此我们可以预料到上
行流量将逐步增加,并逐渐超过下行流量,成为基础网络架构的巨大挑战。
用户需求与网络基础环境的快速变化,使得我们需要越来越快的实现需求,然而紧耦合系统却为研发带来诸多困难,使功能实
现越来越耗费精力与时间,所以在白山创立之初就决定做“乐高式松耦合”架构,来构建整个产品体系,像搭积木一般灵活自
如。
一、 传统难点
1. 需求堆积,收敛周期长
很多创业公司在成立之初采用野蛮生长的模式,原则是越快越好。紧耦合架构可以很好的满足这些要求,他们可以快速的建立
CMDB与资源管理平台,并配置自动化、portal、监控等功能。但随着功能增多与需求开发的增加,这个系统逐渐变为一盘散
沙。当有新需求发生时,他们需要为其做很多硬编码动作,收敛周期越来越长。
2. “老中医”资源的浪费
在紧耦合系统中,看似一个没有什么关系的小改动,极有可能会引起一个重大bug;为防止错误发生,只能将系统设计的越来
越复杂。例如为防止客户端挂掉,研发通常会为其添加一个守护进程;当守护进程不稳定时,新入职的研发常用的解决方案是
再添加一个守护进程,这就导致了系统越来越臃肿。
这时候,公司往往就需要经验丰富、了解系统整体情况的“老中医”才能对平台进行改造。而作为核心资产的“老中医”在忙于救
火、进行技术攻坚,很难抽出时间来进行系统重构。
二、 “乐高式松耦合”架构落地
快速实现需求与需求实现越来越慢的矛盾如何解决?最终白山的产品架构聚焦在解耦上,方便平台快速迭代,减少系统间依赖
程度,打通无关联项目,为运营互动提供高效支持,确保服务质量。
1. 第一层松耦合架构
以白山云分发CDN-X系统为例,其根本核心是运营。为使运营支撑系统通过解耦让公司的研发、运营灵活运转,需要进行第
一层抽象。将运营支撑系统抽象为5个组件,包括:客户管理类、账单信息类、资源管理、运营监控和配置管理。并对这5个
组件进行画像,确定边界、输入输出,按照运营场景描述用户场景。
几个组件之间通过消息总线交互指令,通过标准的reset接口交互数据;同时将5个组件投入到实际开发中,按照不同类型做实
例化。
2. 第二层松耦合架构
做完第一层解耦之后,我们发现第二层还可以继续做抽象。以配置管理系统为例,又可抽象出4部分。