您的浏览器禁用了JavaScript(一种计算机语言,用以实现您与网页的交互),请解除该禁用,或者联系我们。[网易]:协同治理 中间件稳定性保障实践优选 - 发现报告
当前位置:首页/其他报告/报告详情/

协同治理 中间件稳定性保障实践优选

2023-03-09网易光***
协同治理 中间件稳定性保障实践优选

协同治理中间件稳定性保障实践主讲人:李进网易数帆资深中间件运维架构师 数字化基础软件自主创新分享周CONTENT传统中间件运维挑战与PaaS时代的应对策略1中间件自身稳定性探索与实践2中间件故障发现探索与实践3中间件故障定位探索与实践4中间件故障恢复探索与实践5 传统中间件运维挑战与PaaS时代的应对策略数字化基础软件自主创新分享周NETEASE DIGITAL SAIL 传统中间件运维挑战与PaaS时代的应对策略数字化基础软件自主创新分享周 传统中间件运维挑战与PaaS时代的应对策略数字化基础软件自主创新分享周物理机时代云主机时代容器时代资源强绑定物理设备•资源申请及部署流程冗长,参数变更和规格变更不够灵活快捷•缺少资源弹性,一般按最大需求申请资源,造成大量资源浪费•受物理设备故障率影响,缺少故障迁移能力•中间件在同一机房,难以物理隔离,安全依赖运维制度约束稳定性强依赖运维人员经验•中间件生命周期管理、参数调优、故障处理高度专业化•个性化的运维脚本和运维文档无法保障质量,也难以积累和推广•随着中间件规模增大和使用周期拉长,风险和成本逐渐无法评估效率:成本:安全:稳定: 传统中间件运维挑战与PaaS时代的应对策略数字化基础软件自主创新分享周物理机时代云主机时代容器时代以OpenStack为代表的IaaS平台解决了一部分问题•中间件不再绑定物理设备,通过热迁移等技术可以降低物理设备故障的影响•可以按需申请和调整资源,减少了资源浪费•部分厂商基于IaaS平台开发了中间件管控服务,解决了部分统一管理甚至统一运维的需求•提供了部分资源隔离和访问隔离的功能IaaS平台中间件依然存在痛点•云主机Hypervisor性能损耗较大,同规格中间件难以达到物理设备的性能•纯IaaS平台依然没有解决中间件运维高度专业化,强依赖运维人员经验的问题•IaaS厂商提供的中间件部分简化了中间件运维,但高度绑定自家技术栈效率:成本:安全:稳定: 传统中间件运维挑战与PaaS时代的应对策略数字化基础软件自主创新分享周物理机时代云主机时代容器时代基于K8S + operator的PaaS解决方案•K8S提供了资源抽象、弹性伸缩、故障转移能力•Operator提供了统一的中间件生命周期管理界面和运维操作“原语”•容器虚拟化方案性能上天然优于虚拟机方案•容器化中间件不绑定私有技术栈,用户可以再不同的IaaS平台上使用K8S资源抽象也并非全能•各种中间件本身高可用能力参差不齐,而且原有的高可用设计未必适合云原生环境•中间件的监控接口、日志等高度个性化,不适配K8S-Prometheus体系•中间件的运维操作并不一定能抽象成CR对象,也未必都可以使用声明式接口执行效率:成本:安全:稳定:? 传统中间件运维挑战与PaaS时代的应对策略数字化基础软件自主创新分享周容器环境下中间件稳定性保障思路中间件平台rediskafkazookeeperes... ...故障发现故障恢复故障定位工作方向1:增强中间件自身稳定性工作方向2:增加故障发现的覆盖率和标准化程度工作方向3:提高故障定位的效率和准确性工作方向4:提高恢复的速度和可靠性 中间件自身稳定性探索与实践数字化基础软件自主创新分享周NETEASE DIGITAL SAIL 轻舟中间自身稳定性探索和实践数字化基础软件自主创新分享周中间件服务稳定性增强实践–中间高可用能力建设本地高可用异地数据高可用异地热备异地多活•提供单K8S集群物理节点故障容错能力•大部分中间件本身已经具备的能力•通过operator注入反亲和调度参数,强化物理节点级别的容灾能力•通过localstorage+lvm+raid提高服务数据高可用能力•提供跨K8S集群进行数据备份和恢复的能力•部分中间件本身具备该能力,需要借助自研或第三方工具实现•通过向服务镜像中植入数据备份和导入工具,并通过operator或assistor服务启动•提供跨K8S集群进行数据同步的能力•少量中间件本身具备该能力,需要借助自研或第三方工具实现•中间件operator在管理中间件对象的同时也维护一个同步服务,在中间件CR中定义同步相关参数•通过DNS域名切换等手段切换主备集群•提供跨K8S集群进行多读多写的能力•极少量中间件本身具备该能力,需要借助自研或第三方工具实现•在数据同步的基础上修改服务本身或同步工具的源码,加入双向同步/数据一致性检查/防循环等能力 轻舟中间件自身稳定性探索和实践数字化基础软件自主创新分享周中间件高可用探索–中间件跨K8S集群部署实现中间件本身的多集群多活能力代价较大,另一种思路,就是借助K8S集群联邦能力和中间件自身的本地高可用能力,让中间件在多个K8S集群间部署,从而曲线达到类似跨集群多活的功能基于K8S集群联邦跨K8S部署资源,关键概念:•资源模板(Resource Template)•分发策略(PropagaionPolicy)•资源绑定(Resource Binding)•覆盖策略(Override Policy)中间件适配集群联邦,关键服务•FederatedPaasOperator:负责中间件全局视图(FederatedPaas)、中间件跨k8s集群创建、更新流程。•FederatedPaasSchduler:负责中间件跨集群调度。•FederatedPaasAgent:负责中间件联邦状态收集(FederatedIPStatus)、与服务发现 中间件故障发现探索与实践数字化基础软件自主创新分享周NETEASE DIGITAL SAIL 中间件故障发现探索与实践数字化基础软件自主创新分享周中间件运行态监控标准化实践–统一监控平台轻舟管控平台监控管理服务PrometheusGrafanaAlert-Manager监控报警模板计算集群-1Prometheus中间件exporter计算集群-NPrometheus中间件exporter...•中间件监控数据采用Prometheus-Exporter方式对外暴露•计算集群Prometheus数据统一汇聚到管控平台•管控平台监控采集模板统一管理,使用CRD形式下发到计算集群并转化为Prometheus配置•管控平台预置Grafana模板,提供兜底监控视图•管控平台预置报警规则,提供兜底报警能力 中间件故障发现探索与实践数字化基础软件自主创新分享周中间件日志监控标准化实践–云原生非侵入式日志监控轻舟管控平台日志管理服务KafkaLogstashElasticsearch计算集群-1ripple中间件filebeat计算集群-Nripple中间件filebeat...日志采集CR日志采集CR•namespace级别•label和pod匹配,对应一类pod的日志配置•type表明日志的挂载方式:stdout,hostPath,emptyDir,rootfs,pv...•日志目录为容器内路径•自定义日志fields元信息,也可以用于表明发送不同的kafka topic, es index等•定义将pod的某些label,annotation,env作为日志元信息打标•定义日志的定时清理,支持保留天数和保留个数 中间件故障发现探索与实践数字化基础软件自主创新分享周中间件日志监控标准化实践–统一巡检平台轻舟管控平台监控管理服务PrometheusGrafanaAlert-Manager监控报警模板计算集群-1Prometheus中间件exporter计算集群-NPrometheus中间件exporter...巡检服务巡检引擎巡检模板 中间件故障发现探索与实践数字化基础软件自主创新分享周中间件故障发现探索–Chaos Mesh混沌测试Chaos Mesh 是一个开源的云原生混沌工程平台,提供丰富的故障模拟类型,具有强大的故障场景编排能力,借助Chaos Mesh平台,在开发测试中模拟现实环境可能出现的各类异常,帮助丰富监控和巡检案例。 中间件故障发现探索与实践数字化基础软件自主创新分享周中间件故障发现探索–接入APM全链路监控APM即应用性能管理服务(Application Performance Management),该系统通过向应用系统植入agent采集应用调用栈和网络请求数据,用于服务的拓扑关系展示,应用服务的响应时间追踪、吞吐量和状态的监控,慢响应和错误明细的查询。由于APM agent实现了很多中间件协议识别能力,在测试环境,可以借助APM发现容器化中间件系统瓶颈。 中间件故障定位探索与实践数字化基础软件自主创新分享周NETEASE DIGITAL SAIL 中间件故障定位探索和实践数字化基础软件自主创新分享周中间件故障定位能力探索–背景•故障排查效率严重依赖运维人员经验•排查经验零散且无法传承积累•故障排查脚本缺乏统一标准,无法统一把控质量和准确性•人工执行命令效率低,错误率高人工定位平台辅助定位智能化定位•大数据分析故障和监控指标之间的关联,预判故障•AI自动分析引发报警的故障点,智能识别故障原因•根据预警及分析结果自动执行操作,消除故障•向运维人员发送报表汇报结果•把运维人员故障定位的经验固化为服务代码•定期巡检or 通过报警触发自动定位,在运维人员接入前给出经验参考和处理建议•运维人员根据建议执行处理步骤vsvs 中间件故障定位探索与实践数字化基础软件自主创新分享周中间件故障定位实践–基于规则引擎的根因分析故障定位服务故障定位服务规则引擎运维经验规则Prometheus日志ES运维网关接口报警服务故障分析报告总结整理开发运维人员常用排查思路,整理成统一格式的经验规则使用开源规则引擎编排排查规则报警触发指定规则引擎运行,按照规则扫描监控及中间件运行态数据 中间件故障定位探索与实践数字化基础软件自主创新分享周中间件故障定位探索–基于决策树引擎的智能分析•使用CART决策树,自动学习并生故障和指标集合之间的关联关系,替代人工总结的规则引擎•使用Chaos Mesh pipline或Chaos Monkey顺序或随机注入故障,模拟线上故障场景 中间件故障恢复探索与实践数字化基础软件自主创新分享周NETEASE DIGITAL SAIL 中间件故障恢复探索与实践数字化基础软件自主创新分享周中间件故障恢复实践–统一运维网关轻舟管控平台前端控制台计算集群-1operatorassistor中间件计算集群-Noperatorassistor中间件...paas-manageroperator-assistorkubecubeauth/audit中间件生命周期操作/配置变更操作等通过K8S声明式API提交给operator执行涉及到中间件状态变更类的运维操作,如kafka分区迁移、amq主备切换等,通过统一运维网关下发到指定计算集群指定中间件实例执行运维操作和中间件生命周期操作,都需要验证权限并记录审计日志 中间件故障恢复探索与实践数字化基础软件自主创新分享周中间件故障恢复探索–自动化故障恢复稳定性管控系统稳定性管理故障定位引擎监控数据报警服务故障分析报告故障回调引擎故障恢复预案中间件平台paas-manageroperator-assistork8s-api故障处理报告对于定位准确度高且处理方式固定的故障,在稳定性管控服务托管恢复脚本,由定位引擎触发执行回调引擎通过中间件平台openapi接口处理故障,并把处理结果报表发送给运维人员 THANKS感谢观看