前言
该技能图谱依个人经验绘制,不适用于所有运维岗位。对于刚入行的从业者,也不需要按照图谱全学一遍,应该根据岗位工作内容来学习。有些技术我也不会,但作为一个选项我也写进去了,比如容器运行时有Docker、Podman等,但我其实只会Docker。
运维这个岗位本身比较宽泛,也有很多的细分类,比如系统运维、网络运维、实施运维、数据库运维、桌面运维、IDC运维、安全运维等等,似乎只要是运营+IT技术的岗位就可以称为运维。小公司里面可能只有一个运维岗位,这个运维工程师可能既要会linux和windows的系统运维,还要懂交换机和路由器配置,数据库也要会点,打印机问题也要处理,平时可能还要帮同事修电脑。
总体来看,运维工程师的特点就是知识点多而不精,什么都会点,但什么都不精。个人认为,从初级到中级就是个多而不精的过程,如果要从中级进阶到高级,就要考虑从众多领域中选一个或几项进行专精突破。
这里的技能图谱侧重点为linux系统运维,结合微服务的主流加上了自动化和容器技术。
虽然平常也经常跟网络打交道,但更深层的网络技术一般需要专门的网络工程师来处理,本人只会简单的故障排查,这份图谱也就没对网络有太多涉及。
现在也有很多公司需要运维懂一点大数据技术,了解hadoop集群、数仓等相关知识,我打算放到以后的大数据知识图谱。
图谱源文件放在GitHub仓库,也在国内的Gitee同步了一份,欢迎感兴趣的大佬补充。
技能图谱
Linux运维工程师以Linux操作系统为重点,基础的技术栈为Linux基础操作+Web服务器+数据库服务器。
国内主流的Linux发行版为CentOS和Ubuntu,分别代表RedHat系和Debian系,总体来说区别不大,除了包管理器不同,常用命令都是一样的。
主流的Web服务器有Apache和Nginx,Nginx稍微多点。
主流的数据库有MySQL、Oracle和Redis,MySQL作为开源数据库,市场占有率更高点。不管关系型数据库用的是MySQL还是Oracle,亦或Postgres、DB2等等,SQL语法才是基础。
由于微服务技术的广泛应用,自动化和容器技术也成了运维工程师的必会知识点,其中自动化的主流技术栈为Git+Ansible+Jenkins,容器技术栈为Docker+Kubernetes。