互联网运维工程师前景(网络运维工作前景如何)

今天小编和大家聊聊互联网企业技术岗位都有哪些?各个技术岗位都需要具备哪些能力?一些互联网企业对各个岗位的要求与岗位职责的设定?包括大家比较关心的岗位薪资福利情况。

互联网企业中技术岗位被认为是核心岗位之一,常见分类有开发工程师,测试工程师,架构师、运维工程师、数据工程师等等,但是也有很多企业会设置更为细分的技术岗位,例如:DBA、BI、中间件工程师、AI工程师、CAD工程师等等。

今天我们说说技术岗位中的运维工程师,互联网公司中这个系列岗位是至关重要的,这个岗位决定了互联网企业产品系统的后期成本(系统可用性,稳定性,用户满意度,性能等等所需要投入的成本),这些后期成本也是互联网企业盈利的核心价值点之一。简单点说,运维工程师的工作就是让软件(硬件)系统产品稳定、高效地运行。

小编IT时代的运维工程师(不是网管)是非常高端的存在,他们往往几个人负责成百上千台的服务器,会各种操作系统命令,会各种高深的过程性开发语言,甚至还有的是黑客实力的存在(扫地僧一样的神)。当然,随着互联网时代的进化,现在已经是云时代了,很多原来的运维老大渐渐远去,不过也诞生了新一批的运维工程师,他们也是比较厉害的。例如:用户量激增时,自动化扩容的配置;集群网络环境的通畅与稳定;系统或网络的安全性等等都属于运维工程师的范畴。后续也有开发运维和环境运维工程师的区分,包括自动化运维,智能化运维设计师等岗位在一些企业也都应运而生。我们下面就讲讲互联网时代的运维工作都有哪些。

1、运维工程师的具体工作有哪些?

运维工作其实是一个非常广泛的工作,尤其对于现在互联网时代的运维工作,如果我们从系统结构出发来介绍运维工作的话,大体分为三层:基础硬件层、系统软件层、web应用层。

互联网运维工程师前景(互联网运维工作)互联网运维工程师前景(互联网运维工作)

运维工作分类

①基础硬件层,很多大厂尤其是提供云服务的大厂,他们维护着众多的服务器硬件,网络硬件,安全硬件等等很多的硬件设备,运维工作包括了硬件的稳定,硬件上服务的稳定等等。只有这些基础硬件稳定,我们很多使用云服务的企业,他们自己的系统软件或应用软件产品才能更加稳定地运营。这层运维工作中也会用到各种软件来辅助对硬件的监控,更加及时地保证硬件运行的稳定性,例如:zabbix、Nagios、PCP(Performance Co-Pilot)、Anturis、SeaLion等等,有的工具帮助监控硬件的CUP、内存,有的帮助监控网络、有的帮助监控硬件操作系统的基础服务等等。

②系统软件层,很多企业都会有自己的各种内部或对方服务的系统,和我们传统认知的对外客户使用的系统有本质区别,例如:CRM、ESB、EHR、财务等等。这部分系统用户体量往往是本企业内的员工数量,所以相对于一些ToC或SaaS服务的系统运维要求指标不同,例如:性能运维方面,安全运维方面等。但是也会使用到和基础硬件层类似的一些监控工具,同时也会承担一些系统调优、防火墙、CA认证等等方面的工作。

③web应用层,这层运维工作相对就更复杂一些,有的企业的web应用服务系统的发布工作也是运维工作自已,有的企业也会设定开发运维岗位来满足这个层次的运维工作。从技能角度来说,要掌握网络基础(重点难点TCP/UDP)、sshd服务(scp/rsync)、文件共享服务(ftp/nfs/samba)、DNS域名服务、LAMP编译安装、rsyslog、Linux分区+LVM逻辑卷+(软硬RAID),LB负载均衡,Nginx部署,Docker容器化,K8S容器编排等等。有的企业也会要求运维能力要覆盖DevOps,CICD构建等能力。

所以,运维工程师从运维工作角度来说是一个要求非常全面的岗位,有的企业会构建运维团队,多名不同类型的运维工程师相互合作完成运维工作,会设置开发运维工程师,网络运维工程师、安全运维工程师、数据库运维、桌面运维、中间件运维等等。有的企业也会把开发人员调入到运维团队做运维工作,尤其是开发运维工作,例如:编写告警平台,系统自动化发布,性能调优等等。

2、运维工程师应该具备哪些技能?

按照上面介绍的运维工程师的具体工作来说,由于负责的工作不一样,所以需要掌握的技能也不一样,那么我们还是按照工作层面来介绍需要具备的技能。

互联网运维工程师前景(互联网运维工作)互联网运维工程师前景(互联网运维工作)

运维工程师技能宝典

1)对于基础硬件层运维工程师来说,以下技能是必须要具备的(但也不限于),可能要求的层次不同,例如:了解、熟悉、熟练、精通等

①计算机系统架构,包括硬件数据操作模式以及类型、格式等;寻址方式;寄存器原理;中断机制与原理;输出结构等等;

②存储系统,存储有方式与优化能力、虚拟存储原理及优化能力等;

③各类操作系统以及系统指令集使用能力,I/O编程能力等;

④网络原理机器拓扑构建能力,网络安全技术,CDN等;

⑤GPU、CPU相关处理与程序设计能力等;

⑥各种硬件、网络监控工具,告警体系等。

2)对于系统软件层运维工程师来说,除了选择性掌握基础硬件层一部分能力外(了解即可),需要熟练掌握以下技能。

①了解各类系统软件I/O或拓扑原理等能力;

②系统调优能力、系统部署与监控维稳能力;

③运维监控拓扑设计与服务流程设计能力;

④DOS、Linux系统命令与脚本编写能力;

⑤HTTP、TCP/IP、DHCP、DNS等基础服务搭建与维护能力。

3)web应用层运维工程师,目前看这部分工程师如果做到高端需要掌握的能力远比开发工程师要多很多,属于比较宽泛的技术体系。

①熟练应用Linux/Unix,DOS系统命令以及脚本编写;

②网络基础(重点难点TCP/UDP、防火墙等)、sshd服务(scp/rsync)、文件共享服务(ftp/nfs/samba)、DNS域名服务、LAMP编译安装等;

③应用系统服务集群构建与发布能力,包括Nginx部署与调优,Docker等容器化能力;

④DevOps构建与优化能力;CICD构建能力;

⑤Python、Perl、shell等脚本语言能力,可以完成log存储、优化、告警等系统编写能力;

⑥应用系统性能优化,应用热拓展,热备与冷备等能力。

以上只是按照各层面基本需要来描述的技能,有的能力包含很多理论知识,篇幅优先只能简单讲解。如果需要详细了解,小编推荐可以直接根据上面描述找一些理论数据进行全方位学习。