落地过程中,可先从如下三个抓手系统解决:
-
可控性
-
可观测
-
稳定性保障最佳实践
可控性方面,包括如下三个主要维度:
-
发布管理
-
-
重点解决发布导致的人为稳定性问题
-
包括发布前重要变更评审和发布中变更动作管理等
-
-
操作管理
-
-
重点解决黑屏操作导致的人为稳定性问题
-
包括统一集群操作入口、集群操作权限管理、集群操作审计等
-
-
设计评审
-
-
重点解决软件系统设计阶段应用稳定性保障最佳实践
-
包括集群方案评审和重要功能设计评审等
-
可观测方面,包括如下几个重要维度:
-
监控
-
-
重点解决软件系统运行态的感知能力
-
包括监控收集/可视化系统的搭建和维护等
-
-
日志
-
-
重点解决软件系统的问题可排查能力
-
包括日志收集/存储/查询/分析系统的搭建和维护等
-
-
巡检
-
-
重点解决软件系统功能是否正常的主动探测能力
-
包括巡检服务的搭建、通用巡检逻辑的开发维护等
-
-
告警
-
-
重点解决异常的及时触达需求
-
包括告警系统的搭建、告警配置管理、告警途径管理、告警分析等
-
稳定性保障最佳实践,是从历史问题和业界实践方面抽象出意识、流程、规范、工具,在系统设计之初就融入其中,并在系统整个生命周期中加以使用,如通过模板固化最佳实践:
-
项目质量验收标准
-
项目安全生产标准
-
项目发布前 checklist
-
项目 TechReview 模板
-
项目 Kick-off 模板
-
项目管理规范
-
etc.
一个例子:
维度 |
评估项 |
可观测 |
|
可灰度 |
|
可回滚 |
|
可保护 |
|
可控成本 |
|
易于运维 |
|
为了便于理解,可以再针对 check 项形成分级,便于交流和进行项目稳定性评估:
级别 |
标准 |
L0 |
|
L1 |
|
L2 |
|
L3 |
|
L4 |
|
L5 |
|
当最佳实践可以通过文档进行规范化,接下来就可以提供工具或服务将其低成本应用,使得稳定性保障最佳实践成为基础设施。
SRE 需要在稳定性相关的方法论和实践方面不断迭代,自上而下设计,自下而上反馈,合理、可靠保障稳定性。
共赢,携手服务业务
再回顾下软件系统生命周期中的两类角色:
-
产品/基础技术研发:专注于设计和构建软件系统
-
SRE:专注于整个软件系统生命周期管理,包括从其设计到部署,历经不断改进,最后顺利下线
这两类角色是相互协作、相互服务的关系,拥有共同的目标:满足业务需求,更好服务业务。
SRE 通常会横向支撑多个项目,对线上问题的类型、解决实践有更为全面的理解和思考,基于此会形成最佳实践的理论、工具或服务,为研发提供理论、工具的支持,也可以在此基础上产品化稳定性保障解决方案,为更多的客户服务,创造更大的价值。
产品/基础技术研发对业务需求、功能/技术细节有更深入的理解,一方面直接带来业务价值,一方面可通过实践为稳定性保障带来切合实际的需求,进一步和 SRE 共同保障稳定性。
两种类型的角色,需要朝着共同的目标并肩协作,与业务共同发展,实现共赢。
小结
SRE 由于工作的性质,在横向方面会服务大量的业务,以实践积累对稳定性保障问题域的深入理解和稳定性保障重要性的深刻认知,在纵向方面会通过技术手段将稳定性保障最佳实践进行沉淀和应用;同时眼光又是与研发、业务一齐向前看,综合技术和管理创造价值。
以上是从个人角度对 SRE 及稳定性保障的理解,重点在于 解决问题 和 创造更大的价值。
References
-
豆瓣 SRE
https://book.douban.com/subject/26875239/
-
wikipedia: Site reliability engineering
https://en.wikipedia.org/wiki/Site_reliability_engineering
-
wikipedia: Controllability
https://en.wikipedia.org/wiki/Controllability
-
wikipedia: Observability
https://en.wikipedia.org/wiki/Observability
-
site: google sre
https://sre.google/
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91442 人正在系统学习中
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!