声明式自愈系统——高可用分布式系统的设计之道-王昕
声明式自愈系统——高可用分布式 系统的设计之道 王昕 高级技术专家 声明式自愈系统——高可用分布式 系统的设计之道 王昕 高级技术专家 自我介绍 王昕,阿里中间件技术团队高级技术专家,阿里云开放云平台布道师。具有10多年软件 系统开发和架构经验,在分布式系统领域经验丰富,长期参与高可用中间件系统、云平 台基础管理系统和云原生自动运维系统的构建。在国内外有10多项授权和在审软件技术 Ø 设计和验证高可用分布式系统的案例分享 Ø 高可用系统的最佳实践总结 依据声明式自愈的理念设计系统 有一个统一的状 态持久化接口, 所有有状态模块 通过统一的接口 对应统一的对象 模型 配置模块对象只 需要包括 Desired State 每个领域的控 制器模块的逻 辑保证自己领 域独立自愈的 能力 改变状态的操作 必须是幂等的声 明式操作,没有 新声明时各模块 按照之前的声明 按照之前的声明 继续工作 控制器模块对象 包括Desired State 和 Realized State 声明式自愈系统的控制器协调循环 Observe Analyze Action u 观察当前的Realized State u 当前有2个正常运行的Pod u 比较Desired State跟Realized State的差距 u 期望3个Pod u 实际状态2个Pod0 码力 | 44 页 | 2.47 MB | 1 年前3阿里巴巴超大规模神龙裸金属 Kubernetes 集群运维实践
基础环境一致性故障自愈 (1-5-10) • 监控、故障发现 (1-5) • 本地检测 (walle, NPD) + 外部系统 (IDC、aliyun) • SLI、SLO、SLA • 钉钉、邮件、电话报警、ChatOps 自助诊断 • 节点故障自愈 (10) • 决策中心执行修复操作 • 集中统一风控 • 日常1人运维数十万节点 统一风控 监控 决策 自愈神龙运维事件 • • vmcore 归类分析 • 内核错误日志分析Machine Operator • 全生命周期 • 导入 • 下线 • 维护 • 组件终态 • 安装 • 升级 • 回滚 • 故障自愈 • 运维事件 • 业务置换Machine Operator未来工作 • 稳定性、资源利用率、运维效率 • 基于安全容器的新混部架构 • 全业务上云、Serverless 演进 • 精细化观测和全链路诊断❖0 码力 | 21 页 | 7.81 MB | 5 月前3openEuler 23.09 技术白皮书
支持核挂死检测特性:解决 PMU 停止计数导致 hardlockup 无法检测系统卡死的问题,利用核间 CPU 挂死检测机制, 让每个 CPU 检测相邻 CPU 是否挂死,保障系统在部分 CPU 关中断挂死场景下能够自愈。 特性增强 15 openEuler 23.09 技术白皮书 特性增强 特性增强 16 openEuler 23.09 技术白皮书 嵌入式 openEuler 发布面向嵌入式领域的版本 是一套超轻量、高可靠的服务管理程序集合,是对 1 号进程的全新实现,旨在改进传统的 init 守护进程。 它使用 Rust 编写,具有故障监测、秒级自愈和快速启动等能力,从而提升操作系统可靠性和业务可用度。 sysMaster 支持进程、容器和虚拟机的统一管理,并引入了故障监测和自愈技术,从而解决 Linux 系统初始化和服务 管理问题,致力于替代现有 1 号进程,其适用于服务器、云计算和嵌入式等多个场景。 sysMaster 号进程,功能极简,代码千行,极致可靠,提供系统初始化 / 僵尸进程回收 / 监控保活等功能, 可单独应用于嵌入式场景。 2. sysmaster-core:承担原有服务管理的核心功能,引入可靠性框架,使其具备崩溃快速自愈、热升级等能力,保障业务 全天在线。 3. sysmaster-exts:使原本耦合的各组件功能独立,提供系统关键功能的组件集合(如设备管理 devMaster 等),各组 件可单独使用,可根据不同场景灵活选用。0 码力 | 52 页 | 5.25 MB | 1 年前3高效智能运维[云+社区技术沙龙第29期] - 蓝鲸研发运维技术PaaS体系实践-张敏
蓝鲸技术运营PaaS体系 02 企业落地解决方案 03 企业典型场景分享 CONTENTS 嘉为蓝鲸:研发运营技术PaaS解决方案 PaaS平台 iPaaS+aPaaS 统一DevOps 统一监控&自愈自动化 统一配置管理 运维自动化 嘉为蓝鲸研发、部署、运营自动化场景 ITSM流程管理 数据分析与运营决策 嘉为蓝鲸研发、部署、运营一体化平台 CD(持续部署) 管控平台 配置平台 作业平台 服务 运维自动化 数据中心自 动化 应用运维自 动化 业务运维自 动化 CMP 跨系统编排 与调度 运行监控和故障管理 第三方监控接入 基础监控 采集 存储 检测 告警 故障自愈 蓝鲸平台 管控平台 PaaS平台:开发框架/API集成 统一配置管理 模型定义 自动采集 配置维护 拓扑视图 配置消费 统一运维门户 可视化大屏、统一报表、统一权限、移动运维 变更 告警收敛聚合 故障自动处理 告警人工工单 静态阈值 动态阈值 日志分析 日志检索 指标服务 指标组合 指标管理 IT监控功能示例 Apache监控 Nginx监控 MySQL监控 故障自愈功能示例 3、自动化运维的演进路径 手工操作 无人值守 脚本自动化 web自动化 调度自动化 作业平台 跨系统流程编排服务0 码力 | 26 页 | 8.25 MB | 1 年前3openEuler 22.03 LTS SP2 技术白皮书
是一套超轻量、高可靠的服务管理程序集合,是对 1 号进程的全新实现,旨在改进传统的 init 守护进程。 它使用 Rust 编写,具有故障监测、秒级自愈和快速启动等能力,从而提升操作系统可靠性和业务可用度。 sysMaster 支持进程、容器和虚拟机的统一管理,并引入了故障监测和自愈技术,从而解决 Linux 系统初始化和服务 管理问题,其适用于服务器、云计算和嵌入式等多个场景。 sysMaster 实现思路是将传统 号进程,功能极简,代码千行,极致可靠,提供系统初始化 / 僵尸进程回收 / 监控保活等功能, 可单独应用于嵌入式场景。 • sysmaster-core:承担原有服务管理的核心功能,引入可靠性框架,使其具备崩溃快速自愈、热升级等能力,保障业 务全天在线。 • sysmaster-extends:使原本耦合的各组件功能独立,提供系统关键功能的组件集合(如设备管理 devMaster,总线通 信 busMaster 致力于替代容器、虚机、服务器及边缘设备上现有 1 号进程。 应用场景 sysMaster 组件架构简单,提升了系统整体架构的扩展性和适应性,从而降低开发和维护成本。其主要特点如下: • 具有自身故障秒级自愈和版本热升级能力。 • 具备快速启动的能力,更快的启动速度和更低的运行底噪。 • 采用插件化机制,支持按需动态加载各种服务类型。 • 提供迁移工具,支持从 Systemd 快速无缝迁移到 sysMaster。0 码力 | 48 页 | 5.62 MB | 1 年前3从Mesos到Kubernetes
健康检查探针适配 DCOS 组件服务 Mysql Redis Memc achd ELK ZK 规范配置 统一监控 数据自动迁移 故障自愈 CI/CD Step1 Branch staging change Condition Action Object Build UT test Staging Job 根因分析 自动发现依赖拓扑 完善的监控点 决策树找到最末报警点 ServiceA HOST SWITCH ServiceB Domain LB 故障自愈 StackStorm 监控 系统 发布 系统 日志 系统 访问 质量 其他 弹性 调度 域名 管理 主机 管理 发布 系统 其他 event0 码力 | 30 页 | 2.12 MB | 1 年前3Uber 核心派单系统及其集群管理演化-李宁
三年年来的运维强化(2016-2019) 架构调整: 多活, 容器器化, 软件⽹网络 部署管理理: ⾃自动化部署uDeploy 变更更管理理: P3系统 监控优化: M3监控系统, Blackbox外部监控 故障恢复: ⾃自愈⼒力力和⾃自动排障 流程优化: Ring0和Post Mortem 架构调整: All Active SJC1 DCA1 Riak (DB) Riak (DB) RTTR SJC1 m3db/m3@github 监控优化: uBlackbox ⼀一部分核⼼心城市的实时监控状态 •从外部,在全球各地模拟⽤用户⾏行行 为对各项产品进⾏行行监控 •监控结果可以被内部系统使⽤用 故障恢复: ⾃自愈⼒力力和⾃自动排障 动态配置和监控(内部, 外部)联动,⾃自动回滚。 ⾃自动排查故障, 通过 tracking系统 开源: Jaeger@github 右侧是Uber在线服务依 赖关系图。对于⼤大规模0 码力 | 23 页 | 15.26 MB | 1 年前3逐灵&木苏-阿里巴巴 K8S 超大规模实践经验
than a hundred thousand applications •nearly one million containers 面向终态升级 通过面向终态的应用管理理 念提高应用运维的效率 自愈能力升级 统一容器与应用实例周期简化 应用启动流程 不可变基础设施 分离基础设施与应用容器简化 应用运维复杂性面向终态升级 • 过程式的运维有什么问题? 例子:升级某服务的 3000 个实例 Kubelet Kubelet Pouch container CNI CSI throttling/circuit breaker throttling/circuit breaker 风险识别自愈能力升级 • 传统运维体系的效率问题 - 应用启动流程复杂 - 决策链路较长 - 状态一致性风险 容器平台 监控 VIP 服务注册 配置中心 运维平台 观察者 异常消费 基础设施0 码力 | 33 页 | 8.67 MB | 5 月前3云原生安全威胁分析与能力建设白皮书(来源:中国联通研究院)
原生技术架构的典型特征包括:极致的弹性能力,不同于虚拟机分钟级的弹性响 应,以容器技术为基础的云原生技术架构可实现秒级甚至毫秒级的弹性响应;服 务自治故障自愈能力,基于云原生技术栈构建的平台具有高度自动化的分发调度 调谐机制,可实现应用故障的自动摘除与重构,具有极强的自愈能力及随意处置 性;大规模可复制能力,可实现跨区域、跨平台甚至跨服务的规模化复制部署。 由此可见,云原生作为一种新兴的安全理念,是一种构建和运行应用程序的 要求。 3 云原生能力成 熟度模型 第 1 部分:技术架构 由中国信息通信研究院牵头编写,规定了基于云原生技术的平台架构的能力 成熟度评估模型,从服务化能力、资源弹性能力、可观测性、故障自愈能力、 自动化能力、无服务器化能力以及安全性等方面对技术架构进行评估。 4 云原生能力成 熟度模型 第 2 部分:业务应用 由中国信息通信研究院牵头编写,规定了基于云原生构建的业务应用的能力0 码力 | 72 页 | 2.44 MB | 1 年前3告警OnCall事件中心建设方法白皮书
Info 邮件 每天下班前稍微看一眼,偶尔一两天忘了看也无 伤大雅 另外,如果 Critical 的告警规则很多,大概率也有问题,说明系统架构不够鲁棒,出点什么事都要立刻介 入,系统没有自愈能力。这样的系统,需要配备更多运维人员,而且还很难跟老板讲清楚价值。怎么办? 这就需要制定运维准入规则,哪个系统要交给运维人员来运维,首先要提供一些信息。 ● 相关联系人,出了问题能够及时找 逻辑,让告警事件无人值守自动处理。比如某个机房的某个服务挂掉了,Webhook 的逻辑是自动调用切 流的接口,把服务流量切走,这样来达到止损的目的。 告警自动处理的这段逻辑,未必一定能够做到告警自愈,有的时候只是使用这个机制来抓现场,也是非常 有价值的。比如某个进程挂掉了,在挂掉的时候我想知道当时机器的一些运行情况,比如各项资源的占用 情况、系统日志的信息等等,我们就可以借助告警自动处理的这个方式,来自动跑个脚本抓取当时机器上0 码力 | 23 页 | 1.75 MB | 1 年前3
共 33 条
- 1
- 2
- 3
- 4