云原生分布式助力金融科技自主可控之路 主讲人:冯常健 网易数帆云原生平台负责人 2 开源技术自主可控的起承转合之路 3 典型云原生分布式能力增强实践 4 云原生分布式体系建设经验总结 1 自主可控和开源云原生技术的关系 CONTENTS 数字化基础软件自主创新分享周 DIGITALSAIL 自主可控和开源云原生技术的关系 数字化基础软件自主创新分享周 技术趋势:开源分布式技术栈已成为金融IT架构的重要组成部分 数据库和中间件 集中式+商用闭源技术栈 代表技术 开放+开源分布式技术栈 代表技术 IBM服务器 小机:i和p系列、主机:z系列 AIX、RS6000、OS400 VMwareESXi Oracle、DB2、Tuxedo、WebLogic X86/ARM Linux Kubernetes、Docker MySQL、Redis、Tomcat、SpringCloud、Istio 云和虚拟化 操作系统 服务器和芯片 尽管以“IOE生态”为代表的“集中式+商用闭源”技术栈在金融IT架构中仍占据重要地位, 云原生技术的快速发展促进了“开放+开源分布式”技术栈迅速成为金融IT架构的重要组成部分。 数字化基础软件自主创新分享周 政策引导:开源技术作为金融机构实现核心技术自主可控的重要手段 2016年7月国务院 -发布《国家信息化发展战略纲要》,提出根本改变核心关键技术受制于人的局面,形成安全可控的信息技术产业体系,电子政务应用和信息惠民水平大幅提高。 2021年3月国务院 -发布《中华人民共和国国民经济和社会发展第十四个五年规划和2035年远景目标纲要》,支持数字技术开源社区等创新联合体发展,完善开源知识产权和法律体系,鼓励企业开放软件源代码、硬件设计和应用服务。 2021年6月浙江省政府 -发布《浙江省数字经济发展“十四五”规划》,推进开源开放平台建设,加强云原生架构、关键算法资源、低代码工具等供给,培育具有国际竞争力的开源生态。 2021年10月中国人民银行办公厅、中央网信办、工信部、银保监会、证监会 -发布《关于规范金融业开源技术应用与发展的意见》,鼓励金融机构将开源技术应用作为提高核心技术自主可控能力的重要手段,加强开源技术研究储备,掌握开源技术核心,以应用促提升,依托金融业丰富的业务场景促进开源技术迭代升级。 数字化基础软件自主创新分享周 云原生技术栈发展趋势 数字化基础软件自主创新分享周 数据来源:https://docs.google.com/spreadsheets/d/1jjAr_bf82WE8mxQJiztVVfqy_8_O0J0eFMoEcWAnuZE 当前开源生态在金融机构应用所面临的挑战 没有SLA承诺,无技术兜底服务支持,个性化需求不响应 难以满足规模化、高可用、稳定性方面的高标准 产品化程度低,无企业级管控能力 问题修复不及时,线上问题长期挂起,自主掌控门槛高 开源协议变更,知识产权合规性、安全漏洞等的开源供应风险 数字化基础软件自主创新分享周 DIGITALSAIL 开源技术自主可控的起承转合之路 数字化基础软件自主创新分享周 业务应用 轻舟云原生平台 计算(x86/ARM) 存储 网络 异构基础设施 虚拟化 容器 私有云 混合云 数字化基础软件自主创新分享周 基础设施 面向研发过程,提供了开发框架、可视化流水线、部署系统等DevOps工具链,帮助开发者提升效率和软件质量,让软件生产简单高效。 云原生平台面向研发、业务运行、运维过程构建的产品支撑体系 面向业务运行过程,提供了API网关、微服务框架、服务网格、分布式事务、云化中间件(消息、缓存、索引等)等云原生技术组件,支撑业务稳定运行。 面向运维过程,提供了全链路追踪、立体化监控、故障诊断、日志分析、灰度发布、弹性伸缩等支撑平台,实现分布式体系的高效运维。 银行核心个人贷款信用卡代收付客户信息普惠金融智慧生态供应链 研发过程 开发框架 可视化流水线 部署策略 安全扫描 DevOps工具链 业务运行过程 云原生技术(ServiceMesh、Serverless)融合演进 语言无关动态拦截故障注入可观测性弹性扩展函数服务 流量治理容器编排事件驱动异构应用安全访问集群聚合 分布式组件 API网关服务框架注册中心配置中心分布式缓存 分布式消息分布式索引分布式事务服务目录服务编排 运维过程 全链路追踪 立体化监控 故障诊断 日志分析 灰度发布 容量规划 平台级支撑 全栈国产适配 多中心高可用 稳定改进循环 开源生态治理 云原生技术自主可控的实施路径——起承转合 起 •根据业务需求进行技术选型 •技术方案设计和POC验证 •投产部署、业务接入 •转运维,效益评估和过程复盘 合 •平台化运营,形成企业级资产,共享复用 •专业化团队运维和开发支持 •社区回馈+开源运营,在社区构建技术影响力 承 •领域专家团队组建 •建立使用规范和最佳实践 •平台化建设,业务持续平滑迁移,扩大接入规模 •开源社区协同 转 •规模化场景下功能增强、高可用保障、稳定性治理等 •进化式架构,保持技术栈平滑演进 •兼容历史遗留应用 •自主开源,创新应用 关键实践活动 数字化基础软件自主创新分享周 自主可控:实现云原生技术从“可用”到“好用”的转变 高可用架构稳定性治理 通过应用多活架构,将金融业务的管理层、流量层、应用层、数据层等高可用方案互相结合 云原生稳定性治理“运维经验”可交付,建立“稳定性改进循环”,具备稳定性经验沉淀能力, 与联动,保证企业端到端业务的连续性。 解决复杂动态异构环境的稳定性保障难题。 历史兼容性 规模化支撑 “可用”到“好用” 构建无侵入式服务框架+服务网格“双引 擎”微服务治理模型。实现进化型架构,从微服务框架平滑过渡到服务网格。 大规模破除单K8s集群容量、弹性、容灾、隔离等方面的限制和约束,实现分布式技术平台基础架构的水平扩展和版本演进。 数字化基础软件自主创新分享周 DIGITALSAIL 典型云原生分布式能力增强实践 数字化基础软件自主创新分享周 高可用架构:保障金融核心业务连续性轻舟云原生平台应用多活能力支撑 轻舟云原生平台 业务应用单元 业 务 接 入 多活平台组件 负载均衡接入网关 组件能力多活管控服务能力 流量路由 流量管控 元 流量切换 层 CICD业 处 持续集成部署发布务 理层 数据存储层 APP APP DB 微服务框架服务网格 分布式事务 分布式消息 分布式缓存 分库分表数据库数据同步工具 网易数帆轻舟云原生平台通过中国信通院首批应用多活“先进级”能力评估 容器云 服务路由 优先路由 配置分片 数据同步 数据一致性 数据回环处理 数据同步 一致性保护 APM 应用监控 环数 境据 管管 控理 日志服务 监流 控量 管调 理拨 稳定性治理:衡量云原生技术自主掌控的重要指标 轻舟云原生稳定性治理平台 01将多年沉淀的“运维经验”进行交付 •提供监控、告警的最佳实践,在真正需要用到监控数据的时候能够发挥出较大的价值; •将稳定性巡检的专家经验沉淀到系统中,实现对于系统状况的主动关注,并提出合理的稳定性,容量,使用方法方面的阐述和建议; •根因定位系统则是每当一些有显著性状的事件发生,能够像资深运维人员自动根据经验通过分析给出可能的根因判断与处理建议; 02建立“稳定性改进循环”,具备稳定性经验沉淀和应用能力 •复杂系统的稳定性应当不断主动改进,而这个改进思路就是“发现问题->分析整改->将沉淀经验加入检查避免同类问题->未曾关注的新问题->下一次循环...”这样不断进行的“稳定性改进循环”; •我们系统中的分析策略引擎,除了既有经验外,也提供给用户一个可以根据自身情况不断进行经验沉淀和规则迭代的平台,而巡检系统相当于稳定性检查执行工具,从而辅助用户建立这样的“稳定性改进循环; 数字化基础软件自主创新分享周 稳定性治理:衡量云原生技术自主掌控的重要指标 稳定性报表 稳定性预警,例如: •容量水位增长过快,近期可能面临容量风险 •服务自身监控难以发现的平台或硬件隐患 •存在显著风险的资源对象,例如冗余缺失的topic •架构风险,例如实例冗余物理资源耦合 •业务使用分析,例如Rediscluster节点水位或负载不均衡 •配置合规风险,例如分布式集群配置不一致 •…… 巡检、预警和根因分析 通过大量故障排查与总结经验形成巡检逻辑 从多维度获取稳定性巡检数据 算法与规则 给出受管控服务需要主动关注的稳定性隐患: •容量水位趋势性问题 管控平台 •环境与设备隐患 巡检模块 受管理服务 受管理服务 受管理服务 稳定性定期巡查: •历史监控数据 •实时采集数据 •容量水位信息 •环境信息 •资源对象使用合理性 •业务使用中的显著问题 用系统和分析引擎代替人工排查步骤 充分结合多方位运维数据系统 帮助用户快速掌握来自海量经验沉淀的稳定性事件排查分析能力 数字化基础软件自主创新分享周 历史兼容性:应用低成本快速接入,新架构可持续演进 “无侵入”实现业务系统微服务化 侵入式无侵入式 Agent Agent 注册发现代码 业务代码 Eureka 注册发现代码 配置中心代码 认证鉴权代码 监控统计代码 熔断降级代码 路由分流代码 业务代码 业务代码 轻舟 业务代码 注册发现代码 路由分流代码 熔断降级代码 配置中心代码 认证鉴权代码 监控统计代码 注册发现代码 路由分流代码 熔断降级代码 配置中心代码 认证鉴权代码 监控统计代码 可视化动 态治理 注册发现代码 业务代码 功能增加 注册发现代码路由分流代码熔断降级代码 配置中心代码 认证鉴权代码 监控统计代码 Apollo 业务代码 Eureka 采用全栈字节码增强技术,0代码侵入,无性能损耗,纳管业务系统。 业务开发人员,无需关注框架,0成本使用; 业务系统与本框架无代码交集;可提炼全栈的技术能力,适合团队分工,优化能力; 统一维护升级JAR包,减轻业务维护负担,确保业务连续性、稳定性; 对于无法个性化定制的第三方业务系统,可以无缝纳管; 历史兼容性:历史应用快速接入,新架构可持续演进 轻舟微服务“双引擎多模式”模型 微服务框架服务治理能力 微服务 框架 服务网格 面向应用内的服务治理 熔断降级 流量管理 访问鉴权 面向应用间的服务治理 Agent+Sidecar= 服务网格服务治理能力 …… 链路追踪 细粒度监控 负载均衡 通信加密 调用监控 应用诊断 智能路由 故障注入 请求容错 配置中心 服务注册发现 接口限流* …… 流量染色 日志采集 细粒度限流 “鱼”和“熊掌”不可兼得? 数字化基础软件自主创新分享周 历史兼容性:历史应用快速接入,新架构可持续演进 从微服务框架平滑过渡到ServiceMesh,过渡期间服务互通互调 Agent注册 K8S注册 拉取eureka服务 拉取k8s服务 服务框架控制面 Agent注册 ... 服务网格控制面 ... 服务双注册 历史遗留业务 融合形态业务 pod pod 内部调用 Eureka服务发现+入流量拦截 降级转发内部调用 Sidecar Eureka服务未找到+转发至IngressGateway Eureka服务未找到+转发至Sidecar SVCASVCC:通过Eureka服务发现 NSFAgent SVCD NSFAgent SVCC NSFAgent SVCB NSFAgent SVCA Sidecar istiod NSFServer K8SServiceRegistry Eureka 内部调用外部调用服务注册 服务拉取 新开发业务 pod SVCE Sidecar pod IngressGateway 内部调用 pod SVCF Sid