从广告应用中台建设看架构思维成长
如果无法正常显示,请先停止浏览器的去广告插件。
1. 从广告应用中台建设看架构思维成长
阿里妈妈Java应用架构师/ 琦域(郭亮)
阿 里 妈 妈
让 每 一 份 经 营 都 算 数
2.
3. 目录
01 02 03
什么是架构师? 概述 架构策略
我对架构师的理解 阿里妈妈广告应用中台建设 找到和业务目标的共振
04 05 06
架构实施 架构和代码 面对新技术
全研发生命周期的成本效率考量 资产还是负债?设计和演进的结合 实用主义采纳融合
4. Part.01
什么是架构师?
- 我对架构师的理解
阿 里 妈 妈
让 每 一 份 经 营 都 算 数
5. 架构师的 要求
知识 系统化 碎片化
人格 关注事实 关注利益
沟通 直面解决冲突 逃避冲突
管理 同理心 施压
丰富的知识和智慧是架构师立足的基石
6. 架构师和研发经理
架构师
广泛间接获取信息
研发经理
深入垂直业务域,直接获取
业务输入
研发经理
架构师
研发
研发经理
研发
研发经理
产品经理
团队管理,外部协作
多路协同,以德以理驱动
落地执行
研发经理
架构师
负责对象
架构师
研发
研发经理
研发
研发经理
研发经理
研发
• 全局架构设计与规划 • 业务目标
• 长期技术发展目标 • 团队发展
• 架构落地和长效治理机制 • 获取资源
研发经理
研发
7. 业务域横向架构师的主要职责
基于公司和业务现状定义出合理的架构策略
架构策略
架构实施
架构和代码
技术创新
8. Part.02
概述
-阿里妈妈广告应用中台建设
阿 里 妈 妈
让 每 一 份 经 营 都 算 数
9. 阿里妈妈广告应用中台
AdStudio
模型管控
业务身份
品牌广告站点
效果广告站点
标准推广流程
RTB
PDB
PD
推广中心 创意中心 定向中心 物料中心
客户中心 关键词中心 资源位中心 库存中心
一体化研发
需求协作
业务组件
业务场景
商业能力
策略迭代
外部扩展
业务平台
业务模型
业务元数据
RTA
个性化业务扩展
风控平台
横向扩展插件
实时防控
业务扩展插件
直通车
风险排查
引力魔方
研发工具
ABF (Advertisement Business Framework)
离线补防
万象台
容器插件化 平台业务分离 报表平台 异步链路平台 外投
代码能力外化 DDD框架 应用网关 链路追踪 …
处置管理
变更发布
报表平台
流程可视化
广告引擎
应用网关
效能分析
搜索引擎
推荐引擎
广告结算
外投引擎
计费平台
资金管理平台
10. 研发模式的升级
平台业务
分离 能力
沉淀 标准化
对接 可观
测性
公共业务流程由平台侧统一提
供;而不同业务的差异化分离
在了业务插件包里 能够从技术和业务两方面进行
能力沉淀;新业务的快速组装
发布 全链路统一的业务身份、业务
模型、业务元数据管控;标准
化的需求和变更发布体系 在系统架构方面,通过编译期
处理,能将系统架构链路可视
化展现;同时建立了运行时链
路追踪系统,提升可维护性
11. 取得效果
研发效能分析
综合变更数量,交付时⻓,复杂度
计算研发效能指标
101 %
季度同比增长
2021Q1
2021Q2
2021Q3
2021Q4
2022Q1
2022Q2
2022Q3
12. Part.03
架构策略
- 找到和业务目标的共振
阿 里 妈 妈
让 每 一 份 经 营 都 算 数
13. 如何判定系统的架构策略?
判定重构重写的时机?
在我们研发过程中,经常会面对系统架构策略的选择,以及面对系统持续腐化的问
题;那么怎么判断使用恰当的架构策略,以及在什么样的时机进行系统的重构或重
写,才会是比较好的时机呢?
14. 系统迭代过程
稳定期 - 平台建设阶段
通过领域划分,建立了不同的业务域中心,使得业
务平台可以快速复用各个域中心的能力;
各个业务平台独立迭代发展;但渐渐发现不同业务
平台中业务流程驱动,存在大量重复建设
直通车
钻展
超推
业务平台
推广中心
客户中心
定向中心
资源位中心
创意中心
关键词中心
物料中心
库存中心
蓬勃发展期 - 中台发展阶段 业务整合期 - 能力沉淀阶段
将业务流程抽象统一到统一广告站点中提供统一的
服务;同时业务差异由插件包各自实现其业务扩展
定义;这个阶段快速迭代发布了一大批新业务模
式,但逐渐发现业务能力实现分散 将业务插件中的业务能力进行梳理抽象,提炼出可
复用的业务能力,和一些标准化场景,提炼到统一
广告站点以及横向商业能力中;进一步提升技术复
用度,降低维护成本和加快迭代效率
统一广告站点
业务平台
推广中心
客户中心
定向中心
资源位中心
创意中心
关键词中心
物料中心
库存中心
横向扩展插件
外部扩展
统一广告站点
业务能力
标准化场景
横向扩展插件
商业能力
外部扩展
横向扩展插件
外部扩展
业务平台
推广中心 创意中心 直通车
客户中心 关键词中心 引力魔方
定向中心 物料中心 万象台
钻展
超推
极速推
…
业务扩展插件
资源位中心
库存中心
外投
…
15. 找到业务和系统和谐共振的频率
总领先半步的技术迭代
以业务发展方向为主导
技术人员需要深刻的学习和理解业务,并能充分的和业务人员沟通,了
解和掌握未来的业务发展方向和规律;
根据业务产出价值,判定技术重点投入和迭代方向;
系统是业务的具体表达,系统的建设也是为业务目标服务。
提早进行技术布局
根据业务重点发展方向,提早进行相关的技术布局和建设。
同时根据业务发展情况,决定研发资源的投入方向。
系统和技术问题永远存在,但是不一定非要投入力气去解决。
产生冲突时以业务赢为先
业务迭代
技术迭代
一段时间内的可投入资源总是有限的,当技术迭代和业务迭代发生冲突
时,以业务为先。
业务的发展具有未知性;时间窗口也更敏感;技术债可以拖欠;
业务决定生死,技术决定生存幸福度。
16. Part.04
架构实施
- 全研发生命周期的成本效率考量
阿 里 妈 妈
让 每 一 份 经 营 都 算 数
17. 一台自助售货机的背后
供应链 人力成本 异常处理
代理商供货渠道;
仓储物流体系;
库存周转管理; 补货;
硬件维护;
仓储管理; 客户投诉;
硬件故障;
交易失败;
18. 研发过程全生命周期
需求
分析
需求
开发
需求
测试
需求
发布
19. 结构化需求和变更
模型管控
模型管控
业务身份 模型存储
业务模型 SDK
需求的结构化
推广域
业务需求
推广结构化需求
将全域的业务身份,业务模型(包括业务定义元数据、
模型schema)统一维护,并建立管控审批变更发布机制;
最终能自动生成各类SDK提供给开发过程使用
推广组件变更
明确各个业务域的领域边界,以及各个业务域之间业务
身份映射和转换模式,并制定标准化API;
以此为基础,可以将抽象的业务需求转变为标准的结构
化需求进行对接
风控域
风控结构化需求
风控组件变更
结算域
结算结构化需求
结算组件变更
需求和变更体系的对接
通过结构化需求,可以关联创建出变更,并能根据结构
化内容自动的填充变更内容信息;
通过整体变更和需求的绑定,可以做到清晰的溯源,研
发效能分析,以及快速的发布
20. 开发提效
业务容器
agent
标准化log
Mock规则管理
链路日志分析排查工具
SLS 链路日志分析排查
Mock服务 预发容器
接口Mock服务
规则配置
本地开发
idea插件
日志云存储
单元测试
代理拦截
agent
本地进程 预发联调
代理拦截 触发case
21. 发布体系
结构化版本存储
配置类变更
配置管理平台
发布模式
代码类变更
业务配置
插件发布 插件热发布
联合发布 发布回滚
SDK
业务容器
集团集群运维
ABF容器运维
22. 架构视角:全研发生命周期的考量
需求协作
版本化管理
人员构成
质量卡点
编译构建
可拓展
易于测试
自动回归
可观测
快速部署
质量内建
团队文化
组织形式
全局的成本和效率评估
技术架构并不仅仅是技术框架本身的问题;需要从整个生产过程和生产关系进行评估;当要估算成本和效率的时候,需要考虑全研发生命周期
的各个环节进行综合判断
23. Part.05
架构和代码
- 资产还是负债?设计和演进的结合
阿 里 妈 妈
让 每 一 份 经 营 都 算 数
24. 富爸爸穷爸爸:代码是资产还是负债?
收入
支出
资产
负债
25. 广告中台初期建设目标
业务主流程统一 平台和业务分离 架构模式统一 业务能力沉淀
原有各个广告业务线具有独立的流程 当核心业务流程统一后,我们需要将 不同发展阶段和不同维护团队的系统 期望将各个不同业务中,将相同的业
入口和业务流程;但是从广告业务本 不同业务形式的差异点从平台从分离 采用了很多不同的技术架构进行了实 务能力加以抽象和沉淀,能够被快速
身的特性看,其广告投放相关业务流 出来,让其分属于不同的业务模块中 现;我们期望统一和标准化团队的整 的进行复用,加快业务迭代效率和质
程都是类似的;所以我们将各个业务 独立存在;可以达到相互隔离独立迭 体技术架构体系,来降低人员理解成 量
线核心的广告业务流程全部进行了抽 代的目标 本和系统维护成本
象和统一,共同发展迭代
26. 广告中台业务容器技术迭代过程
模块插件
隔离插件
热加载能力
通信能力
复杂路由能力
业务容器ClassLoader 业务容器ClassLoader 业务容器ClassLoader 业务容器 业务容器
业务流程 业务流程 业务流程 业务流程 业务流程
直通车
引力魔方
万相台
业务容器ClassLoader
直通车
业务插件ClassLoader
引力魔方
业务插件ClassLoader
万相台
业务容器ClassLoader
直通车
业务插件ClassLoader
引力魔方
业务插件ClassLoader
万相台
直通车
直通车基础
引力魔方
万相台
业务策略
外部依赖
直通车标准
直通车智能
订单场景
持续推广
27. 代码即是资产也是负债
好的系统是演化出来的还是设计出来的?
持续立足长远进行设计规划 - 提升资产属性
资产
收入 研发资源
支出 业务需求
负债
可复用
维护改造
从一开始就立足长远建立目标进行规划设计;并根据目标拆解
出核心的技术能力点进行实现;在这个过程中也不断根据实际
情况进行方案的迭代优化和目标的调整
当下产出”仅仅够用”的实现 - 降低负债属性
在不同的阶段,分析每一步的核心问题,产出“仅仅够用”的技术
实现;这样避免在未来目标和规划调整时,无用、难以复用和维
护的代码快速膨胀;尽可能多的将资源投入到具有确定性的技术
产出上,提升代码的“资产属性”;而不是产出很多需要耗费资源
进行维护改造的代码,降低代码的“负债属性”
28. Part.06
面对新技术
-实用主义采纳融合
阿 里 妈 妈
让 每 一 份 经 营 都 算 数
29. 层出不穷的技术新热点
技术的本质并未发生
革命性变革
算力和场景的突破带
来技术的革命性发展
计算机的体系架构;网络协议通信方 在算力和成本的不断突破下,基于基
式;编程语言;面向对象设计。。。 础体系不断涌现新技术模式,不同的
技术的本质依然建立在几十年前建立
的基础体系之上
技术模式又通过多种排列组合,迅速
的产生新的技术变革,从而带来场景
的革命性发展突破
30. 中台和云原生
存储共享模式 本地通信模式 实际最终模式
业务插件作为sidecar部署,使用共享卷的方式,
将jar包放入共享卷内,main容器通过maven
仲裁或容器隔离加载业务插件。 业务插件作为sidecar部署,并提供gRPC服务;
main容器作为gRPC client进行调用。 基于java体系的特性和现状,保留现有插件加
载模式;
使用gitops来达到快速调整资源的目的;
使用轻容器技术来提升稳定性和可维护性
业务容器
gitops
业务容器
运维
容器
Shared Volume
gRPC
插件
容器
插件
容器
插件
容器
gRPC
插件
容器
业务容器
Mesh
容器
31. 以实用主义面对新技术
为什么会出现?
Substitute(替代)
当一个新技术出现时,我们需要去积极的学习了
解它,明白为什么它是由哪些旧有的技术组合而
Combine (合并)
成的,同时又带来了哪些创新;它现在会出现或
变火背后的原因是什么
Adapt(改造)
成熟度如何?
从全研发生命周期的角度,去评估它的成熟度,
而非仅仅是其技术的先进性。
实用主义
SCAMPER法则
Modify(调整)
Put to other uses
(改变用途)
Eliminate
(去除)
仔细的分析新技术和现有系统的可结合点,找到
能真正取得业务效果的方案;根据业务迭代的周
期,以恰当的方式逐步的引入使用新技术
Reverse(反向)
32. 结语:如何成为一名优秀的架构师
守正笃实 久久为功
立足高远
关注业务和技术的长期价值
广泛的吸纳信息,产出自己的洞见
善于沟通的同时能直面冲突矛盾
贴合实际
关注和解决当下的主要矛盾和实际问题
制定合理的实施路径和步奏
成本和效率的全面考量
把控实施
充分参与到架构落地实施过程中
关注长效治理
根据效果反馈持续迭代进化
33. 欢 迎 微 信 关 注 「 阿 里 妈 妈 技 术 」
欢迎扫码查看