其他
我对 SRE 的理解
The following article is from 阿里巴巴中间件 Author 悟鹏
前言
在技术工作中,对于产品/基础技术研发和 SRE 两种角色,通常会有基于「是否侧重编码」的理解。对于产品研发转做 SRE ,经常会产生是否要「脱离编码工作」的看法,或者认为是否要「偏离对产品/基础技术的推进」。
SRE 概述
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 is "what happens when a software engineer is tasked with what used to be called operations."
职责:保障基础设施的稳定性和可扩展性 核心:解决问题 方法:通过操作类事务积累问题经验,通过编码等方式提升问题的解决效率
软件生命周期
软件工程有的时候和养孩子类似:虽然生育的过程是痛苦和困难的,但是养育孩子成人的过程才是真正需要花费绝大部分精力的地方。 一个软件系统的 40%~90% 的花销其实是花在开发建设完成之后不断维护过程中的。
专注于设计和构建软件系统 专注于整个软件系统生命周期管理,包括从其设计到部署,历经不断改进,最后顺利下线
稳定性保障价值
通过问题发生时客户直接反馈的影响程度、紧急程度,感受到稳定性给客户带来的焦虑 通过问题处理结束后客户的反馈,感受到客户对稳定性保障的感谢或愤怒 通过事后在营收状况、客户规模变化,感受到稳定性对业务营收的影响 通过产品规划的的延期,感受到稳定性对产品迭代的影响
保障客户的产品体验,满足客户对约定的可靠性诉求 加速业务迭代,满足业务对稳定性诉求,业务注意力集中在更快速推出满足客户需求的功能
SRE 如何保障稳定性
人为导致,依赖专家经验 一系列因素综合导致 不可避免 100% 保障没有必要
可控性 可观测 稳定性保障最佳实践
发布管理
重点解决发布导致的人为稳定性问题 包括发布前重要变更评审和发布中变更动作管理等
操作管理
重点解决黑屏操作导致的人为稳定性问题 包括统一集群操作入口、集群操作权限管理、集群操作审计等
设计评审
重点解决软件系统设计阶段应用稳定性保障最佳实践 包括集群方案评审和重要功能设计评审等
监控
重点解决软件系统运行态的感知能力 包括监控收集/可视化系统的搭建和维护等
日志
重点解决软件系统的问题可排查能力 包括日志收集/存储/查询/分析系统的搭建和维护等
巡检
重点解决软件系统功能是否正常的主动探测能力 包括巡检服务的搭建、通用巡检逻辑的开发维护等
告警
重点解决异常的及时触达需求 包括告警系统的搭建、告警配置管理、告警途径管理、告警分析等
项目质量验收标准 项目安全生产标准 项目发布前 checklist 项目 TechReview 模板 项目 Kick-off 模板 项目管理规范 etc.
| |
| |
| |
| |
| |
|
| |
| |
| |
| |
| |
|
当最佳实践可以通过文档进行规范化,接下来就可以提供工具或服务将其低成本应用,使得稳定性保障最佳实践成为基础设施。
共赢,携手服务业务
产品/基础技术研发:专注于设计和构建软件系统 SRE:专注于整个软件系统生命周期管理,包括从其设计到部署,历经不断改进,最后顺利下线
小结
往期推荐
技术琐话
以分布式设计、架构、体系思想为基础,兼论研发相关的点点滴滴,不限于代码、质量体系和研发管理。