您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[ArchSummit上海2023|全球架构师峰会]:步入数字化转型深水区,云原生业务稳定性如何保障-朱剑峰 - 发现报告
当前位置:首页/行业研究/报告详情/

步入数字化转型深水区,云原生业务稳定性如何保障-朱剑峰

AI智能总结
查看更多
步入数字化转型深水区,云原生业务稳定性如何保障-朱剑峰

步⼊云原⽣架构转型深⽔区, 业务稳定性如何保障 朱剑峰⽹易数帆资深架构师 1云原⽣技术底座的建设规划及挑战 ⽬录2 3 云原⽣架构下⻛险预⻅与根因分析 云原⽣稳定性⻛险免疫体系的规划与展望 01云原⽣技术底座的建设规划以及遇到的挑战 ⾼ 路线1:⼀步到位 应⽤多活 云 原 ⽣化程 度 (5)稳定性保障 (4)云原⽣中间件 (3)云原⽣⽹关 路线2:循序渐进、分步实施 (2)服务⽹格化 (1)容器化 集中式 单体架构 云原⽣架构演进路径 低 落地难度(涉及组织、流程、平台、架构的变⾰) ⾼ 云原⽣稳定性建设阶段 服务业态规模体量 激 活 云原⽣体系 企业技术规范 促 进 技术底座成熟度 领域设计 服务拆分 服务治理 ⽴体化监控 稳定性保障 前期准备 规划及部署 试点 打造“样板间” 标准化推⼴ 云原⽣能⼒展现 企业服务化架构逐步演进过程 •建设可⽀撑业务敏捷迭代,为业务展现差异化竞争能⼒提供关键的基础设施; •云原⽣技术适合应对业务敏捷提效,快速迭代,应对⾼并发,资源调度等需求切实可⾏的技术选型; (1)需求调研 (2)现状调研 (3)⽅法论咨询 (4)技术选型 (7)业务流程梳理 (8)划分核⼼领域 (9)确定界限上下 ⽂及相互关系 (10)输出按照领域横向拆分架构 (14)选取试点业务,横向拆分 (15)灰度发布,平滑迁移 (16)保障质量,纵向分层拆分 (17)业务拆分完毕,总结规范 (21)架构委员会进 ⾏服务化分组,制定拆分计划 (22)各组按照⾥程碑计划,逐步拆分 (27)为⽀撑⾼并发,进⼀步拆分 (28)跨服务数据⼀致性 (32) 故障演练 ⽴体化监控根因分析稳定性保障 (5)部署⽅案规划 (6)部署资源准备 (11)技术底座部署、调试 (12)产品、最佳实践培训 (13)规范选⽤及建设 (18)服务引擎-注配治 (19)API流量治理 (20)分布式事务 (23)容器化改造,PaaS化 (24)全链路追踪 (25)应⽤性能监控 (26)统⼀⽇志采集 (29)⾼级服务治理策略 (30)分库分表,中间件云原⽣化 (31)全链路流量治理,流量染⾊ (33) 同城多活异地容灾 多中⼼单元化 云原⽣EnvoyAPI⽹关 接 ⼊层 云原⽣技术中台 云原⽣技术底座平台建设情况 容器平台 服务治理 云原⽣⽹关 双擎服务⽹格 集群联邦 应⽤多活 ⽴体化监控 ⻛险预⻅ 根因分析 PaaS中间件 管控层 对接多注册中⼼ 微服务控制中⼼ (NSF) 统⼀服务治理中⼼ NSM 服务⽹格控制中⼼ (Istio) 虚拟机/容器 JAVA业务/遗留系统 App ClassicAgent 业务服务层 虚拟机/容器 纳管多类型业务 容器/虚拟机 ⾼性能云原⽣业务 Per-NodeSidecareBPF app Pod app Pod 容器 性能损耗敏感性业务 普通多语⾔/云原⽣业务 ProxylessAgent App PodPod 能⼒⽀撑 App App Sidecar Sidecar 中台SaaS化统⼀代理接⼊ Zookeeper RocketMQ Kafka 更多… Redis RDSMySQL 中间件服务层 云原⽣应⽤运⾏时 云计算时代国内外的稳定性事件 国内外频繁出现的云服务稳定性的问题,据不完全统计,2021年国内外云服务宕机事件⾼达20余起,造成巨⼤的安全事故和经济损失。云服务事故往往存在不可预测、不可控、复杂性⾼等现象,更多类似的问题,已经发⽣或即将到来。 云服务故障频发 云服务故障多样 操作 变更 •⼈员误操作、变更失败、管理不善等 2021年12⽉7⽇AWS由于云服务容量问题导致 ⽹络拥塞和性能下降⽽宕机近4个⼩时。 代码 缺陷 •代码质量、程序逻辑、应⽤架构等故障 2021年10⽉23⽇微软Azure云产品出现Windows虚拟机全球性故障,⽤户服务中断6个 ⼩时。 平台 故障 •业务依赖的平台硬件故障、⽹络故障等 2021年7⽉13⽇美国云计算公司Fastly出现⻓达1⼩时的服务故障,导致全球数千家政府、 ⽹站受到影响。 外部 环境 变化 •外部访问流量突然变⼤导致的系统过载、 公共卫⽣、⾃然灾害、社会安全等 2021年11⽉16⽇,GoogleCloud服务器由于⽹络配置问题造成负载均衡中断,引发全球宕机数⼩时,影响波及全球⽤户。 2022年7⽉29⽇,神州专⻋发布通知称,因⽹络故障导致通讯受阻,出⾏平台暂时⽆法使⽤叫⻋服务,相关⼈员正在紧急抢修。 互联⽹服务类业务⾯临的挑战 ⾼可⽤ 核⼼系统业务涉及⺠⽣, ⼀旦故障社会影响恶劣 突发流量 ⾯对业务⾼峰、⾼峰期的压 ⼒,需要强⼤的熔断保护和弹性伸缩能⼒ 故障诊断及快速恢复 线上故障精准定位,全链路追踪诊断,⾃动化恢复及排障 项⽬性能评测通过发布⽣产暴露问题 需求紧急来不及压测发布⽣产引发故障 ⽣产容量逐步退缩所需资源越来越多 性能问题诊断与调优依赖开发 传统业务互联⽹化应⽤系统微服务化 业务场景多样化应⽤迭代速度快 业务活动压⼒⼤并⾏项⽬多且周期短 系统稳定性要求如何检验 规模增⻓的复杂性 排障追踪的困境 ⼩步快跑的悖论稳定性演练的难度 消除不确定性,云原⽣技术底座的重点演进⽅向 将云原⽣的特性应⽤到业务场景上,增强传统云服务的观测性、应⽤韧性、⾼可⽤性、故障⾃愈等能⼒ 消除不确定性,为对业务系统带来的额外的保障。 业务解耦 软件⽣产⼒智能开发 多中⼼多活 演进⽅向 中间件中台 SaaS化 稳定性保障 01云原⽣架构下的⻛险预⻅与根因分析 我们到底需要什么样的稳保能⼒? 消除不确定性对业务系统带来的影响 降发⽣降影响 ⻛险预⻅ 服务治理 限流、熔断、降级服务路由 接⼝治理 根因分析 事前⻛险预测能⼒ 混沌⼯程 故障管理、故障注⼊、演练报告 故障演练 降发⽣,通过持续巡检、⻛险评估、故障演练等将异常⻛险左移,引⼊算法实现事前⻛险预测能⼒,降低潜在的⻛险; 降影响,⽴体化监控,在故障发⽣后能快速定位根因,根据故障特征模版采取摘流兜底或⾃愈策略,把影响降⾄最低; 根据典型特征和趋势,预测可能出现的⻛险 架构/容量/安全/性能 持续巡检全链路压测 性能评估、容量规划、数据隔离 性能预估 故障兜底 ⽴体化监控 覆盖业务应⽤、中间件、容器、主机内核eBPF等 ⽴体化监控 故障观测 全链路追踪 指标、⽇志、链路全流程可视化 故障追踪 智能巡检、⻛险预⻅、根因分析、监控预警 故障⾃愈应⽤多活 同城主备、同城双活、异地多活容灾能⼒ 故障切换 专家经验 故障演练经验库巡检经验库服务治理建议 根因分析经验库 经验资产 事后快速定位⾃愈 •APM •kube-insight •kube-diag •kube-copilot •ebpf/kprobe 以云原⽣特性来增强业务稳定性保障能⼒ 事前 事中 事后 “降发⽣” 提升系统稳定的时间(MTBF) “降影响” 降低系统不稳定的时间(MTTR) 预案管理 模糊测试 强弱依赖 混沌⼯程 引流回放 全链路压测 兜底路由 服务鉴权 限流熔断降级 服务治理 接⼝治理 异常图谱 规则引擎 影响范围分析 事件分析 异常诊断 关联分析 异常事件 多维拓扑 深度指标 ⽆阈值告警 ⽇志/指标/链路 错误码 架构 ⻛险 性能 ⻛险 安全 ⻛险 容量 ⻛险 ⻛险预⻅ 持续巡检 关键流程标准化 ⾼可⽤多活规划 故障演练 服务治理 ⻛险预⻅ ⽴体化监控 根因分析 故障⾃愈 服务治理建议 演练预案库 容灾恢复 容错兜底 应急响应 多活容灾切换 ChatGPT/AIOps 专家诊断经验库 规则引擎 专家巡检规则库 预⻅算法 新增模块增强模块 云原⽣稳定性保障核⼼场景 混沌⼯程 引流回放 故障演练 针对⻛险异常事件的演练触发分析,设计“察打⼀体”的稳保平台 诊断建议 全链路压测 强弱依赖 云原 ⽣应 ⽤运 ⾏时 持续演练 根因分析 App App App … App 持续巡检 预⻅算法 ⻛险评估 架构⻛险 安全⻛险 性能⻛险 容量⻛险 ⻛险预⻅ 持续巡检 Kubernetes集群 预测 运维诊断 专家规则库 预案推荐 专家会诊 诊断树转化 诊断流⽔线编排 专家经验沉淀 Profiling 中间件集群 性能剖析 专家规则库 影响范围分析 事件分析 根因分析 虚拟机 物理机 规则引擎 异常诊断 关联分析 数据⽀撑 持续观测 深度采集 eBPF旁路采集 异常事件 多维拓扑⽆阈值告警 性能剖析 ⽴体化监控 建设“⽴体化监控”带来的云原⽣场景可观测性 ⾯对复杂性“不确定”⻛险,通过可观测性等技术⼿段将影响范围及故障恢复时间做到“确定性”的可防、可控、可治就是可观测性运维基本理念 ⽴体化监控深度采集 收集、分析和使⽤信息来观察⼀段时间内的运⾏进度,并且进⾏相应的决策管理的过程,监控侧重于观察特定指标。 告警 ⽇志链路指标 ⻛险预⻅ insight 通过分析系统⽣成的数据理解推演出系统内部的状态。 ⽴体化监控在回答应⽤是否有问题的同时,需要关联应⽤相关的各层的指标、链路、⽇志数据快速指向影响应⽤稳定性的根因,甚⾄能通过深度指标关联配合时间模型算法预测出可能出现的异常⻛险 深度采集多维拓扑拟合算法 ⻛险预⻅ 深度指标采集遇到的问题 主机 为了保证观测的深度,涉及到基于ebpf内核插桩采集的内核⽹络指标,和⾃定义exporter采集指标的经验指标。深度指标关注系统指标、特定场景下的应⽤指标,并随着排障场景遇到场景,逐步扩充范围,实现更多场景的覆盖。指标膨胀,可读性差,依赖经验 链路:APM OpenTelemetryOpenTracing Framework⽀持.. 中间件调⽤链路 ServiceMesh调⽤链路指标:Prometheus 系统指标&eBPFKubernetes指标业务指标... ⽇志:Logseer事件&消息 TraceID关联... 应⽤层指标(基于APM集成SDK采集) 应⽤指标 存储指标 系统指标 中间件指标 •健康实例数•接⼝QPS•接⼝TPS•接⼝吞吐量•接⼝错误率•线程数•… •连接池线程数•SQL请求响应时间•SQL执⾏时间•慢SQL•SQLQPS•… •内存•CPU•IO•Socket•⽹卡•磁盘•… •RedisRT•Redis错误率•MQ任务数•Tomcat线程数•HttpClient响应时间•… CPU负载、内存占⽤、⽹络延迟/丢包/阻塞、杀进程、宕机、磁盘填充…ServiceMesh ⽹关 云原⽣中间件 应⽤服务 深度指标(基于内核kprobe/eBPF采集) 系统指标 内存指标 ⽹络指标 •软中断触发次数和耗时•CPUready队列排队⻓度•进程从状态变成Ready到被调度执⾏的延迟•物理内存分配allocpage的次数和延迟•dirtypage的刷盘次数和延迟 •容器OOM次数•kswapdscan/directscan次数•allocpage次数、延时•flushdirty线程次数•dirtypage个数•… •TCP状态转换的统计•TCPReset的统计•RTO•TCP级别的某⼀个pod的topN数据统计•DNS的监控:请求数,错误率,响应时间•TCP特性监控:delayack、 listenoverflow •TCP丢包/通⽤请求响应协议的ping-pong延迟监控•TCP三次握⼿重传次数•TCP状态快照•TCP带宽POD纬度,TOPN (BPS、PPS、SRTT、RST、重传次数、丢包) •TCP转换状态统计(socket)•… 存储指标 •⽂件VPF的IOPS/BPD•磁盘读写频率与失败率•dentry/inode数•filesync次数•memorymapsync次数•filerangesync次数•mount/unmount次数•… ⽹络协议指标 •HTTP协议调⽤次数、错误率、延迟•redis协议调⽤次数、错误率、延迟•my