SRE体系及稳定性建设
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体系及稳定性建设相关推荐
- 分布式系统稳定性建设指南
文章目录 分布式系统稳定性建设总体视图 分布式系统稳定性建设目标 分布式系统稳定性评价指标 分布式系统稳定性建设模式 架构设计 容量设计 架构设计 安全设计 分布式系统稳定性建设路径 需求分析 需求实 ...
- 史上最长最全!围绕故障管理谈SRE体系建设
本文转载自dbaplus社群 id:dbaplus 本文根据石鹏老师在[deeplus直播第227期]线上分享演讲内容整理而成.(文末有获取本期PPT&回放的方式,不要错过) 石鹏 美图SRE ...
- 美团围绕故障管理谈SRE体系建设
本文根据石鹏老师在[deeplus直播第227期]线上分享演讲内容整理而成.(文末有获取本期PPT&回放的方式,不要错过) 石鹏 美图SRE负责人 2016年加入美图,运维技术专家,目前担任产 ...
- 堪称范本!腾讯运维转型之 SRE 体系建设
作者介绍 刘天斯,腾讯 IEG 在线营销 SRE 负责人,腾讯 T12 级技术专家,国家工程实验室兹聘专家.从事互联网技术运营近 16 年,热衷开源技术研究与应用,擅长海量服务运维(SRE)与规划.云 ...
- 目录:关于【稳定性建设之道】大纲速览
关于[稳定性]希望能够些分享我在这方面的经验,与诸位共同交流和学习,当初我负责服务的稳定性时,发现没有什么可参考的,大数内容都是零散的,不够全面,随着对服务稳定性建设,之后也慢慢逐渐形成自己的方法论和 ...
- 面对系统的稳定性、我们如何做好系统稳定性建设?
1.背景介绍 在移动互联网时代,用户群的积累比之前更容易,但同样,也会因为糟糕的用户体验,而快速流失用户,哪怕是号称独一无二的12306网站,也在不断优化系统来提升用户体验:而在后移动互联网的物联网时 ...
- 稳定性全系列(一)——如何做好系统稳定性建设
目录 一.背景介绍 二.故障源的分类 三.稳定性建设四要素 第一要素:人 第二要素:工具 第三要素:预案 第四要素:目标 四.稳定性建设四个方向 第一个方向:根基要抓牢(45%) 第二个方向:工作在日 ...
- 面向数据共享的教育数据标准体系研究与建设实践
点击上方蓝字关注我们 面向数据共享的教育数据标准体系研究与建设实践 杨琳1, 王炜1, 诸纪1, 王明政2 1 上海计算机软件技术开发中心,上海 201112 2 上海市教育委员会信息中心,上海 20 ...
- vivo 帐号服务稳定性建设之路
作者:vivo 互联网平台产品研发团队- Shi Jianhua.Sun Song 帐号是一个核心的基础服务,对于基础服务而言稳定性就是生命线.在这篇文章中,将与大家分享我们在帐号稳定性建设方面的经验 ...
最新文章
- python读取浮点数与源文件不同
- 原创 | 我被面试官给虐懵了,竟然是因为我不懂Spring中的@Configuration
- JavaWeb入门篇(6) 实现字符过滤器 解决全局字符乱码 实现模拟权限拦截
- 笔记本移交_创建完美的设计移交
- 视频特性TI(时间信息)和SI(空间信息)的计算工具:TIandSI-压缩码流版
- 【iCore4 双核心板_ARM】例程十八:USBD_VCP实验——虚拟串口
- 还不会财务管理分析?Python爬取全网财务分析数据
- 鸿蒙系统全屋定制,华为推出鸿蒙 1+2+N 全屋智能、智慧屏 V 系列,还有一款陪伴机器人小艺精灵...
- c语言自评报告怎么写,大学生学生自评报告怎么写
- 安防经济逐渐景气下行 安企是否能排除万难冲出阴霾?
- 30天自制操作系统第二天
- zynq嵌入式linux显示logo,如何定制嵌入式linux 启动logo(小企鹅)
- 拼多多新店扶持期是多久?
- 注水、占坑、瞎掰:起底机器学习学术圈的那些“伪科学”(附链接)
- 项目管理过程-5个管理过程组、10大管理知识域以及对应输入、工具技术和输出
- 腾讯云服务器nginx安装配置
- Python OpenCV开发MR智能人脸识别打卡系统(四、服务模块设计)
- 制造业从中国回流英国 英媒:工业史上的奇妙反转
- 三位水仙花数 Python
- 局域网联机一起过关的游戏