31 | 极端业务场景下,我们应该如何做好稳定性保障?

我们所面对的极端业务场景

可预测场景:双11
不可预测场景:鹿晗公布恋情

我们要迎接的技术挑战

  • 运维自动化
    标准化覆盖面是否足够广泛,应用体系是否完善,持续交付流水线是否高效,云上资源获得是否足够迅速,这些都是运维自动化的基础。特别是对于不可预测的场景,考验的就是自动化的程度。
  • 容量评估和压测
    我们只有对系统容量十分清楚,才能针对特定场景判断出哪些应用和不见需要扩容,扩容多少,扩容顺序如何。同时,系统容量的获取,需要有比较完善的自动化压测系统,针对单接口、单应用、但链路以及全链路进行日常和极端场景下的模拟压测。
  • 限流降级
    对于超出容量的请求进行限流,请用户耐心等待一下
    对于非核心的功能,在峰值时刻进行降级,以降低系统压力。
  • 开关预案
    系统功能开关,比如当缓存故障事,我们就需要将请求转发到数据库上,目的只有一个,让系统可用。
  • 故障模拟
    类似Chaos Engineering的故障模拟系统,也需要建设起来,模拟出一些常见,比如CPU异常,RT响应异常,QPS异常等等,看我们的预案是否能够快速执行,能够保持系统或将系统快速恢复到正常状态。
  • 监控体系
    指标采集和统计,异常判断

极端业务场景下的不确定因素

对于稳定性而言,用户访问模型才是关键,这个摸不准,只有技术没有用的,这就更需要我们能够深入业务,理解业务。

32 | 稳定性实践:容量规划之业务场景分析

容量规划,就是对复杂业务场景的分析,通过一定的技术手段(如压力测试),来达到对资源合理扩容,有效规划的过程。

33 | 稳定性实践:容量规划之压测系统建设

第一个维度,压测粒度

  • 单机单应用压力测试
  • 单链路压力测试
  • 多链路、全链路压力测试

第二个维度,压测接口及流量构造方式

  • 线上流量回放、
  • 线上流量引流
  • 流量模拟
    Gatling

第三个维度,施压方式

第四个维度,数据读写

34 | 稳定性实践:限流降级

什么是限流和降级

限流:它的作用是根据某个应用或基础部件的某些核心指标,如QPS或并发线程数,来决定是否将后续的请求进行拦截。

降级:它的作用是通过判断某个应用或组件的服务状态是否正常,来决定是否继续提供服务。

常见的限流解决方案

  • 第一类,接入层限流
    nginx限流,API路由网关模式
  • 第二类,应用限流
  • 第三类,基础服务限流

限流降级的难点

限流降级的难点和关键还是在于整体技术栈的统一、以及后期对每个应用限流降级资源策略的准确把握和配置。

35 | 稳定性实践:开关和预案

如何理解开关和预案

开关:这个概念更多是业务和功能层面的,主要是针对单个功能的启用和停止进行控制,或者将功能状态在不同版本之间进行切换。

预案:可以理解为让应用或业务进入到某种特定状态的复杂方案执行,这个方案最终会通过开关、限流和降级策略这些细粒度的技术来实现,是这些具体技术方案的场景化表现。

技术解决方案

  • 开关管理
  • 开关推送
  • 配置变更
  • 预案执行

36 | 稳定性实践:全链路跟踪系统

阿里的鹰眼系统,美团点评的CAT分布式监控系统。

全链路跟踪系统在技术运营层面的应用

核心技术点:TraceID

技术运营场景:

第一个场景,问题定位和排查
第二个场景,服务运行状态分析

  • 服务运行质量
  • 应用和服务依赖
  • 依赖关系的服务质量
    第三个场景,业务全息

技术、产品和运营相辅相成,共同促进彼此的完善和成熟。

技术之外,我们也应该更多地考虑技术在价值方面的呈现。

《赵成的运维体系管理课》学习笔记(4)——稳定性保障相关推荐

  1. 《赵成的运维体系管理课》学习笔记(5)——故障管理

    37 | 故障管理:谈谈我对故障的理解 系统正常,只是改系统无数异常情况下的一种特例. Design for Failure: 我们的目标和注意力不应该放在消除故障,或者不允许故障发生上,因为我们无法 ...

  2. 赵成的运维体系管理课视频教程

    专栏模块 专栏共三个月,36 期,围绕以应用为核心的运维体系,分四个模块介绍. 应用运维体系建设.这一模块是运维工作的基础,将从标准化和应用生命周期开始,介绍如何一步步建立运维技术体系和组织架构,如何 ...

  3. 《赵成的运维体系管理课》学习笔记(2)——持续交付

    21 | 人多力量大vs两个披萨原则,聊聊持续交付中的流水线模式 项目需求分解 将项目管理中的需求与持续发布中的应用这两者很好地关联起来. 明确好需求拆分与应用功能的对应. 提交阶段之开发模式选择 开 ...

  4. 《赵成的运维体系管理课》学习笔记(1)——持续交付

    16 | 持续交付知易行难,想做成这事你要理解这几个关键点 什么是持续交付 首先要把持续交付做好. 做持续交付就是提升整个研发体系效率的关键. 持续交付代表着从从业务需求开始到交付上线之后的端到端的过 ...

  5. 《赵成的运维体系管理课》学习笔记(3)——云计算时代的运维实践

    25 | 为什么蘑菇街会选择上云?是被动选择还是主动出击? 我们所面临的问题 成本闲置问题 大促,需要业务系统有足够的容量支持,浪费机柜成本和人工投入. 基础设施维护问题 IDC机房选址,IDC机房的 ...

  6. 从《进化/运维技术变革与实践探索》看运维体系建设与个人成长

    最近在学习赵成大佬的<进化/运维技术变革与实践探索>一书,在极客时间也有教程.整本书从以下的四个方面进行了梳理:应用运维体系建设.效率和稳定性等方面的最佳实践.云计算方面的思考和实践.个人 ...

  7. 【转载】拿来即用的企业级安全运维体系搭建指南

    拿来即用的企业级安全运维体系搭建指南 本文我们将针对如何解决问题来进行详细说明,从问题入手,通过纠正或者培养良好的运维安全习惯,搭建完整的运维安全技术体系. 作者:林伟壕来源:DBAplus社群| 本 ...

  8. 阿里巴巴超大规模 Kubernetes 基础设施运维体系介绍

    简介:ASI 作为阿里集团.阿里云基础设施底座,为越来越多的云产品提供更多专业服务,托管底层 K8s 集群,屏蔽复杂的 K8s 门槛.透明几乎所有的基础设施复杂度,并用专业的产品技术能力兜底稳定性,让 ...

  9. 阿里巴巴超大规模Kubernetes基础设施运维体系解读

    简介:ASI:Alibaba Serverless infrastructure,阿里巴巴针对云原生应用设计的统一基础设施.ASI 基于阿里云公共云容器服务 ACK之上,支撑集团应用云原生化和云产品的 ...

最新文章

  1. CTFshow 命令执行 web56
  2. 3.7 感知器-机器学习笔记-斯坦福吴恩达教授
  3. 【Linux系统编程】IO多路复用之select
  4. 组件,控件,插件,库都是什么鬼啊
  5. 两分钟倒计时(Python)
  6. LeetCode 1038. 从二叉搜索树到更大和树(逆中序-右根左-降序)
  7. jQuery框架学习第十天:实战jQueryUI常用功能
  8. 南邮linux期末考试试题,南邮操作系统试卷及答案.doc
  9. struct seq_file
  10. Eclipse中屏蔽日志
  11. 哒哒的马蹄,由心而生的感情
  12. pano2vr 笔记
  13. python openpyxl冻结首行单元格
  14. element-ui图片上传组件之限制每次5张上传(或者自定义每次几张上传)
  15. 为什么使用Stelnet与sftp协议,而不用telnet与ftp协议
  16. Windows无法连接到打印机怎么办?快收藏这些正确做法!
  17. linux 下安装apache 快速教程
  18. Android开发学什么
  19. 百度董事长兼CEO李彦宏创立《百度互联网》全球最大的中文搜索引擎
  20. vue3 关于子组件给父组件传值,详解

热门文章

  1. 科学计算机一个亿怎么显示0,一亿后面几个零
  2. vscode 如何修改字体大小
  3. 利用python进行保险数据分析及可视化
  4. 劲爆!电波拉皮有什么危害,电波拉皮效果好吗能维持多久,人见人夸了
  5. 操作系统基本原理概述
  6. spark集群环境下Lost task 0.0 in stage 10.0 (TID 17, 10.28.23.202): java.io.FileNotFoundException
  7. C与C++成长之路——c提高二之指针强化和字符串
  8. SQL TIMESTAMP 时间日期比较语句
  9. 如何用网络管理软件灵活管理复杂庞大的网络
  10. HBase2.x(十一)HBase 读流程