1、传统运维
1.1 运维职责
运维工程师除去基本的职责还有其他的工作职责:
- 质量:保障并不断提升服务的可用性,确保用户数据安全,提升用户体验。
- 效率:用自动化的工具/平台提升软件在研发生命周期中的工程效率。
- 成本:通过技术手段优化服务架构、性能调优;通过资源优化组合降低成本、提升ROI。
1.2 运维工作内容
- 事件管理:目标是在服务出现异常时尽可能快速的恢复服务,从而保障服务的可用性。
- 问题发现:在系统出现异常的时候可以快速的发现问题和判断故障的影响。
- 问题处理:在系统出现异常的时候可以快速决策并触发相关止损预案,快速恢复服务。
- 问题跟踪:通过分析问题发生时系统的各种表现,确定问题发生的根本原因.。
- 变更管理:以可控的方式,尽可能高效的完成产品功能的迭代的变更工作。
- 配置管理:通过配置管理平台,管理服务涉及到的多模块、多版本的配置的准确性。
- 发布管理:通过构建自动化的平台确保每一次版本变更可以安全可控地发布到生产环境。
- 容量管理:在服务运行维护阶段,为了确保服务架构部署的合理性同时掌握服务整体的冗余。
- 容量评估:通过技术手段模拟实际的用户请求,测试整个系统所能承担的最大吞吐。
- 容量优化:基于容量评估数据,判断系统的瓶颈并提供容量优化的解决方案。
- 架构优化:为了支持产品的不断迭代,需要不断的进行架构优化调整。
2、Google SRE
2.1 SRE 概述
SRE 全称是 Site Reliability Engineering,网站可靠性工程师,最早是由 Google 提出,并且在其工程实践中发扬光大。
2.2 SRE 目标
用软件工程的思维和方法论,完成以前由系统管理员团队手动完成的任务。
2.3 SRE 职责
- 不负责某个服务的上线、部署(在Google)
- 主要保障服务的可靠性和性能,同时负责数据中资源分配,为重要服务预留资源
- 不负责某个业务逻辑的具体编写
- 负责在服务出现宕机等紧急事故时,可以快速作出响应,尽快恢复服务,减少服务掉线而造成的损失
2.4 SRE日常工作
一般来说,SRE团队要承担以下几类职责:可用性改进、延迟优化、性能优化、效率优化、变更管理、监控、紧急事物处理以及容量规划与管理。
Tools Don’t create reliability. Humans do. But tools can help.
2.5 SRE 使命
在减少资源消耗的同时,从可用性和性能层面,提升用户的体验。
Operations should NOT be a part of SRE missions. Operation is a way to understand production.
2.6 SRE 团队
SRE团队的构成分为两类工程师:团队中 50%~60%是标准的软件工程师;40%~50%是基本满足软件工程师标准(具备85%~99%所要求的技能、UNIX系统内部细节、1~3层网络知识)
SRE团队成员特点:对重复性、手工性的操作有天然的排斥感;有足够的技术能力快速开发出软件系统以替代手工操作。
2.7 拓展思路
可以从 传统运维专注的 质量、成本、效率 去分类,也可以从主动类、被动类切入再分质量、成本、效率,然后再细分等等。