安全生产 - 稳定性建设的方法论 架构师应该做什么? []

技术人人都是xx

如何成为一名架构师,架构师成长之路_golang架构师_个人渣记录仅为自己搜索用的博客-CSDN博客

子文章  稳定性之 监控,报警,定位 偏数据分析视角,业务订单,智能定位. 2/5/15 of 安全生产_个人渣记录仅为自己搜索用的博客-CSDN博客

简单几个词总结

   核心在自动化,重在日常,快在告警定位(2/5/15 监控告警  定位分析 解决), 补充在复盘

可读性

   ddd 1.面相能力编程

可测性 - 新功能可自动化测试-新老兼容

人人都是测试专家- testCase怎么写,才能完备._个人渣记录仅为自己搜索用的博客-CSDN博客_写一个testcase要多久

稳健性 - 稳定性经验数字化

 把所有的线上故障总结统一起来

北极星指南针 架构经验数字化 高可用性. 复用 . 经验- 定期检查

结构化思考, 金字塔思考, 时间序 + 道法术器

事前:  设计金字塔,重点在性能(拆分,热点,缓存,异步,强弱依赖,动静分离), 预防 ( 回放, 攻防混沌演练, 压测,主动巡检 ), 监控告警(结构化统计)

事中:  定位(含用例回放), 回滚/扩容 , 应急手段

事后:  复盘

  

故障原因印象流.

自身代码

1. 代码改动的发布 bug 

依赖

2. 下游依赖 bug .(软件,硬件)

3. 本业务机器故障.

容量

4. 稳定性雪崩

      3.1下游慢等性能问题导致的雪崩

      3.2 mysql 慢查等索引性能问题导致的雪崩.

5. 大促等流量激增导致的雪崩

6. 机房迁移.

传统部分业务机房迁移_个人渣记录仅为自己搜索用的博客-CSDN博客

稳定性相关大纲_个人渣记录仅为自己搜索用的博客-CSDN博客 重复

代码

   发布前

1. 重构必须要有单测覆盖率. 如果小方法因为重构被删除了. 如何办?

  1.1 必须要有集成测试. 或者某个接口不会变的集成测试.

if(a>b){

}

这里面其实有两个分支.都要覆盖.  学会看懂覆盖率

 1.2 使用流量回放. 把random方法全部mock掉. 根据traceId来mock. 把所有都覆盖到. 覆盖不到的使用手写集成测试.

 发布后

   2/5/15 很关键

 1.3 异常情况考虑和review

    1.3.1 空指针. 异常错误码

    1.3.2 进阶 难点

                 异常导致级联雪崩的例子_个人渣记录仅为自己搜索用的博客-CSDN博客

        

监控,报警,定位 架构师该做什么. 偏数据分析视角,智能定位. 2/5/15 of 稳定性

  1. 监控告警
    1. 统计
      1. 5要素,成功率(错误码过滤)
      2. 错误码统计
      3. 线程池,io
  2. 提前预警
    1. 线程池
    2. jvm
      1. 内存
      2. gc
    3. 机器
      1. 内存
      2. 带宽
      3. cpu

  3. 定位(接口粒度)
    1. top耗时traceId
    2. 错误码traceId
    3. error新增日志监控,依赖良好的平台模糊归类(余弦算法等) - 没有的话就将 入口方法+日志类打印出来+异常堆栈的首类
    4. 维度下钻统计法,这种需要依赖良好的工具,输入指定的指标和维度值,进行手动下钻分析和自动分析. (可以服用维度之间的层级,降低 数据分析立方体) [平台型产品需要区分业务方]  单个业务方传参出错,(android,ios出错). 这种方法如果统计不全,或者没有事先配置好 值班报表,就很难使用.
  4. 值班大盘
    1. 绝对值. 5要素
    2. 核心数据 周同比
    3. 异常error日志查看,分析
    4. 慢sql traceId
    5. 不同维度快速下钻

运行

如何避免上述问题? 体感报警,体感监控体系
问题定位2/5/15 稳定性 问题定位[基于此监控系统] 系统优化[内部调用异常数据流量,基于此系统上的压测瓶颈发现]

日志标准化非常重要 链路的熟悉 - 特别是非标链路的熟悉 - 没有标准化监控_个人渣记录仅为自己搜索用的博客-CSDN博客

rpc线程池和业务自己相关的监控,日志在哪看也非常重要.  sofaThread就是一套开源的面向监控的封装sofa-common-tools: sofa-common-tools 是 SOFAStack 中间件依赖的一个通用工具包,通过自动感知应用的日志实现,提供中间件与应用隔离的日志空间打印能力

自定义线程池 · SOFAStack

重复文章:

  稳定性 监控 业务后期 - 架构师 - fei33423 - 博客园

补充照片上没有的两点.

拆分: 水平拆分,垂直拆分,基础(中台)拆分. 读放大.

各个内部中间件系统最好也改造接上各核心节点监控. 分成各区间段.

数据驱动的稳定性建设基础: 1.入口监控 (dubbo,mq,定时任务 dubbo,内部定时任务) 2.出口监控(mq,dubbo,http,thrift,mysql,redis)

流量大的接口要隔离.

埋点树: 要有ui 自动下一批子节点找出来. 用来确认埋点是否ok.

  异常检测-机器学习总结_个人渣记录仅为自己搜索用的博客-CSDN博客

自动写监控

   的能力. 把告警分析经验聚合起来

自动写核对 自动化监控/测试/核对 业务冻结和事务冻结字段分开 解决过桥/过渡账户冻结问题_个人渣记录仅为自己搜索用的博客-CSDN博客

发布监控:

      看错误Exception,错误量. 不要看成功率,成功量. 

          监控:  1.量够看成功率,上周同比,上上周同比.. 将绝对值转换为率来判断,比如 大于多少算不正常,不正常的比例. 这样就自动化,不用担心.  2. 量不够看连续绝对值. 确定一个阈值,平台最好可配置时间段阈值  

           耗时这个指标绝对值有异常就要报警,比较重要. 体感角度监控. 从线程池角度监控: 乘积要监控.

           梳理: 看绝对值. 成功率低的,耗时高的.

           看耗时,一般上线都是低峰期. 耗时要特别关注.

           看耗时提高(早高峰崩溃),相比6周同期,相比上周同期      

  1. 监控. 总量,率,失败数,耗时,总量*耗时, size,错误类型, exception. error日志. 

      低流量报警: 关注失败率和code率. 如果有些接口失败但用户体感无影响. 要进行改造.先暂时过滤. 

   流量: 需要一个系统,

       整理出: 1. 离线稳定性分析大盘,架构师专注查看. 这样架构师不需手动执行n各sql,然后整理到webExcel中

      2. 分配给各同学, web excel

      3. 各个同学整理答复, 更新进度.

  1.  检查是否全面覆盖.
    1. 入口: lwp,http,hsf,mq,定时任务
    2. 出口:http,hsf,mq,mysql,tair,redis,hbase,异步发送到队列返回的时间. tair要区分keyType.
  2.  按入口各指标top5列出,指定同学分析定位.
    1. 依赖链路分析. 总时间 是否 =总下游依赖调用时间
  3. 按入口/出口(直接,异步间接)数量比top5分析
  4. 按入口-出口(直接,异步间接)总耗时top5分析
    1. 异步怎么办? 
  5. 按出口各指标top5分析.
  6. 绝对值耗时分析: 按区间分析.

存储:

    1. 持久化存储
    2. 内存

      自动化大盘,监控. 

      灰度监控,比较人肉,淹没在全量监控中.  

      [创新] 可视化web中台.  趋势图, 圆饼图, 漏斗图. 分组(kv),指标.  多key(无key)

      [创新] 指标api后端中台. 服务端通过数据采集, 然后通过接口传递给可视化平台. 同比,环比,报表可点击.[ 阿里xflush + 业务自动化]

       

      指标+ 指标上的指标. 

      链路: 入口到db的读放大

  在线      

  2. 演练

       

  3. 降级

  4, 雪崩下问题定位

  5. 指标平台. 按维度报警.

秘钥覆盖率, 大组织的,一部分人发了加密消息, 另外50w不能解密,向第三方取秘钥. 挂掉.

针对业务数据我们可以利用历史数据使用Holt-Winters等模型进行业务数据预测. 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值