SRE体系及稳定性建设

  • SRE
    • SRE概念
    • SRE的工作职责
  • 大型互联网的5个生命周期中SRE的职责
    • 代码编写
    • 资源规划
    • 系统上线
    • 运行保障
    • 系统下线
  • 稳定性建设
    • SLA
    • MTTR
    • 故障管理(三段式)
      • 故障前
      • 故障中
      • 故障后

SRE

SRE概念

SRE在国内现在也叫应用运维,是面向用户稳定性的,也就是说对用户的服务质量负责,这也给了SRE更高的要求,要有全局视角,要对系统的全生命周期进行管理,把质量和成本工作做到前面,需要一系列的流程.制度.规范和一系列的工具提高管理、质量、自动化效率。

SRE以用户稳定性为目标,业务对资源的规划管理周转效率、持续集成上线效率、质量管理效率等。

SRE的工作职责

  • 1、保障线上服务的稳定性
  • 2、建设工具/平台/基础设施 提升效率
  • 3、用技术手段来控制、优化服务的运行成本

大型互联网的5个生命周期中SRE的职责

代码编写

SRE的主要工作是搭建和维护代码管理系统,为CI/CD做好准备,目前最常用的就是GitLab了。

资源规划

  • 1、方案评估
    根据需求规划系统的基础资源,包括机型(或容器规格)、机房、资源数量、存储、4/7层接入方案、域名证书以及是否用CDN等。
  • 2、资源申请
    将评估后的资源各自走审批流程。
  • 3、资源管理
    对业务使用的海量主机、容器、域名、证书、LB、CDN、存储、网络、专线等资源进行管理,体量上来后一定要建设CMDB用系统管,各类信息做到可快速检索,一般大厂存储、CDN、网络、专线都有专门团队负责,SRE只要管好自己业务的使用即可,强调一点,资源一定要制定一套科学的命名规则。
  • 4、权限管理
    大型系统人多、环境复杂,SRE需要对权限做详细的规划,制定SRE、开发序列对应每种资源新手和老工程师的权限规则,理想情况开发只要管好代码即可,任何prod环境操作都只能由SRE处理,开发是不允许有root权限的,开发和测试环境视情况处理,所有操作做好审计方案。
  • 5、资源操作
    因为面向的是大型互联网系统,要保障对海量资源进行高效批量的操作,就需要借助一些技术工具了,比如主机操作类似ansilbe、saltstack,为了安全管理也要结合安全跳板机的使用,容器、LB、证书签发等也都有对应的技术方案,这些是需要SRE来Ops的。

系统上线

  • 1、环境规划
    一个成体系的系统一般会有4套环境:开发环境(dev)、测试环境(stag)、预发布环境(prew)、生产环境(prod),环境之间相互独立,视情况做网络隔离,我在新浪碰到了几次开发同学把测试环境的数据发布到了生产环境,造成很差的用户体验,所以规划的时候,低安全等级的网络到高安全等级加墙还是有必要的,SRE提前把环境规划好、上线流程制定好,会减少很多变更类故障。
  • 2、环境搭建
    主机环境配置,看似有了公有云、容器后,只要把镜像做好,这块工作要简单很多,但其实也不然,首先相对云主机而言,物理机的性能高成本低,量能跑起来的前提下用物理机最划算,所以公有云一般作为弹性资源;二是经过论证,不是所有的服务都适合上容器,所以现实情况还是会有大量的物理机运维,各种装包、配置、内核和系统调优、维修、过保机器替换等,反而是在原来的基础之上增加了打容器镜像的工作,这就是实际情况,环境搭建、系统调优、软件包升级的工作量还是很大,而且这块工作经常会出现各种奇葩的事情,特别是搭建GPU机器学习的环境,不是这个库不对那个依赖版本不对的,一搞就是半天,不过从趋势上看这块工作我觉得会越来越标准化。
    接入层配置,包含从域名、证书、解析、负载均衡4/7层、后端这一套配置流程,其中4/7层选择、调度策略、连接数是否够用等等都是需要根据具体业务情况制定技术方案。
  • 3、CI/CD
    协同开发制定CI/CD的技术方案,为Dev提供部署系统(大厂有专门团队研发),制定上线审批流程,按理生产环境的上线应由SRE操作,但因为开发和SRE的数量差距大,成长期的系统迭代又快,由谁上线就视情况处理了,我们这处理方式是牵涉到代码变更的上线由开发操作,其余的迁移扩缩容等由SRE处理。

运行保障

SRE是质量担当,面向的就是用户稳定性,所以系统运行保障是SRE工作最重的阶段,也是占用精力、工作量最大的部分,质量越好,意味着故障越少,下面就从故障全生命周期的角度对这块的工作做个梳理。

  • 1、故障前——目标:减少问题流入“故障中”
    ①变更管控
    ②容器管理
    ③灾备建设
    ④业务巡检
    ⑤活动重保
    ⑥故障演练
    ⑦日志管理
    ⑧技术调优
    ⑨服务管制
  • 2、故障中——目标:快速发现故障,止损
    ①监控告警
    ②故障定位
    ③预案执行
  • 3、故障后——目标:消灭同类故障
    ①故障复盘

系统下线

资源释放

系统下线阶段的主要工作就是资源释放,不仅仅要释放服务器,关联的域名、LB、ACL等等资源要全部释放,干干净净的来、干干净净的去。

稳定性建设

SLA

业内喜欢用SLA (服务等级协议,全称:service level agreement)来衡量系统的稳定性,对互联网公司来说就是网站服务可用性的一个保证。9越多代表全年服务可用时间越长服务越可靠,停机时间越短。就以一个标准99.99%为例,停机时间52.6分钟,平均到每周也就是只能有差不多1分钟的停机时间,也就是说网络抖动这个时间可能就没了。保证一个系统四个9或者更高的五个9,需要一套全体共识严格标准的规章制度,没有规矩不成方圆。创建的规范有如下几种:

  • 1、研发规范、自身稳定;
  • 2、事务中不能包含远程调用;
  • 3、超时时间和重试次数要合理;
  • 4、表数据操作必须double check,合理利用索引,避免出现慢查询、分库分表不走分表键;
  • 5、没有有效的资源隔离, 避免不同业务共用一个线程池或连接池;
  • 6、合理的系统拓扑,禁止不合理服务依赖,能依赖就依赖,否则同步尽量改成异步弱依赖;
  • 7、精简的代码逻辑;
  • 8、核心路径流程必须进行资源隔离,确保任何突发情况主流程不能受影响。

MTTR

MTTR即平均恢复时间,里面包括了MTTI(平均识别时间)、MTTK(平均定位时间)、MTTF(平均恢复时间)、MTTV(平均验证时间)。我们提供工具赋能、制定完备预案实现一键应急、平时自动校验等来缩短整体MTTR的时间。

故障管理(三段式)

  • 故障前:故障预防、灾备预案
  • 故障中:故障发现、故障定位、故障恢复
  • 故障后:故障复盘、故障改进

故障前

监控体系的建设(构建立体化的监控:全链路监控)

  • 基础准备:监控大盘-基础监控
  • 基础准备:监控大盘-SLA
  • 基础准备:监控大盘-日志
  • 基础准备:监控大盘-客户端监控
  • 基础准备:监控大盘-客户端监控
  • 基础准备:架构设计、 梳理
  • 基础准备:容量评估
  • 基础准备:灾备预案/灾备演练
  • 基础准备:灾备预案/故障演练

故障中

  • 故障管理—监控告警
  • 故障管理-日志分析
  • 故障管理-链路跟踪
  • 故障管理-预案执行
  • 故障管理-恢复结果确认

故障后

  • 故障复盘:关键时间线回顾
  • 故障复盘:黄金三问
  • 故障复盘:故障报告

SRE体系及稳定性建设相关推荐

  1. 分布式系统稳定性建设指南

    文章目录 分布式系统稳定性建设总体视图 分布式系统稳定性建设目标 分布式系统稳定性评价指标 分布式系统稳定性建设模式 架构设计 容量设计 架构设计 安全设计 分布式系统稳定性建设路径 需求分析 需求实 ...

  2. 史上最长最全!围绕故障管理谈SRE体系建设

    本文转载自dbaplus社群 id:dbaplus 本文根据石鹏老师在[deeplus直播第227期]线上分享演讲内容整理而成.(文末有获取本期PPT&回放的方式,不要错过) 石鹏 美图SRE ...

  3. 美团围绕故障管理谈SRE体系建设

    本文根据石鹏老师在[deeplus直播第227期]线上分享演讲内容整理而成.(文末有获取本期PPT&回放的方式,不要错过) 石鹏 美图SRE负责人 2016年加入美图,运维技术专家,目前担任产 ...

  4. 堪称范本!腾讯运维转型之 SRE 体系建设

    作者介绍 刘天斯,腾讯 IEG 在线营销 SRE 负责人,腾讯 T12 级技术专家,国家工程实验室兹聘专家.从事互联网技术运营近 16 年,热衷开源技术研究与应用,擅长海量服务运维(SRE)与规划.云 ...

  5. 目录:关于【稳定性建设之道】大纲速览

    关于[稳定性]希望能够些分享我在这方面的经验,与诸位共同交流和学习,当初我负责服务的稳定性时,发现没有什么可参考的,大数内容都是零散的,不够全面,随着对服务稳定性建设,之后也慢慢逐渐形成自己的方法论和 ...

  6. 面对系统的稳定性、我们如何做好系统稳定性建设?

    1.背景介绍 在移动互联网时代,用户群的积累比之前更容易,但同样,也会因为糟糕的用户体验,而快速流失用户,哪怕是号称独一无二的12306网站,也在不断优化系统来提升用户体验:而在后移动互联网的物联网时 ...

  7. 稳定性全系列(一)——如何做好系统稳定性建设

    目录 一.背景介绍 二.故障源的分类 三.稳定性建设四要素 第一要素:人 第二要素:工具 第三要素:预案 第四要素:目标 四.稳定性建设四个方向 第一个方向:根基要抓牢(45%) 第二个方向:工作在日 ...

  8. 面向数据共享的教育数据标准体系研究与建设实践

    点击上方蓝字关注我们 面向数据共享的教育数据标准体系研究与建设实践 杨琳1, 王炜1, 诸纪1, 王明政2 1 上海计算机软件技术开发中心,上海 201112 2 上海市教育委员会信息中心,上海 20 ...

  9. vivo 帐号服务稳定性建设之路

    作者:vivo 互联网平台产品研发团队- Shi Jianhua.Sun Song 帐号是一个核心的基础服务,对于基础服务而言稳定性就是生命线.在这篇文章中,将与大家分享我们在帐号稳定性建设方面的经验 ...

最新文章

  1. python读取浮点数与源文件不同
  2. 原创 | 我被面试官给虐懵了,竟然是因为我不懂Spring中的@Configuration
  3. JavaWeb入门篇(6) 实现字符过滤器 解决全局字符乱码 实现模拟权限拦截
  4. 笔记本移交_创建完美的设计移交
  5. 视频特性TI(时间信息)和SI(空间信息)的计算工具:TIandSI-压缩码流版
  6. 【iCore4 双核心板_ARM】例程十八:USBD_VCP实验——虚拟串口
  7. 还不会财务管理分析?Python爬取全网财务分析数据
  8. 鸿蒙系统全屋定制,华为推出鸿蒙 1+2+N 全屋智能、智慧屏 V 系列,还有一款陪伴机器人小艺精灵...
  9. c语言自评报告怎么写,大学生学生自评报告怎么写
  10. 安防经济逐渐景气下行 安企是否能排除万难冲出阴霾?
  11. 30天自制操作系统第二天
  12. zynq嵌入式linux显示logo,如何定制嵌入式linux 启动logo(小企鹅)
  13. 拼多多新店扶持期是多久?
  14. 注水、占坑、瞎掰:起底机器学习学术圈的那些“伪科学”(附链接)
  15. 项目管理过程-5个管理过程组、10大管理知识域以及对应输入、工具技术和输出
  16. 腾讯云服务器nginx安装配置
  17. Python OpenCV开发MR智能人脸识别打卡系统(四、服务模块设计)
  18. 制造业从中国回流英国 英媒:工业史上的奇妙反转
  19. 三位水仙花数 Python
  20. 局域网联机一起过关的游戏

热门文章

  1. 港媒:众安在线将获发香港虚拟保险牌照
  2. Exadata 机器介绍
  3. Struts2 S标签 数字格式化成金额输出
  4. 个人php发卡系统,荔枝个人发卡系统PHP源码 v2.0.0
  5. cs439辅导 进程和线程以及死锁
  6. OFFICE使用技巧PDF文件
  7. 同表复制一列的数据到另一列
  8. EmEditor如何取消开机自启
  9. 硬件工程师招聘应届生一般会考察什么,有什么要求,全面解析
  10. postgresql更改数据目录