按照目前我对运维职业的理解,当前运维主要分为三个领域:基础运维、SRE、DevOps
基础运维
狭义上来讲,基础运维就是传统的桌面运维、机房运维、网管,主要负责的是机房设备的维护升级,路由分析,网络监控等,也可以说是传统运维。而我更偏向于把基础运维的领域扩大,把Linux系统运维、云平台运维以及容器运维都划为基础运维的领域。
SRE
SRE是由Google提出的一种将软件工程和运维原则相结合的角色,将运维任务视为软件问题来解决,SRE强调度量、监控、故障处理和持续改进。相对于基础运维升级的地方是,SRE同时还应该具备研发能力,比如构建自动化工具,和研发团队一起制定 SLO (Service Level Objective),让双方有可以一起遵守的契约,通过体系化的手段来保障业务稳定性,来保证服务的健康度。
下图描绘了研发 (Dev),SRE,运维 (Ops) 的交叉关系。研发和运维基本上是没有交集的,而 SRE 就像前面说的是具备研发能力的运维,但整体还是更偏运维一点。
DevOps
DevOps是一种将开发和运维融合的文化和方法论,这是一种体系,也是一种趋势(我认为)。它强调通过自动化、持续集成和持续交付来实现快速、可靠的软件交付。比较温和的观点是DevOps作为一个体系,运维的职能可能由研发和 SRE 共同分担,消除开发与运维之间的障碍,目标是加速软件交付流程,提高团队协作效率;而比较激进的观点是,DevOps作为一个工种,融合研发和运维的职能,它不仅取代大部分运维,甚至也在迫使传统开发转型。
就发展前景来说,SRE和DevOps未来的需求肯定是不断增加的,绝大部分公司目前都会将二者的概念与运维开发相混淆,特别是招聘的时候。
DevOps 是做运维的研发,SRE 是做研发的运维,两者都有不错的发展前景,而传统运维是没有发展前景的,但也不会完全消失。