一个合格的运维工程师应该掌握哪些技能?
2021-08-26 · 百度认证:北京一天天教育科技有限公司官方账号,教育领域创作者
2、搭建服务:Linux服务有很多种,每个公司使用是截然不同的,所以常见的基础一定要掌握好,比如说ftp、Bind、DHCP、SAMBA服务要了解会简单配置,不光会搭建,一定要熟悉服务里面的配置。
3、掌握脚本语言:shell语言是这个行业中必须要掌握的,一些比较简单的系统管理shell脚本是最为常见的、使用到的。另外就是使用到语言就是Python,是当下比较火的,程序效率高、语言简洁清晰等,可以实现自动化运维。
4、网络服务:网站运维,当然WEB是核心了,这块需要掌握的有nginx,apache
web服务,必须要熟练,对应的组合就是LNMP和LAMP是必须要熟练,我所指的不是光光会简单搭建,而是要很熟悉里面的配置才行,深入了解内部运行机制和原理,因为网站公司最关键的绝对是WEB服务,所以nginx和apache要熟悉,特别是nginx一定要很熟悉才行,有些公司(游戏公司多)还会用tomcat,这个也最好学一下,JVM优化要会最好了。
5、网站集群服务:现在的公司多数都会有集群环境,特别是网站公司,大并发高性能是主旋律,要想发展好这些都是必须会的,例如LVS,NGINX,KEEPALIVED集群软件,MEMCACHED,REDIS。
6、数据库:数据库是所有网络服务里最核心的,必须要学会学好,这里建议首选mysql,别问我为什么不学oracle,因为互联网公司用得最多绝对是MySQL,安装、基础维护命令、主从复制,引擎,备份,恢复,增量恢复,必须要学会。
7、防火墙:防火墙,不学不行,防火墙也算是个难点,说难不难,说易不易,最重要弄懂规则,如果学过CCNA的朋友可能会比较好学,因为iptables也有NAT表,原理是一样的,而FILTER表用得最多,反正不学就肯定不合格。
首先这个要分运维级别来说了,比如初级运维工程师和高级运维工程师要掌握的基础技能就不一样。
初级运维工程师,需要掌握以下基本技能:
1、基础命令:
这个基础就包括:用户管理命令,文件管理命令,权限管理命令,软件包管理命令,vim命令,网络管理命令等。
2、基础服务:
企业常用的基础服务就包括DHCP,NTP,DNS,Nginx,Apache,Mysql,Redis,Vsftpd,Nfs。基础服务的掌握,相比命令稍微的难一点,但是同样有很多技巧。比如可以去各大视频站获取优质的免费视频学习。
3、自动化技能:
这个自动化就包括脚本自动化,需要熟悉掌握shell脚本或者Python脚本;包括监控自动化,不能靠传统的点击页面,查看进程来判断服务是否在线,需要熟悉掌握zabbix,Prometheus等主流监控软件;还包括工具自动化,需要掌握向ansible,puppet,Jenkins等自动化软件,实现服务的批量部署与业务的自动化。
4、安全:
作为运维工程师,首先就要时刻保障公司业务系统,服务器安全稳定运行。所以安全至关重要,主流的iptables,firewalld防火墙技术要熟练掌握,有必要的话常见的挖矿病毒,ddos等攻击有段也要有所了解。
中高运维工程师,需要掌握以下基本技能:
1、高可用技术:
业务比较复杂,用户群体比较大的企业,一般都会用到高可用技术,提升用户体验。那么主流的keepalived,heartbeat等是必须要熟练应用的。
2、虚拟化技术:
如果想达到高级运维工程师的水品,那么主流的虚拟化技术必须要掌握,并且不止于安装部署,还要有较强的故障排错和调优能力。目前主流的虚拟化技术有docker,k8s,kvm,OpenStack,Vmware ESXi,Xen等。
3、云架构:
除了熟悉虚拟化技术,还要有整合能力,比如如何将这个单个技术应用到实际生产,需要掌握切实可行的私有云,公有云网络架构技能。
4、应急能力:
除了技术性的技能,还要有遇事不乱,处变不惊的能力。对突发事件,能进行快速的分析,定位,并责任到人进行处理,有系统的进度与调度能力。
以上只是做了简单的阐述,在某些方面可能并不完善,欢迎大家讨论交流。
2、系统监控命令:目的是获取系统当前的运行状态,遇到故障等要懂得分析排查。系统调优并懂得原理,知道为什么参数要调整成某个值。
3、网络监控命令:理由和第二点一致,不过侧重于网络。同样需要理解原理及调优,不能照搬前人的经验而不知甚解。
需要负责维护并确保整个服务的高可用性,
同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI。