3.2.4. SRE¶
SRE: Site Reliability Engineering(网站可靠性工程师)
“当你让软件工程师设计运维功能时,SRE 就产生了。SRE 可以帮助团队在发布新功能和确保用户可靠性之间找到平衡。标准化和自动化是 SRE 模型的两大重要部分。站点可靠性工程师应始终致力于增强和自动化运维任务。”——谷歌的工程副总裁 Ben Treynor Sloss
运维和开发两个岗位的技能要求被认为是完全不同的,而 SRE 的角色想尝试把这两份工作结合起来。
在初创公司做 DevOps 实践最有效的方式是组建 SRE 小组。我见过一些不同的方案,但是我相信初创公司(尽早)招聘专职 SRE 可以解放开发人员,让开发人员专注于特定的挑战。SRE 可以把精力放在改善工具(流程)上,以提高开发人员的生产力。不仅如此,SRE 还专注于确保交付给客户的产品是可靠且安全的。
开发的指标是产品研发速度,因此激励员工尽可能快的创建新的代码; 而运维的指标取决于服务的可靠性,因此对高频率的更改提出抗议。
SRE的目的是平衡两个团队在关注点的冲突,给这个冲突提供一个缓冲区。 当这个缓冲区还未满时,研发可以提高创新速度。 当这个缓冲区快满时,研发就需要更多的考虑可靠性。
一个公司的最终目的便是盈利,在可用性和成本之间是需要一定的权衡。 用户对产品的体验也是需要在可靠性和创新之间权衡。 而用户对不同的产品敏感度也是不同的,在不同产品中的可靠性也需要权衡。 可靠性团队与创新团队的关注点冲突也需要权衡。
DevOps 和 SRE¶
DevOps 是指对企业文化、业务自动化和平台设计等方面进行全方位变革,从而实现迅捷、优质的服务交付,提升企业价值和响应能力。SRE 可视为 DevOps 的实施。
和 DevOps 一样,SRE 也与团队文化和关系密切相连。SRE 和 DevOps 都致力于搭建开发团队和运维团队之间的互通桥梁,以便加快交付服务。
DevOps 和 SRE 实践都可以实现更快的应用开发生命周期、改进的服务质量和可靠性,以及缩短的 IT 应用开发时间等优势。
但 SRE 有所不同的是,DevOps 依赖于开发团队中的站点可靠性工程师,这些工程师也要有解决通信和工作流程问题的运维背景。
站点可靠性工程师本身要求职责重叠,兼具开发团队和运维团队的技能。
DevOps 团队的开发人员常常疲于处理运维任务,需要拥有更专业运维技能,而 SRE 就能派上用场。
在代码和新功能方面,DevOps 专注于有效通过开发流程,而 SRE 专注于通过创建新功能来平衡站点可靠性。
基于容器技术、Kubernetes 和微服务的现代化应用平台是落实 DevOps 实践的关键所在,可帮助企业交付安全的创新软件服务。
参考¶
什么是 SRE?它和 DevOps 是怎么关联的: https://zhuanlan.zhihu.com/p/51112330
SRE:Google 运维解密 (心得): https://blog.csdn.net/python_bobo/article/details/88225516