运维工程师必须掌握的基础技能都有哪些?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了运维工程师必须掌握的基础技能都有哪些?相关的知识,希望对你有一定的参考价值。

运维工程师必须掌握的基础技能有:基础命令、基础服务、自动化技能、安全。

1、基础命令:

这个基础就包括:用户管理命令,文件管理命令,权限管理命令,软件包管理命令,vim命令,网络管理命令等。这些命令好学,因为每个命令都有相应的help帮助文档,而且很多网站都集成了命令帮助,把这些站点进行收藏,时不时的查下就记住了。

2、基础服务:

企业常用的基础服务就包括DHCP,NTP,DNS,nginx,Apache,mysql,Redis,Vsftpd,Nfs。基础服务的掌握,相比命令稍微的难一点,但是同样有很多技巧。比如可以去各大视频站获取优质的免费视频学习。

3、自动化技能:

这个自动化就包括脚本自动化,需要熟悉掌握shell脚本或者Python脚本;包括监控自动化,不能靠传统的点击页面,查看进程来判断服务是否在线,需要熟悉掌握zabbix,Prometheus等主流监控软件;还包括工具自动化,需要掌握向ansible,puppet,Jenkins等自动化软件,实现服务的批量部署与业务的自动化。

4、安全:

作为运维工程师,首先就要时刻保障公司业务系统,服务器安全稳定运行。所以安全至关重要,主流的iptables,firewalld防火墙技术要熟练掌握,有必要的话常见的挖矿病毒,ddos等攻击有段也要有所了解。

运维工程师(Operations),负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI。

运维工程师面对的最大挑战是大规模集群的管理问题,如何管理好几十万台服务器上的服务,同时保障服务的高可用性,是运维工程师面临的最大挑战。

参考技术A 一、Linux 基础部分
1、基础理论知识
2、基础命令(系统命令、目录管理、用户管理、文件权限、磁盘管理、资源查看等等常见操作)
3、文本高效处理(vi、vim、awk、grep、find、sed等)
4、bash shell脚本(可以边工作边学习,使用shell编写简单的代替重复性操作的脚本)
5. 进程调度,内存管理,文件系统,外设管理等,要熟练使用相关工具,如top iotop iftop iostat vmstat ss等,并且最好了解其原理
二、网络管理、进程管理
1、TCP/IP协议、DNS服务、CDN原理、iproute常见的网络客户端工具(ping、wget、ftp)
2、crontab计划任务
3、ps、top、htop、vmstat、lsof等命令
4. tcp,http,https,udp等
5. 最好能做到精通,4层,7层的网络流量分析技能要熟练掌握。
6. 内部路由协议,边际路由,交换原理,域名解析,ipv6相关知识
三. 数据库部分
MySQL各个版本之间的关系和特性
MySQL的安装及增删改查
MySQL的存储引擎
MySQL的优化
MySQL日常使用及运维,包含备份及故障排查
四. 常用开源组件
LAMP和LNMP的架构
tomcat的使用及优化
nginx的使用场景及优化
apache的使用场景及优化
其他服务: dhcp,nfs,rsync,dns,等等
一句话概括: mysql,redis,kafka,etcd,zk,influxdb,promethues,zabbix,graphana,ansible…
五. shell脚本
使用shell脚本实现各种服务的自动化部署
使用shell脚本实现监控系统及应用自动化
使用shell脚本实现各类巡检,故障排查自动化
六. 安全
iptables四表(fiter、mangle、nat、raw)五链(prerouting、iput、forward、output、postrouting)、基本匹配
iptable规则保存重载生效
常用加密算法,web安全,网络安全
渗透的常用手段,以及反制手段,sql注入,xss,ddos,cc
跳板机jumpserver
七. 监控和日志收集
日志收集ELK,EFK
zabbix,prometheus
八. 自动化工具
1、常见自动化运维方案:puppet、ansible、salt、fabric
2、ansible安装基础使用
3、持续集成:jekins+gitlab实现ci/cd流水线
4. python 自动化
5. go语言二次开发
九. 容器化和虚拟化技术
docker ,k8s,openstack, kvm,vmware的使用
容器编排的技术
十. devops 编译,加速,测试环境,研发自动化

运维工程师必须掌握的基础技能和职业前景

运维工程师必须掌握的基础技能有哪些

运维工程师(Operations),负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI。这是百度百科对运维工程师的定义。
网上有好多大佬对这个问题做了很详细的阐述,这里我简单说一下自己工作接触到的一些技能和工具。

范围:linux运维

网络方面

我感觉网络是作为IT工作人员的基础中的基础,网络的使用贯穿了我们平时工作中,只是不是特别从事网络运维的工程师,很少下精力去研究它。
由于我本身就是华为HCNP和华三H3CSE,所以对网络有一定的了解和认识。推荐大家可以看一下一些厂商的课程和书籍,如华为,华三,思科等,网络圣经:《TCP/IP协议》

  • 企业级路由器
  • 交换机
  • 防火墙

系统方面

windows方面

这里说的是企业级的windows系统,如:windows server 2008,windowsserver 2012,windows server 2016等。

以下操作是我在工作中涉及到的内容:

  • 系统的安装与部署,系统的封装
  • 系统用户与组账户的管理
  • 系统存储管理和文件权限管理
  • windows服务的部署与配置,如:域控制器,DNS服务等
  • 系统安全,如:系统打补丁,防火墙策略,端口开放策略等
  • 系统的日志管理

Linux方面

  • 操作linux系统,如:Mac,Centos,Ubuntu,Redhat,suse,会AIX更好
  • 使用系统编辑工具,如:vi,vim
  • 搭建常用平台服务,如:LAMP,LNMP,FTP,NFS,SAMBADNS等
  • 网站服务,如:nginx,apache,php,tomcat,resin
  • 数据库,如:MySQL,redis
  • DB中间件:maxscale,MyCat,atlas,cobar,amoeba,MySQL-proxy
  • 代理相关:lvs,keepalived,haproxy,nginx,heartbeat
  • 网站缓存:squid,nginx
  • 存储相关:Nfs,FastDFS,Moosefs(mfs),Hadoop
  • 高可用:HA集群

监控方面

  • nagios
  • zabbix
  • cacti

最好认真和熟悉下zabbix。

版本管理

  • svn
  • git

开发语言

  • Shell (基础)
  • Python(提升)
  • go (扩展)

说明:三种开发语言,shell是运维工作中使用率比较高的,务必学好shell。

存储及服务器

  • 存储及服务器硬件拆解和维护
  • 国内外存储厂商的产品,如:华为,IBM,联想等
  • 存储及服务器的基本操作
  • 数据备份

虚拟化、容器及容器编排

  • vmware
  • kvm
  • xen
  • docker
  • kubernetes

运维自动化工具

  • Ansible
  • SaltStack
  • puppet

大数据

  • Zookeeper
  • Spark

Linux 运维发展前景如何?

Linux 运维行业的现状

linux是类UNIX操作系统,UNIX设计针对的就是从事计算机的专业人员,所以说Linux运维行业还是有一定的门槛的。相比于纯脑力劳动者--开发而言,运维的薪资还是略低一点。
每个行业发展都是差不多的,好比当年网络大热时,从事网络方面的人员形式一片大好。更多的人挤上网络这个“末班车”,导致后来满大街都是CCIE,薪资金字塔效应极度明显。
从目前市场来看,Linux运维行业还是很火热的。

云服务对linux运维的影响

我们知道,现在云计算是非常火热的,一些大的服务商,如阿里,腾讯等都提供自己的云服务。一些比较低端的运维服务将被云服务所替代,如一些机房的建设,服务器设备,网络设备,
存储设备的上架,安装及调试等。如果企业使用云服务,那么线下运维将由云服务商全程统一负责,极大的精简了一个项目开始阶段的投入。虽然多数大公司目前并不会使用公有云,转而开发自身的私用云。但本质上是一样的,都是将线下运维进行集中和整合,通过云技术提供给各个项目人员使用,达到资源的最大化合理利用。
显然,云服务的越来越普及,对于传统的运维人员影响是很大的。同时,配合这些云服务需要开发和管理新的自动化运维平台,这就对运维人员提出了相当高的要求。

职业前景

在Linux大的体系下,个人职业的发展也取决你选择的职业方向。单纯的运维如系统方面,工作前景其实不大。现在的社会更倾向于复合型人才,所谓的复合型人才,说直白点就是背锅的姿势会的比较多。
借用阿铭老师的一句话“Linux毕竟是一个操作系统,只是一个工具。一个经常在linux下做开发的开发人员就可以取代一个linux初级运维人员。但如果高级运维,开发人员是无法取代运维人员的。
高级运维是一个非常专业职位,高级运维需要掌握相当多的知识,包括但不限于网络技术、系统编程、运维流程及思想、虚拟化、自动化运维体系构建、数据库管理,云计算平台应用,大数据等。一个运维人员需要具备有开发人员的思想,但一个开发人员是否能够掌握常年积累下来的运维流程、思想和经验体系就不是一朝一夕的事情了,所以高级linux运维绝对是目前大公司的稀缺人才。”
所以,总的来说Linux职业发展前景还是比较好的。

以上是关于运维工程师必须掌握的基础技能都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

运维工程师必须掌握的基础技能都有哪些

Linux运维工程师须掌握的基础技能都有哪些?

linux运维工程师必须掌握哪些技能

运维工程师必须掌握的基础技能有哪些?

运维工程师必须掌握的基础技能和职业前景

运维工程师需要掌握啥技能