SRE运维笔记
SRE概念
SRE(sitereliabilityengineering).中文翻译为站点可靠性工程师.SRE概念中比较重要的特性在于:
1.engineer表示SRE是工程师,使用软件工程手段设计,研发和维护业务软件系统.
2.SRE的关注焦点在于可靠性,专注于软件系统架构设计,运维流程优化,让业务软件系统运行更可靠.
3.SRE主要工作是运维业务服务,
SRE团队职责:
- 可用性改进
- 延迟优化
- 性能优化
- 效率优化
- 变更管理
- 监控
- 紧急事务处理
- 容量规划与管理
SRE方法论
确保长期关注研发工作
运维工作限制在50%以内,剩余的时间花在研发项目上.
在保障服务SLO的前提下最大化迭代速度
- 错误预算: 1-可靠性目标.
- 如果一个服务的可靠性目标是99.99%,那么错误预算就是0.01%.
- 错误预算: 1-可靠性目标.
监控系统
监控系统不应该依赖人来分析警报信息.而是应该由系统自动分析.仅当需要用户执行某种操作时,才需要通知用户
监控系统需要具备三类输出:
- 紧急警报(alert)
- 工单:接受工单的用户应该执行某种操作,但是并非立即执行
- 日志
应急事件处理
- 可靠性:MTTF(平均失败时间),MTTR(平均恢复时间),MTBF(平均故障间隔时间).
- 任何需要人工操作的事情都只会延长恢复时间,一个可以自动恢复的系统即使有更多故障发生,也比事事都要人工干预的系统可用性更高.当不可避免需要人工介入时,最佳方法是事先预案,并且记录在运维手册(playbook)中,这能降低MTTR(平均恢复)时间.
变更管理
大概70%的生产事故是由某种变更触发,变更管理的最佳实践是使用自动化完成以下几个项目:
- 采用渐进式发布机制
- 迅速而准确的检测到问题的发生
- 安全迅速的回滚
需求预测和容量规划
- 必须有一个准确的自然增城需求预测模型,需求预测的时间应该超过资源获取时间
- 规划中必须有准确的非自然增长的需求来源统计
- 必须有周期性压力测试,以便准确的将系统原始资源与业务容量对应起来
资源部署
效率与性能
一个业务总体资源使用情况是由以下几个因素驱动的:
- 用户需求(流量)
- 可用容量
- 软件资源使用效率
SRE需要通过模型预测用户需求,合理部署和配置可用容量,改进软件以提高资源使用效率,这3个因素能够推动一个服务器的效率提升.
软件系统在负载上升的时候,会导致延迟升高.SRE的目标是根据一个预设的延迟目标部署和维护足够的容量,SRE和研发团队应该共同监控和优化整个系统的性能.