随着业务系统规模和复杂度的持续增长,一线业务开发者需要耗费大量精力应对复杂业务逻辑的实现和臃肿系统的维护,而晦涩的代码、模糊的数据协议和残缺的项目文档更是加重了开发者的认知负荷。为此,作为一门以提升开发体验与交付效率为根本目标的学科,平台工程不应止步于 CI/CD等研发工具链的实施,而应上提到代码层面,通过提供贴近业务的标准化开发框架引导开发者构建出敏捷、易维护、可演进的平台架构,简化系统开发复杂度,助力业务知识传承,提升团队研发效能。
本次分享介绍了京东广告投放团队面向复杂B端业务推出的一种标准化平台开发框架,详细阐述了该框架适用的业务场景、要解决的问题、底层方法论及具体的落地措施,希望给面临相同困境的业务开发团队提供问题解决思路和方案参考。
演讲提纲
1 传统架构的研发痛点
- 客观:过于粗放的封装在实现高复杂度业务时毫无章法
- 主观:“面向数据库编程”的设计思想让系统加速腐化
2 构建面向B端复杂业务的标准化敏捷架构
- 2.1 架构指导思想与框架设计原则
- 正交分解:复杂业务逻辑模块化拆解与标准化封装
- 业务与技术分离:通用技术组件全面托管,实现标准化、填空式开发
- 业务、数据、存储模型三分离:存储模型支持灵活可拓展、数据模型强调直观可理解
- 代码即文档:将代码工程本身作为业务知识库,保障业务知识全面、准确、即时地传承
- 2.2 PICASO:一种基于上下文的能力拆分与编排框架
- 框架综述
- 通用可执行实体发现与路由机制
- 标准上下文机制
- 基于DSL的能力编排执行引擎
- 聚合与资源库
- 分布式可重试事件总线
3 落地实践与效果收益
- 基于PICASO框架的平台开发流程速览
- 落地案例与效果收益
4 当前存在的痛点问题与解决措施
5 下阶段规划与未来展望
您认为,这样的技术在实践过程中有哪些痛点?
- 实施痛点:设计思想转变成本、框架API学习成本、系统重构阶段人力投入成本较高
- 应用痛点:编码强依赖业务建模,增加了设计成本,实际收益在很大程度上受制于业务建模质量
- 技术痛点:逻辑模块化拆解导致代码中实体数量膨胀,JVM元空间内存占用增加、服务启动速度承压
演讲亮点
- 从抽象方法论到落地措施详细地介绍了一种面向B端复杂业务的平台构建框架
- 以领域驱动设计作为思想内核,但并不拘泥于DDD中的各类概念,所有组件均以实用为第一原则,紧密结合业务实际进行设计
听众收益
- 了解到一种贴近业务的平台工程实践新思路
- 获得一种可复用的、面向复杂B端业务的标准化平台架构方法论与落地框架
- 整体方案中的局部设计理念,如上下文机制、业务-数据-存储三分离等,无需引入框架也可在自己业务系统中实践应用