上海品茶

您的当前位置:上海品茶 > 报告分类 > PDF报告下载

2019年降级预案在同程艺龙的工程实践.pdf

编号:97518 PDF 23页 15.99MB 下载积分:VIP专享
下载报告请您先登录!

2019年降级预案在同程艺龙的工程实践.pdf

1、降级预案在同程艺龙的工程实践同程艺龙搜索故障微信小程序API网关资源1搜索引擎统一资源网关资源2资源3资源4资源4大量超时统一资源网关搜索引擎API网关大量请求超时缺乏熔断设计交易故障第三方支付支付中心支付回写消息队列支付通知交易中台支付时限任务出票处理队列故障已支付订单被取消支付超时订单取消缺乏降级设计稳定性之路到底有多远如何设计面向容错的系统,如何提升系统的可用性强弱依赖弱依赖-熔断限流,有损服务强依赖-备选服务,降级实现什么是强弱依赖,如何确定强弱依赖 用户是否强烈感知 核心业务是否有损service用户请求serviceBserviceAserviceCserviceC-degrade

2、弱依赖强依赖强依赖备选服务熔断、限流降级业界解决方案-HYSTRIXNetflix开源的一款容错框架,支持多种降级熔断技术资源隔离断路器降级操作请求合并请求缓存实践过程中遇到的问题业务改造成本高,代码耦合,维护成本增高固化策略,需线下修改代码,测试,发布,线上应急策略响应不友好无法支撑多系统的复合指标计算,业务降级支持不友好大量应用各自实现降级熔断,代码散落在各应用,没有统一的管理和治理。久而久之,无人知道系统内有多少降级点,降级是如何实现的缺乏UI、没有灵活的参数、策略配置,没有预案制定管理能力业务保障平台建设之路业务保障平台建设之路服务管理策略管理预案制定线上演练 降级服务统一注册管理,通

3、过降级服务质量数据从整体反映各应用的降级点和可用性保障措施 降级策略集中管理,通过参数化、配置化、脚本化方式实现线上策略的灵活调整 依据服务重要程度,从全局制定分级预案,对降级点进行预案编排,并跟踪监控降级链路的执行 发现潜在故障,多维度验证预案有效性,评估系统可靠性,提供降级策略、参数调整的优化依据整体架构Agent服务降级注册降级熔断通知元数据存储控制 中心ETCDETCDETCDETCD服务注册监听降级控制中心元数据TurboMQ熔断降级监听ApplicationApplicationApplicationSDK熔断降级接入ApplicationApplicationApplicatio

4、nSDKApplicationApplicationApplicationSDK熔断降级流控隔离实时策略推送数据采集应用管理策略管理流控管理预案管理指标管理监控告警数据大盘脚本开发ETCD管理故障演练业务保障管理后台应用JVM进程故障动态注入Attach故障注入指标聚合查询熔断降级计算(Flink)日志中心KAFKA数据采集、计算、存储指标(HBase)指标明细(ES)降级日志(ES)ETL指标计算(Flink)脚本引擎查 询 服 务日志数据指标(Redis)业务异常数据快照(ES)熔断降级通知降级服务管理故障代码注入降级服务注册设计serviceAserviceBserviceCetcdre

5、gisterservice metadatadegrade strategycentermysql shardingwatchadmin 使用ETCD实现注册中心 简单-Go语言编写部署维护简单,定义良好的API 安全-SSL认证机制 快速-支持上万次写入操作 可信-Raft算法保证强一致性,Proxy反向代理模式支持 服务数据存储 应用、服务元数据、状态数据,etcd、mysql双份存储 后台实时监控应用、服务,实时变更降级策略proxy服务质量数据采集业务数据采集日志文件应用数据采集应用数据方法数据执行结果执行耗时异常数据JVM内存JVM线程GC数据业务数据SDK数据自定义数据系统数据采集

6、容器数据CPU数据内存数据磁盘数据网络数据采集Agent日志中心KAFKA数据处理通过本地日志文件,实时采集降级服务质量数据日志文件系统数据采集容器数据CPU数据内存数据磁盘数据网络数据采集Agent日志中心KAFKA数据处理应用数据采集应用数据方法数据执行结果执行耗时异常数据JVM内存JVM线程GC数据业务数据SDK数据自定义数据数据通道(长链接单通道)数据采集 Proxy 单工直连数据通道 长链接,数据流方式实时发送 本地多队列轮循,数据缓冲,合并异步发送指标如何计算处理数据采集KAFKAETL复合指标自定义指标系统指标业务指标指标脚本计算指标规则计算指标脚本规则表达式熔断降级 条件计算降

7、级消息数据存储实时告警规则配置开发日志解析规则控制中心ETCD降级服务降级处理流处理集群(Flink)HBaseESRedis落地存储数据服务数据平台实时告警告警策略指标查询指标脚本开发指标配置产品化开发复合指标计算如何处理ServiceAServiceBServiceCServiceDAppAAppB指标池表达式计算(AppA.ServiceA.指标1-AppB.ServiceD.指标2)/AppB.ServiceC.指标1指标引用指标2指标1指标3指标N指标2指标1指标3指标N指标2指标1指标3指标N指标2指标1指标3指标NMVEL 表达式引擎降级服务管理 降级服务管理 应用、服务、策略产

8、品化、数据化 应用、服务指标实时监控,健康状态评估 实时监测服务降级执行状态,降级发生点数据快照及时回溯 降级策略管理 多种策略方案:失效备援、服务熔断、资源隔离、延迟处理 策略灵活调整,实时监控策略运行状态应用/服务降级代码管理 线上代码开发、测试、发布 降级代码统一管理 脚本代码动态编译,对象管理业务保障平台应SDK线下开发策略配置测试发布WEB IDE线上开发降级方法使用Git降级代码线下代码管理脚本降级服务如何自动探测恢复方法代理降级正常流程保护期窗口(10min)窗口期探测期窗口(5min)探测流量分配窗口期外窗口期外降级方法熔断降级流程恢复探测探测开启开启未降级已降级关闭窗口期指标

9、计算降级触发/恢复 降级保护期窗口内,不进行恢复试探 流量分配的方式实施恢复探测,百分比、总量 实时计算探测流量指标,指标恢复关闭降级方法调用百分比策略总量策略自定义策略降级预案运营:明天要做活动,希望降级不重要的服务运营开发开发:不清楚这样的业务 场景有哪些次要服务需要 降级 预案分级 从全局建立服务重要程度评估模型 蓝色预警-小规模非核心服务降级 黄色预警-大规模非核心服务降级 红色预警-所有非核心服务降级 预案编排 根据链路关系、同等级优先级进行预案编排,形成降级执行链路 线上实时预案测试、演练,演练数据回溯业务不断迭代,持续引入新依赖,系统是否稳定可靠?预案是否依然持续有效?如何才能持

10、续保障系统的高可用性?故障演练 对预案进行有效性、合理性验证 通过破坏性测试,发现系统的潜在故障,及时修正,并做好降级预防措施 参数修正,及时调整流控、降级策略,优化告警、超时参数设置 模拟线上故障,进行故障复现,验证故障后续的处理措施是否行之有效 以战养兵,历练团队,让工程师有更多机会积累经验,提升应对故障的能力常态化的故障演练对系统进行反复验证系统设计AgentCoreCustom Code ModelBurn CPUServlet ModuleMySQL ModuleDSF ModuleMQ ModuleRedis ModuleAttachMethod Event故障演练 管理后台Age

11、nt 控制指令、参数下发、故障注入JettyMGT APIASM/InstrumentationApplication JVM故障画像 应用故障:模拟应用进程内故障 中间件故障:通过中间件客户端,模拟中间件故障 系统故障:通过工具、脚本模拟网络丢包、延时,磁盘不足故障故障抽象,提炼统一模型 延时模型、超时模型、异常模型、自定义代码模型 基于模型实现应用故障、中间件故障模拟,实时对应用程序进行字节码插桩、拆桩简洁易操作后台 可视化UI,参数、配置下发,快速实现故障注入 丰富的故障模块管理功能Exception ModelTimeout ModelLatency ModelAgent Listen

12、er故障注入流程故障演练 管理后台应用程序Agent ListenerAgentRedisMySQL二方服务1.发送Agent启动指令2.Attach目标JVM进程Core.jar核心模块初始化4.参数下发、故障注入、控制指令Http通信5.目标方法字节码增强6.MySQL延时模拟6.Redis超时模拟6.服务异常模拟Instrumentation&ASMvm.loadAgent(agent)3.加载Agentvm.attach(pid)Jetty小结 从用户感知、核心业务影响方面,判断系统链路中的强弱依赖 通过对服务统一管理,从全局刻画系统链路熔断降级点,结合策略和预案,通过持续不断的治理保障系统的可用性 通过反复的故障演练,发现系统中的薄弱点,并进行有效的预防 配合降级预案,让系统的可靠性更易验证,让演练更加常态化 历练团队、积累经验,促进工程师的进步,提高应对故障的能力

友情提示

1、下载报告失败解决办法
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站报告下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。

本文(2019年降级预案在同程艺龙的工程实践.pdf)为本站 (云闲) 主动上传,三个皮匠报告文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三个皮匠报告文库(点击联系客服),我们立即给予删除!

温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。
会员购买
客服

专属顾问

商务合作

机构入驻、侵权投诉、商务合作

服务号

三个皮匠报告官方公众号

回到顶部