网易数帆小助手

个人签名

280篇博客

ArchSummit回顾:从云原生到实时数据湖,架构如何支撑业务发展

网易数帆小助手2022-08-24 20:00

数字化、自动化、智能化的主旋律下,架构的进化也在提速。在近日举办的ArchSummit全球架构师峰会上,网易数帆高级技术专家、资深架构师裴斐和网易数帆高级技术专家 周劲松 分别分享了云原生业务改造和数据湖实时化的最新架构实践。


业务架构:“纵”“横”整合,云原生赋能业务改造


云原生是架构的未来,然而传统业务系统向云原生演进面临诸多痛点:在业务侧,存量业务改造不易,需要面对部署、网络、运维管控等复杂因素;在技术侧,云原生基础设施能力尚存不足,并且在迁移演进过程难以做到平滑、无感知。


为此,网易数帆提出了“纵”“横”架构实践。裴斐介绍,“纵”是解决技术难题,保障各类业务可落地,从时间线角度,分经典技术栈(如Spring Cloud,Java 代理流量网关),新晋技术栈(如服务网格、多运行时),持续推进技术能力建设;“横”则是解决场景难题,保障各种场景可支撑、可演进、稳定性,一则扩大平台覆盖业务场景的⼴度,提升复杂场景支撑能力,二则解决业务架构演进各阶段的支撑难题,如新老共存、互通、稳定性等。

 



以较为典型的微服务为例,在纵向技术方面,需要分别从微服务框架、服务网格入手,解决微服务框架的痛点与进化,以及服务网格的易用性与性能稳定性提升;横向业务方面,要实现从微服务框架到服务网格的平滑演进。


具体而言,引入微服务框架面临适用范围有限、对业务侵入性大、引入框架带来的负担重、框架的升级成本高、治理能力有限、与云原生架构演进冲突等痛点。网易数帆微服务框架的“纵向进化”,通过应用性能监控(APM)惯用的无侵入 Java Agent 技术实现,核心是将传统微服务框架需要引入到业务代码的诸多框架以字节码增强的方式整合在一个 Java Agent 中,实现了服务治理能力逻辑不侵入业务代码,最终业务可以一键接入服务注册发现、熔断降级、限流、监控、配置等全套微服务治理能力。


微服务的另一个纵向技术服务网格则更为复杂,网易数帆聚焦于业务平滑接入和大规模业务集群支撑能力的打造,对于前者打造多协议支持、流量治理、核心组件热升级、治理能力增强及Envoy 网关等能力,对于后者实现了数据面性能、稳定性提升,控制面大规模集群支撑和多级容灾能力。


在“横向业务”上,从微服务框架迁移到服务网格,需要多注册中心、统一控制协议、无侵入Agent的能力,解决服务间互相发现和访问、Agent和Sidecar统一配置与管控、架构升级支撑等问题。网易数帆提出了一个双引擎多模式服务治理的平台理念,用来指导微服务技术、架构相关的平台建设工作,支持遗留业务、融合形态业务以及新开发业务之间的互相发现、互相调用、统一治理,涵盖了Agent 模式、Sidecar 模式、Agent+Sidecar模式、多运行时模式、SDK 模式等多种治理模式。




裴斐最后总结了“纵”“横”架构整合过程的“三字诀”。首先是“快”,架构决策要果决和长远,制定面向未来的架构决策,时机把控上有效切入。其次是“深”,要对核心技术进行深耕,对架构演进过程中涉及的多种技术,能够深入掌控,以不变应万变。最后是“稳”,不管是初态、中间态、终态,架构演进方案要稳字当先,逐步演进。


数据平台:流批一体,数据湖融合实时场景


数据开发模型同样面临整合与平滑演进的问题。经典的Lambda架构,是企业在离线链路技术率先成熟的背景下低成本完成大数据实时化的得力助手,然而流批分割的硬伤终究随着数据规模的增加和业务实践的深入而爆发,如数据孤岛、研发体系割裂、指标和语义二义性等,因而流批一体、湖仓一体成为近年来新的追求。


如何在既有数据平台的基础上平滑、低成本地实现这一架构演进?网易数帆为此提出了格式兼容、引擎平权的架构思想,打造流式湖仓服务(Streaming LakeHouse Service),即在主流数据湖表格式(Iceberg、Delta、Hudi等)之上用一个表服务层将数据湖与各引擎桥接,支持流批一体,并形成了开源项目Arctic(github.com/NetEase/arctic)。


对于Arctic,格式兼容是指百分百兼容 Iceberg / Hive 的表格式和语法,引擎平权则是同时支持 Spark 和 Flink 读写数据,以及 Trino/Impala 查询数据。周劲松介绍,Arctic通过实时数据更新、流批一体功能封装等两大能力集的打造,不仅支持流批混用场景,更解决了湖仓数据管理和优化等一系列功能、性能问题。前者包括支持主键定义、提供唯一性保障、结构自优化保障读写效率等,后者包括毫秒级延迟的实时写入/读取接口、分钟级延迟的批量写入/读取接口、Flink/Spark/Trino等引擎支持等。


其中,支持主键定义是Arctic与数据湖表格式配合的一个关键创新,不仅有助于实现更加优化的 CDC,主键唯一性约束也是Merge on read(读时合并)和optimize的基础,无论对于数据管理还是性能保障都至关重要。



Optimize层面,Arctic的优化器通过Minor Optimize和Major Optimize相结合,分别对变更数据和基础数据进行优化(湖仓表数据变更通过三元组的元数据中心感知)。Arctic更多设计思想与实现细节详见:万字长文详解开源流式湖仓服务Arctic



此外,Arctic还提供了文件索引、hidden queue、多写一致性保障等功能,来确保这一架构在业务落地。


周劲松介绍,在某业务推送营销分析中,通过Arctic技术的引入,业务将批量分析切换到实时生产,实现生产流程复用,并且优化报表响应时间获得了10~100倍的提升。


小结


如同ArchSummit的主题——“升级架构思维,支撑业务发展”,无论业务架构还是数据平台,网易数帆架构实践 紧扣业务发展需求 ,以前沿技术价值变现为目标,由此,技术攻关、架构整合、平滑演进成为现实的诉求。在此背景下,唯有苦练内功,深入理解技术本质,才能掌握架构思维的升级,进而满足业务需求。