Wow4j Wow4j
首页
个人使用说明书
后端开发
前端开发
测试开发
运维开发
大数据开发
产品&UI交互
团队管理
软技能
他山之石
开源产品
敬请期待
GitHub (opens new window)
首页
个人使用说明书
后端开发
前端开发
测试开发
运维开发
大数据开发
产品&UI交互
团队管理
软技能
他山之石
开源产品
敬请期待
GitHub (opens new window)
  • 概要
  • 成为会带团队的技术人
    • 稳定性:可用性治理的三个关键要点
      • 变更会引起 90% 以上的故障
  • 团队「奖优罚劣」14条军规
  • OKR 最佳实践
  • 超实用网址大全
  • 技术人员如何准备晋升答辩?【转载】
  • 番茄工作法(简单易行的时间管理方法)
  • 电商常见名词
  • 规范&模板

  • 如何做好技术规划
  • 张一鸣精选微博55条
  • 项目理念与愿景
  • 项目版本号
  • 团队管理
timchen525
2023-02-03

成为会带团队的技术人

# 稳定性:可用性治理的三个关键要点

从事故预防的角度聊一聊可用性治理的关键动作

团队稳定性军规

  • 业务发展会带动系统演进
  • 围绕系统的风险隐患,建立 "防火墙"

# 变更会引起 90% 以上的故障

以年为单位统计了事故,得出了 90% 的数字

  • 互联网公司的研发模式基本都是"小步快走、高速迭代"
  • 系统复杂度的提高,增加了变更时所带来的不确定性 "发布三板斧":
    • 可监控
    • 可回滚
    • 可灰度
  • 发布需要监控
    • 完善的监控告警比人工反馈响应更快
    • 没有监控的变更就像盲人摸象
    • 有效的监控需要回答三个问题:(1)是否有问题发生?(2)哪里发生了问题?(3)发生了什么问题?
    • 结合业务配置有效的监控
  • 有效灰度必须有耐心:
    • "灰度就是在生产环境进行小范围测试",这句话是错误的,它本真是为了对抗"未知的不确定性"。需要更加谨慎地进行灰度,确保即使问题真的在生产环境出现,造成的影响也是可控的。
    • "在灰度的落地与推进过程中,要注意有效性"。一个系统部署在 2 个机房,每个机房 4 个集群,灰度顺序应该是单机房单集群中部分节点、单机房单集群中全部节点、单机房中全部集群,然后另外一个机房重复这个步骤。
    • 时间:每个灰度阶段至少有 5~10 min 的观察,在监控、日志和各方反馈没有异常后再扩大灰度范围,确保一些运行时异常或量变积累质变的问题可以暴露出来。
    • 流量:有时一些业务场景需要满足特定的触发条件。
    • 结合实际的情况与风险程度来确定灰度的程度
  • 回滚是变更的"后悔药"
    • "何时回滚"以及"如何确保回滚"
    • "已经产生了线上影响,并且可能有资损,怎么能过两天再修复?","发现问题第一时间就能解决的事儿,为什么不回滚?"
    • 研发对事故的敬畏之心不足时,回滚也会失灵。
    • 如何确保变更是可以回滚的呢?可回滚的本质是系统的兼容设计与实现,比如:常见的"只增不改"
  • 坚守 Design For Failure 的架构理念
    • "Design for failure and nothing will fail" 最早是 AWS 的一条最佳实践,即面向失败进行系统设计。
    • 考虑系统所有可能发生故障或不可用的情形,并假设这些可能都会发生,倒逼自己设计足够健壮的系统。
      • 非关键路径都要可以降级
      • 核心系统一定要熔断、限流、超时这些保护手段
      • 架构上要避免单点
    • 技术团队如何推行并落地这种理想?
      • 正向:如何形成 Design For Failure 的系统设计习惯?
      • 反向:如何确定系统真的可以 Failover?
    • 通过演练验证预案设计:技术 Leader 要化被动为主动,有意识地推进故障演练,不论是以注入还是回放的方式制造可控的故障,以此验证应急处理的机制流程和预先设计的灾备方案是否有效。演练是一个逐步的过程,先从测试环境检验,然后在生产环境进行有预案的演练,最后进行真正的随机故障演练。
    • 系统稳定性结果好快很大程度上取决于技术 Leader 的重视程度
      • 要把稳定性当做一个机制和团队的文化去建设
      • 不断加深大家对稳定性的认识以及和每个人切身利益的关联程度
      • 进一步形成团队的氛围与文化
    • 新人 Landing 从稳定性学习开始
      1. 1~2 周的适应期
      2. 学习并通过发布变更 SOP 考试,取得对应系统的发布权限
      3. 学习这个部门最近半年发生的真实事故,并总结一篇总结邮件给部门内所有人(利用心理学中的"承诺一致性原则")
    • 每人不低于 35% 的稳定性 KPI:技术 Leader 的稳定性 KPI 占比在 35% 到 40%,一线研发的同学可能是 50% 以上。(避免出现口号响亮,但是落地无声的情况)
    • 通过稳定性 KPI 的设计:将稳定性的结果与所有人的切身利益实实在在得绑定到一起。
    • 好的坏的都要在阳光之下晒一晒
      • 每个月做一次红黑榜单
      • 以不同的维度公示部分内各团队的稳定性结果
      • 维度统计可以是:事故数、冒烟数、1-5-10 达成率、本月严重事故……
    • 奖惩不是目的而是手段:要选择合适的手段提高团队成员的稳定性意识,并且最终取得好的结果。

总结:

  • 对于技术 Leader 而言,不能用重大事故让团队成员慢慢理解系统稳定性的重要性
  • 可用性的预防与治理需要投入大量的时间和精力
上次更新: 2023/02/06, 09:35:40
概要
团队「奖优罚劣」14条军规

← 概要 团队「奖优罚劣」14条军规→

Theme by Vdoing | Copyright © 2022-2023 timchen525 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式
×