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