SRE 方法论


SRE

承担的职责:

可用性改进,延迟优化,性能优化,效率优化,变更管理,监控,紧急事务处理,容量规划与管理

工作内容:

开发监控系统,规划容量,处理紧急事件,确保事故根源被跟踪修复

核心方法论:

  1. 确保长期关注研发工作
    1. 将运维工作限制在50%以内,剩余时间花在项目研发上
    2. 运维工作的一项准则:在每8~12个小时的on-cal轮值期间最多只处理两个紧急的事件,确保on-call工程师能够有足够的时间跟进紧急事件,能够正确的处理故障,恢复服务并且撰写事后报告。
    3. 事后总结应该包括内容:事故发生,发现,解决的全过程。事故的根本原因、预防或者优化解决方案
  2. 在保障服务SLO(服务等级目标)的前提下最大化迭代速度
    1. 在办证业务服务的可靠性需求的同事尽可能加快功能上线速度
    2. 错误预算。SRE的目标是不是达到100%可靠。而是基于以下考虑
      1. 基于用户的使用习惯,服务可靠性要达到什么程度用户才会满意
      2. 如果这项服务的可靠程度不够,用户是否有其他的替代选择
      3. 服务的可靠程度是否会影响用户对这服务的使用模式
  3. 监控系统
    系统不应该依赖人来分析警报信息,而是由系统自动分析。仅当需要用户执行某些操作的时候才通知用户
    一个监控系统应该只有3类输出
    • 紧急警报:收到警报的用户需要立即执行某种操作。目标是解决某种已经发生的问题或者避免即将发生的问题
    • 工单:以为着接受工单的用户应该执行某种操作,并非立即执行。系统并不能自动解决目前的情况。但是用户在几天内执行这项操作,系统不会受到任何影响
    • 日志:日志信息依旧需要被收集起来以备调试和事后分析使用
  4. 应急事件处理
    可靠性是平均失败时间(MTTF)和平均回复时间(MTTR)的函数。使用运维手册可以缩短平均回复时间。可以将工作重心放在“运维手册”的维护上,同时通过灾难演练培训团队成员
  5. 需求预测和容量规划
    简单说就是保障一个业务有足够的容量和冗余度去服务预测中的未来需求。业务的容量规划,需要包括自然增长(随着用户使用量的上升,资源用量也上升)和非自然增长(新功能的发布,商业推广和其他因素)
    必须步骤:
    1. 必须有一个准确的自然增长需求预测模型,需求预测的时间应该超过资源获取的时间
    2. 规划中必须有准确的非自然增长的需求来源统计
    3. 必须有周期性压力测试,以便准确地将系统原始资源与业务容量对应起来
  6. 资源部署
    资源的部署是变更管理与容量规划的结合物。新资源的部署与配置需要谨慎执行。
  7. 效率与性能
    密切关注一个服务的容量配置策略,进而改进其资源利用率,降低系统的总成本。
    资源的使用情况的驱动因素:
    • 用户需求(流量)
    • 可用容量和软件
    • 资源使用效率

文章作者: 彭峰
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 彭峰 !
  目录