【点击了解更多网易热点】

数字化、自动化、智能化的主旋律下,架构的进化也在提速。在近日举办的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。

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

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

 

在Optimize层面,Arctic的优化器通过Minor Optimize和Major Optimize相结合,分别对变更数据和基础数据进行优化(湖仓表数据变更通过三元组的元数据中心感知)。

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

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

小结

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

ArchSummit回顾:从云原生到实时数据湖,架构如何支撑业务发展的更多相关文章

  1. 从 Hadoop 到云原生, 大数据平台如何做存算分离

    Hadoop 的诞生改变了企业对数据的存储.处理和分析的过程,加速了大数据的发展,受到广泛的应用,给整个行业带来了变革意义的改变:随着云计算时代的到来, 存算分离的架构受到青睐,企业开开始对 Hado ...

  2. 重磅发布 | 全球首个云原生应用标准定义与架构模型 OAM 正式开源

    作者: OAM 项目负责人 导读:2019 年 10 月 17 日,阿里巴巴合伙人.阿里云智能基础产品事业部总经理蒋江伟(花名:小邪)在 Qcon 上海重磅宣布,阿里云与微软联合推出开放应用模型 Op ...

  3. 开放应用模型(OAM):全球首个云原生应用标准定义与架构模型

    Kubernetes 项目作为容器编排领域的事实标准, 成功推动了诸如阿里云 Kubernetes (ACK)等云原生服务的迅速增长.但同时我们也关注到,Kubernetes 的核心 API 资源比如 ...

  4. QQ音乐PB级ClickHouse实时数据平台架构演进之路

    导语 | OLAP(On-Line Analytical Processing),是数据仓库系统的主要应用形式,帮助分析人员多角度分析数据,挖掘数据价值.本文基于QQ音乐海量大数据实时分析场景,通过Q ...

  5. 扩展 GRTN:云原生趋势下的 RTC 架构演进

    在 2021 LiveVideoStackCon 音视频技术大会上海站,聚焦 "轻端重云和边缘架构新模式" 专场,阿里云视频云的 RTC 传输专家杨成立(忘篱)带来 "基 ...

  6. 三十、sersync高级同步工具实时数据同步架构

    一.项目介绍 Sersync项目利用inotity与rsync技术实现对服务器数据实时同步的解决方案,其中inotity用于监控sersync所在服务器上的文件变化. Sersync项目的优点: 1. ...

  7. 云原生系列6 基于springcloud架构风格的本地debug实现

    debug是程序员在日常开发中最常使用的操作, 那么,你是如何快速在微服务架构风格下快速debug后端服务呢? 开发现状 开发的理想状态 本地调测的使用步骤 登录智能网关 如果集成开发环境是在本地局域 ...

  8. 终极指南:企业级云原生 PaaS 平台日志分析架构全面解析

    早些时候 Erda Show 针对微服务监控.日志等内容做了专场分享,很多同学听完后意犹未尽,想了解更多关于日志分析的内容.Erda 团队做日志分析也有一段时间了,所以这次打算和大家详细分享一下我们在 ...

  9. 使用 Iceberg on Kubernetes 打造新一代云原生数据湖

    背景 大数据发展至今,按照 Google 2003年发布的<The Google File System>第一篇论文算起,已走过17个年头.可惜的是 Google 当时并没有开源其技术,& ...

  10. DTCC 2020 | 阿里云李飞飞:云原生分布式数据库与数据仓库系统点亮数据上云之路

    简介: 数据库将面临怎样的变革?云原生数据库与数据仓库有哪些独特优势?在日前的 DTCC 2020大会上,阿里巴巴集团副总裁.阿里云数据库产品事业部总裁.ACM杰出科学家李飞飞就<云原生分布式数 ...

随机推荐

  1. Prompt提示词助力AI写作

    AI以极高的效率和还可以的输出质量,得到了许多写作人的青睐,Prompt作为AI写作的核心,通过简短的提示来引导AI生成文本,让写作新手也能轻松自如. 1. 看不下去的行业乱状 让人不禁遗憾的是,国外 ...

  2. Django中的ORM转换为SQL语句日志

    如果想打印ORM转换过程中的SQL,需要在settings中进行如下配置: LOGGING = { 'version': 1, 'disable_existing_loggers': False, ' ...

  3. CSS操作——边框属性

    1.border-style(边框风格) 定义边框的风格,值可以有: /* none:没有边框,当border的值为none的时候,系统将会忽略[border-color] hidden:隐藏边框,低 ...

  4. PCM转AAC返回1768846202 错误解决

    1.参考FFMPEG https://github.com/chrisballinger/FFmpeg-iOS-Encoder/blob/master/FFmpegEncoder/AACEncoder ...

  5. CSP-S2021 游记

    那天是惊蛰 满天花瓣 就像现在 我看清了无池里的那个人 前言 终于是开了 游记 的坑(期盼已久!) 虽然参加过 CSP-J2019 ,CSP-S2020 以及 NOIP2020 ,但是都没有写过游记( ...

  6. pandas基础--数据结构:DataFrame

    从本文开始介绍pandas的相关知识. pandas含有是数据分析工作变得更快更简单的高级数据结构和操作工具,是基于numpy构建的. 本章节的代码引入pandas约定为:import pandas ...

  7. 01-布局扩展-BFC完成圣杯布局

    <!DOCTYPE html>   <html lang="en">   <head>   <meta charset="UTF ...

  8. LeetCode 621. 任务调度器 (Java)

    题目: 给定一个用字符数组表示的 CPU 需要执行的任务列表.其中包含使用大写的 A - Z 字母表示的26 种不同种类的任务.任务可以以任意顺序执行,并且每个任务都可以在 1 个单位时间内执行完.C ...

  9. 使用线程池实现为多个客户端提供Echo服务

    import java.io.*; import java.net.ServerSocket; import java.net.Socket; import java.util.Scanner; im ...

  10. 高可用集群MHA方案

    爱奇艺在用的数据库高可用方案 MHA 是目前比较成熟及流行的 MySQL 高可用解决方案,很多互联网公司正是直接使用或者基于 MHA 的架构进行改造实现 MySQL 的高可用. MHA 能在 30 秒 ...