百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

运维工程师的修炼手册

sinye56 2024-11-17 15:41 3 浏览 0 评论

作为一个长期在运维岗的我,想做些什么来帮助大家学习运维,全是干货,绝不卖货。

一、什么是运维工程师

运维工程师(Operations),负责维护并确保整个服务的高可用性,同时不断优化系统架构提升部署效率、优化资源利用率提高整体的ROI(百度百科)。通俗一点讲我们就是园丁,而系统就是一个花园,我们只有尽心尽职地伺候好花园里的花花草草,整个花园才能长期稳定的吸引客流量。

二、运维工程师的工作内容

顾名思义,运维工程师的主要内容是运维。运维主要是保障一个系统长期稳定的工作下去。主要有以下几点:

1、问题发现:当系统出现异常时,需要尽可能快速的恢复业务,保障系统的可用性。这里我们可以借助于监控平台和告警平台,通过短信、邮件等方式通知自己,系统出故障了。

2、问题处理:设计开发一些处理工具。当系统出现故障时,工具可以快速且自行解决掉这些故障,从而恢复系统。

3、问题跟踪:通过故障发生时的一些表象(日志、监控、告警)来找到问题的根源,该开发修复的找开发,配置原因的修改配置,第三方原因的找第三方。

4、配置管理:一个系统会有多个模块和多个版本,我们可以通过配置管理工具管理这些不同模块和版本的配置,确保这些配置发布到生产环境上后,系统能够正常运行。

三、能力要求

我们先来看下某招聘网站上运维工程师的任职要求

第一个

1、计算机相关专业,全日制统招专科以上学历,2年以上相关工作经验;

2、了解Linux系统原理,掌握Linux操作系统常用命令,有Linux常用HA集群(HAProxy/Keeplived/Ngnix/Apache/Tomcat/Redis等)故障排查经验;

3、了解Tomcat/Apache/ActiveMQ/Kafka等中间件、Web服务器和消息队列产品;

4、熟悉至少一种Zabbix/Nagios/Catci监控工具,并利用工具进行初步问题定位和故障分析;

第二个

1. 大专以上学历
  2.具备1年以上Linux操作系统运维经验;
  3.熟悉linux,docker,以及Tomcat,Mysql,Redis,Nginx,ELK等安装部署;
  4.熟练掌握常用命令、Shell脚本编程,docker容器的使用;
  5.熟悉Linux系统高可用技术、负载均衡、集群等技术方案;

第三个

1、2年以上系统运维、监控运维等相关工作经验。
2、熟练掌握Linux系统操作。
3、熟悉常用监控及日志工具使用,如Zabbix、Prometheus、ELK等,有APM使用经验优先。
4、较强的沟通协调和语言表达能力,善于团队合作,工作细致并谨慎。

归类下来就是Linux基础、容器、监控工具和数据库。除了这些,我认为还需要了解Shell/Python等编程语言、网络知识。除了技术能力同时还要具备责任心、细心、进取心和安全意识这些软素质。

四、Linux基础

Linux基础包含了Linux整体理解和命令使用。

了解Linux:推荐《鸟哥的Linux私房菜:基础学习篇》,个人认为这是一本适合小白的入门书。

命令使用:运维常用的命令一般涉及到CPU、Device Drivers、DRAM、IP、Port、Application、DB等。

五、容器

常见的容器有Apache、Tomcat、Nginx、Weblogic、docker等等。个人建议可以在本地搭建一套环境练练手,我参与的项目使用Tomcat偏多,这里还是推荐《鸟哥的Linux私房菜:服务器架设篇》

六、监控工具

目前常用的有Zabbix、Catci、Nagios、Puppet等等,这个视情况可以选择性地熟悉,我参与的几个项目用的监控工具都不一样,基本都是换汤不换药,监控CPU,内存,日志,吞吐量等等信息。

七、数据库

常用的数据库有MySQL、Oracle、PgSQL、MSSQL等,作为运维不能只会简单地增删改查,还需要参与安装、巡检、性能调优、备份等工作,不同的数据库在语法上大同小异,牢记相应的关键词就行。比如查当前时间,MySQL用now,oracle用sysdate。

八、编程语言

学习编程语言是为了更快速的定位和解决系统故障。举个例子,我曾经参与过的一个项目,做的是服开系统。我们系统发送开通指令给外部网元时,需要外部网元回复成功或者失败。当外部网元回复第三种情况时(实际回复的是成功,换了格式)我们系统就无法识别了,这时候就会报错,出现工单无法竣工的情况。我当时用python写了一个工具,定时扫描出这类工单,模拟通知成功,让工单可以正常竣工。

九、网络知识

熟练使用抓包工具tcpdump、fiddler等,了解防火墙、IP、Port之类,推荐《TCP/IP协议详解》

十、软素质

一个好的运维,软素质是必不可少的。

责任心:对所负责的工作要有owner意识,遇到告警要第一时间响应,而不是等着别人去处理;遇到无法处理的,要第一时间请求同时的协助。我对底下兄弟的要求是10分钟响应,30分钟解决,2小时上报。在运维岗,尤其是驻场运维手上的活会很多,但是要记住客户就是上帝,客户的问题就是第一位的,你可以先响应再去解决,不要给客户一种你不重视他的感觉。当问题出现2小时以上都无法解决的时候,需要上报领导层,让领导协调售前团队安抚客户,售后团队提供解决方案。

细心:运维是可以直接操作生产环境的,你的任何一个操作都有可能造成系统故障,从而影响到业务。所以在每个操作前都要细心,确认再三。你命令敲的再快也就节省那么一点时间,一旦出了问题,就是一个长久的影响。举个例子,2017年某省的项目上线,因为命令敲的快,没有确认执行的目录,将主备数据全部清空了,造成了当地2小时业务中断,手机全无信号。

进取心:运维所需要掌握的技能比较广泛,需要不断的学习,提升自我。遇到问题,做好分析记录,好记性不如烂笔头,记录整理也是自我提升的一个过程。

安全意识:运维的权限是很大的,通常会有服务器的root权限,某个api的私钥等等。针对这些数据最好使用加密存储在本地,一定不能存储在网络云盘中,生产环境高于一切。

十一、结束语

以上观点均为个人见解,有不正确的地方欢迎指正。在后面的篇幅中,我会详细介绍技术的学习,如Linux的常用命令、容器的加固等等、同时会搜集一些大厂的相关面试题。

相关推荐

Linux在线安装JDK1.8

首先在服务器pingwww.baidu.com查看是否可以连网然后就可以在线下载一、下载安装JDK1.81、在下载安装的同时做好一些准备工作...

Linux安装JDK,超详细

1、了解RPMRPM是Red-HatPackageManager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux...

Linux安装jdk1.8(超级详细)

前言最近刚购买了一台阿里云的服务器准备要搭建一个网站,正好将网站的一个完整搭建过程分享给大家!#一、下载jdk1.8首先我们需要去下载linux版本的jdk1.8安装包,我们有两种方式去下载安装...

Linux系统安装JDK教程

下载jdk-8u151-linux-x64.tar.gz下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.ht...

干货|JDK下载安装与环境变量配置图文教程「超详细」

1.JDK介绍1.1什么是JDK?SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Jav...

Linux下安装jdk1.8

一、安装环境操作系统:CentOSLinuxrelease7.6.1810(Core)JDK版本:1.8二、安装步骤1.下载安装包...

Linux上安装JDK

以CentOS为例。检查是否已安装过jdk。yumlist--installed|grepjdk或者...

Linux系统的一些常用目录以及介绍

根目录(/):“/”目录也称为根目录,位于Linux文件系统目录结构的顶层。在很多系统中,“/”目录是系统中的唯一分区。如果还有其他分区,必须挂载到“/”目录下某个位置。整个目录结构呈树形结构,因此也...

Linux系统目录结构

一、系统目录结构几乎所有的计算机操作系统都是使用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件,而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树...

Linux文件查找

在Linux下通常find不很常用的,因为速度慢(find是直接查找硬盘),通常我们都是先使用whereis或者是locate来检查,如果真的找不到了,才以find来搜寻。为什么...

嵌入式linux基本操作之查找文件

对于很多初学者来说都习惯用windows操作系统,对于这个系统来说查找一个文件简直不在话下。而学习嵌入式开发行业之后,发现所用到的是嵌入式Linux操作系统,本想着跟windows类似,结果在操作的时...

linux系统查看软件安装目录的方法

linux系统下怎么查看软件安装的目录?方法1:whereis软件名以查询nginx为例子...

Linux下如何对目录中的文件进行统计

统计目录中的文件数量...

Linux常见文件目录管理命令

touch用于创建空白文件touch文件名称mkdir用于创建空白目录还可以通过参数-p创建递归的目录...

Linux常用查找文件方法总结

一、前言Linux系统提供了多种查找文件的命令,而且每种查找命令都具有其独特的优势,下面详细总结一下常用的几个Linux查找命令。二、which命令查找类型:二进制文件;...

取消回复欢迎 发表评论: