这是阿里技术专家对 SRE 和稳定性保障的理解

简介: 在技术工作中,对于产品/基础技术研发和 SRE 两种角色,通常会有基于「是否侧重编码」的理解。对于产品研发转做 SRE ,经常会产生是否要「脱离编码工作」的看法,或者认为是否要「偏离对产品/基础技术的推进」。

头图.png

 

前言

在技术工作中,对于产品/基础技术研发和 SRE 两种角色,通常会有基于「是否侧重编码」的理解。对于产品研发转做 SRE ,经常会产生是否要「脱离编码工作」的看法,或者认为是否要「偏离对产品/基础技术的推进」。

基于过往的技术研发和稳定性保障的经验,分享下个人对 SRE 的理解,探讨「面向产品/基础技术的研发」和「稳定性保障」两种角色之间的协作关系,更好地为业务服务。

SRE 概述

最早讨论 SRE 来源于 Google 这本书《Site Reliability Engineering: How Google Runs Production Systems》。由 Google SRE 关键成员分享他们是如何对软件进行生命周期的整体性关注,以及为什么这样做能够帮助 Google 成功地构建、部署、监控和运维世界上现存最大的软件系统。

最早讨论 SRE 来源于 Google 这本书《Site Reliability Engineering: How Google Runs Production Systems》。由 Google SRE 关键成员分享他们是如何对软件进行生命周期的整体性关注,以及为什么这样做能够帮助 Google 成功地构建、部署、监控和运维世界上现存最大的软件系统。

Site reliability engineering (SRE) is a discipline that incorporates aspects of software engineering and applies them to infrastructure and operations problems. The main goals are to create scalable and highly reliable software systems.

其中有句形象描述 SRE 工作的描述:

SRE is “what happens when a software engineer is tasked with what used to be called operations.”

即 SRE 的目标是构建可扩展和高可用的软件系统,通过软件工程的方法解决基础设施和操作相关的问题。

在 Google SRE 书中,对 SRE 日常工作状态有个准确的描述:至多 50% 的时间精力处理操作相关事宜,50% 以上的精力通过软件工程保障基础设施的稳定性和可扩展性。

基于上述描述,我对 SRE 的理解是:

  • 职责:保障基础设施的稳定性和可扩展性。
  • 核心:解决问题。
  • 方法:通过操作类事务积累问题经验,通过编码等方式提升问题的解决效率。

软件生命周期

Google SRE 一书中,对软件工程从生命周期角度有一个很形象的描述:

软件工程有的时候和养孩子类似:虽然生育的过程是痛苦和困难的,但是养育孩子成人的过程才是真正需要花费绝大部分精力的地方。

一个软件系统的 40%~90% 的花销其实是花在开发建设完成之后不断维护过程中的。

项目生命周期中,设计和构建软件系统的时间精力占比,通常是少于系统上线之后的维护管理。为了更好地维护系统可靠运行,需要考虑两种类型的角色:

  • 专注于设计和构建软件系统。
  • 专注于整个软件系统生命周期管理,包括从其设计到部署,历经不断改进,最后顺利下线。

第一类角色对应产品/基础技术研发,第二类角色对应 SRE,二者的共同目标均是为了达成项目目标,协同服务好业务。

稳定性保障价值

针对稳定性的影响,直接参与处理客户问题的同学会更有体感:

  • 通过问题发生时客户直接反馈的影响程度、紧急程度,感受到稳定性给客户带来的焦虑。
  • 通过问题处理结束后客户的反馈,感受到客户对稳定性保障的感谢或愤怒。
  • 通过事后在营收状况、客户规模变化,感受到稳定性对业务营收的影响。
  • 通过产品规划的的延期,感受到稳定性对产品迭代的影响。

稳定性保障的价值由此凸显:

  • 保障客户的产品体验,满足客户对约定的可靠性诉求。
  • 加速业务迭代,满足业务对稳定性诉求,业务注意力集中在更快速推出满足客户需求的功能。

SRE 如何保障稳定性

稳定性问题通常会有这些特征:

  • 人为导致,依赖专家经验
  • 一系列因素综合导致
  • 不可避免
  • 100% 保障没有必要

线上稳定性问题,人为操作不当导致的比例很高,集中在 发布 和 线上运维 两个环节,均是高频操作。对于复杂系统,这两个环节对专家经验有较强的依赖。

发生的稳定性问题通常具有系统性的特征,即非单个功能组件缺陷导致,而是由一系列因素综合作用导致,如缺少监控告警导致不能及时感知,缺少日志不能有助于快速定位问题,缺少良好的问题排查流程导致依赖个人能力,缺少良好的协调沟通极致导致问题处理时长增加、客户影响程度加剧等。

问题是不可避免的,流量的突增、服务器/网络/存储的损坏、未覆盖的输入等,均会诱发问题的出现。

业务对外有 SLA,向客户承诺一定程度的稳定性,未达到时按照协议进行赔付,同时问题又不可不免,在满足内部 SLO 标准的前提下继续提升稳定性,会带来更高的实现成本,对业务的收益增量也会更小。

SRE 需要对问题特征有深入理解,系统性设计和实施解决方案,并抓住一段时间内的主要问题进行解决。一种可参考的整体解决方案如下:

1.png

落地过程中,可先从如下三个抓手系统解决:

  • 可控性
  • 可观测
  • 稳定性保障最佳实践

可控性方面,包括如下三个主要维度:

  • 发布管理

    • 重点解决发布导致的人为稳定性问题。
    • 包括发布前重要变更评审和发布中变更动作管理等。
  • 操作管理

    • 重点解决黑屏操作导致的人为稳定性问题。
    • 包括统一集群操作入口、集群操作权限管理、集群操作审计等。
  • 设计评审

    • 重点解决软件系统设计阶段应用稳定性保障最佳实践。
    • 包括集群方案评审和重要功能设计评审等。

可观测方面,包括如下几个重要维度:

  • 监控

    • 重点解决软件系统运行态的感知能力。
    • 包括监控收集/可视化系统的搭建和维护等。
  • 日志

    • 重点解决软件系统的问题可排查能力。
    • 包括日志收集/存储/查询/分析系统的搭建和维护等。
  • 巡检

    • 重点解决软件系统功能是否正常的主动探测能力。
    • 包括巡检服务的搭建、通用巡检逻辑的开发维护等。
  • 告警

    • 重点解决异常的及时触达需求。
    • 包括告警系统的搭建、告警配置管理、告警途径管理、告警分析等。

稳定性保障最佳实践,是从历史问题和业界实践方面抽象出意识、流程、规范、工具,在系统设计之初就融入其中,并在系统整个生命周期中加以使用,如通过模板固化最佳实践:

  • 项目质量验收标准
  • 项目安全生产标准
  • 项目发布前 checklist
  • 项目 TechReview 模板
  • 项目 Kick-off 模板
  • 项目管理规范
  • etc.

一个例子:

2.png

为了便于理解,可以再针对 check 项形成分级,便于交流和进行项目稳定性评估:

3.png

当最佳实践可以通过文档进行规范化,接下来就可以提供工具或服务将其低成本应用,使得稳定性保障最佳实践成为基础设施。SRE 需要在稳定性相关的方法论和实践方面不断迭代,自上而下设计,自下而上反馈,合理、可靠保障稳定性。

共赢,携手服务业务

  • 产品/基础技术研发:专注于设计和构建软件系统。
  • SRE:专注于整个软件系统生命周期管理,包括从其设计到部署,历经不断改进,最后顺利下线。

这两类角色是相互协作、相互服务的关系,拥有共同的目标:满足业务需求,更好服务业务。

SRE 通常会横向支撑多个项目,对线上问题的类型、解决实践有更为全面的理解和思考,基于此会形成最佳实践的理论、工具或服务,为研发提供理论、工具的支持,也可以在此基础上产品化稳定性保障解决方案,为更多的客户服务,创造更大的价值。产品/基础技术研发对业务需求、功能/技术细节有更深入的理解,一方面直接带来业务价值,一方面可通过实践为稳定性保障带来切合实际的需求,进一步和 SRE 共同保障稳定性。

两种类型的角色,需要朝着共同的目标并肩协作,与业务共同发展,实现共赢

小结

SRE 由于工作的性质,在横向方面会服务大量的业务,以实践积累对稳定性保障问题域的深入理解和稳定性保障重要性的深刻认知,在纵向方面会通过技术手段将稳定性保障最佳实践进行沉淀和应用;同时眼光又是与研发、业务一齐向前看,综合技术和管理创造价值。

以上是从个人角度对 SRE 及稳定性保障的理解,重点在于解决问题和创造更大的价值。

作者:悟鹏

原文链接

本文为阿里云原创内容,未经允许不得转载

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514380.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Flink 助力美团数仓增量生产

简介: 本文由美团研究员、实时计算负责人鞠大升分享,主要介绍 Flink 助力美团数仓增量生产的应用实践。内容包括:1、数仓增量生产;2、流式数据集成;3、流式数据处理;4、流式 OLAP 应用;5、未来规…

PHP与MySQL外文文献译文和原文_读懂外文文献的秘诀在这里丨49周新闻

搜狗AI合成主播雅妮为你带来【2020年第49周】搜狗新闻联播全 文01搜狗翻译「文档翻译」功能新增“医疗”和“金融”专业术语翻译问君能有几多愁,文献查询挠破头。我本无心空对月,外文翻译更加虐。还在因为如何正确翻译文献资料发愁的朋友,请你…

微软云打印将直接与 OneDrive 集成;全球 90 多家组织敦促苹果放弃引入”儿童安全”功能计划……...

NEWS本周新闻回顾百度发布无人车出行服务平台“萝卜快跑”百度发布无人车出行服务平台“萝卜快跑”。截至2021年上半年,百度Apollo自动驾驶出行服务已累计接待乘客超过40万人次,测试里程超过1400万公里,自动驾驶专利数量超过2900件&#xff0…

「直播实录」中英数据库专家谈:数据库的过去、未来和现在

简介: 数据库是什么?未来的数据会被存在DNA里?数据库里的数据湖是什么? 1月16日,扫地僧做了一场直播,请到我的同事——数据库资深专家封神,和来自帝国理工的高级讲师Thomas Heinis(托…

html dom 知乎,知乎登录页 - 粒子运动效果

简介由于群友的号召,清明时节得空,所以仿知乎登录页面,基于canvas实现了一个粒子(Particle)随机运动的动画效果。DemoDemo源码独立包安装 npm i zhihu-particle --save #使用npm安装复制代码 yarn add zhihu-particle #使用yarn安装复制代码基…

alm系统的使用流程_支持MBSE的企业信息管理系统发展与启示

导读:本文介绍了模型管理与MBSE、产品生命周期管理(PLM)的概念及其之间的关系,分析了不同行业的模型管理现状,提出了模型管理的解决方案与技术方向,最后给出了建设企业信息管理系统的建议,以期为企业信息管理系统支持M…

如何快速部署一个Elasticsearch集群?

作者:无敌码农 来源:无敌码农今天的文章给大家介绍下Elasticsearch这一目前在“搜索”和“分析”领域使用十分广泛的技术组件。并演示如何快速构建一个Elasticsearch集群。Elasticsearch概述Elasticsearch是一款非常强大的开源“搜索”及“分析”引擎。除…

对话阿里云李飞飞:下一代企业级数据库6大技术方向

简介: 对话李飞飞,不仅仅是一次简单的采访,对老鱼来说,也是一种收获,因为,在数据库领域李飞飞拥有敏锐的触角,对数据库发展趋势有着独到的见解和洞察。 题图:DTCC 2020大会专访合影&…

云企业网CEN-TR打造企业级私有网络

简介: 为了满足企业大规模、多样化的组网和网络管理需求,云企业网(CEN)提出了转发路由器TR(Transit Router)的概念。在每个地域内创建一个转发路由器,可以连接大量VPC、VBR,作为您在…

孩子不念书了学计算机,李玫瑾教授:孩子是不是学习的料不用等长大,上幼儿园就能看出来...

读书是通往成功的一个捷径,但却并非所有人都能走这个捷径。虽然家长都不信,也不想相信,但有些孩子就是不适合学习,如果走一些其他的路可能还会有不一样的人生,但要是在学习这一条路上一条走到黑,未来一定不…

这个数据仓库,竟然把淘宝和京东干翻了。。

守着金山讨饭吃,乍听有些不可思议,但不少企业正遭遇这样的窘况。大数据被誉为“新石油”,如何管理并洞悉数据的价值,是企业未来发展的核心竞争力。进入大数据时代,数据规模与日俱增。另一方面,数据仓库的市…

如何做好性能压测丨压测环境设计和搭建

简介:一般来说,保证执行性能压测的环境和生产环境高度一致是执行一次有效性能压测的首要原则。有时候,即便是压测环境和生产环境有很细微的差别,都有可能导致整个压测活动评测出来的结果不准确。 一般来说,保证执行性能…

疫情之下的科技普惠:阿里云科技驱动中小企业数字化

2020 年到2021年,一场疫情给全球经济发展带来了重创。在受到疫情影响之时,各行各业尽展众相,一些企业进行着自我变革;一些企业还未来得及自救,却已被淘汰。更受疫情冲击的,是各行各业中的中小型企业&#x…

一则有趣的机场广告

作者:小枣君来源:鲜枣课堂前几天路过深圳宝安机场时,有一个大屏广告,成功地吸引了我的注意。我把它拍了下来,如图所示。广告中,一位商务人士从胸前口袋里,掏出了一个银灰色的小盒子。广告语写着…

3+1保障:高可用系统稳定性是如何炼成的?

简介: 影响系统稳定性的架构设计有哪些?一个可持续保障的研发运维流程机制是怎样的?如何培养团队技术人员的意识和能力?本文作者以团队技术负责人的视角,从三大技术要素和一个业务要素,分享在稳定性建设上的…

从KPI到OKR,高阶产品人如何推动业务高速增长

简介: 不管是核心大目标,还是O(Objectives),或者北极星指标,奇妙等式等等,最后都需要核心组织协同方式来推动整个目标聚焦以及过程的落地。 作为产品经理人,相信很多人都遇到过以下的…

有没有五金产品展开计算机软件,花样算法猫腻不断 全屋定制这本账真心不好算...

花样算法猫腻不断 全屋定制这本账真心不好算人民网2017-03-14 09:50[摘要]选材差不多、尺寸也差不多,在不同定制品牌之间,不要说终的产品价格相差多少,就光中间的计价过程估计就能让人头疼好一阵子了。说到定制家具产品的账要怎么算。有过消费…

从Hadoop到云原生,谈如何消除程序员35岁危机

作者:小智 来源:智领云科技前言35岁这个“职场枯荣线”,确实真实存在。不知从何时起,很多企业将入职门槛限定在35岁以下,“35岁”已然成为职场中年的魔咒。尤其是程序员这个群体,年龄绝对是最难以隐忍的痛点…

Serverless Kubernetes:理想,现实与未来

简介: 当前 Serverless 容器的行业趋势如何?有哪些应用价值?如果 Kubernetes 天生长在云上,它的架构应该如何设计?Serverless 容器需要哪些基础设施?阿里云容器服务产品负责人易立及阿里云 Serverless Kube…

这只猫在云端定居了?边缘计算在天猫精灵云应用上的落地实践

IoT的概念早已飞入寻常百姓家,在你我的日常生活中发挥着“智能”作用。比如,智能家居、智慧照明、GPS 导航、手机计步器等。未来,随着用户和技术的延伸和拓展,物联网的信息交换和通信价值将会被继续放大。 那么问题来了&#xff…