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

简介: 提起运维,大家都会想到又苦又累,又不被人重视的网管,机房运维,认为这个工种很low,入门门槛低,做的事比较杂,从搬服务器上架到修打印机,修电脑,处理网络小故障等杂七杂八的活,究其原因,多年来小公司都把运维当做一种打杂的小工使。
 提起运维,大家都会想到又苦又累,又不被人重视的网管,机房运维,认为这个工种很low,入门门槛低,做的事比较杂,从搬服务器上架到修打印机,修电脑,处理网络小故障等杂七杂八的活,究其原因,多年来小公司都把运维当做一种打杂的小工使。其实运维从分类可以分为很多专业领域,比如网络工程师,系统工程师,备份存储工程师,CDN工程师,数据库管理员,应用运维,运维开发,运维架构师等等岗位,本章暂不对运维岗位做过多解释,我就个人的经验,我是从运维实施、系统管理员、DBA最后到运维开发的,简单说说各大互联网公司对岗位的面试要求:

WEB篇:
1、负载均衡篇:熟悉常用的负载均衡技术,LVS,dpdk,Nginx等四层/七层负载均衡,除了硬件负载均衡设备F5,有搭建、维护并熟悉负载均衡原理;
2、Nginx 重要配置、优化及使用、与lua的结合,接入、降级、限流、隔离、熔断、动静分离、反向代理、负载均衡,反爬虫,黑白名单等 另Nginx 和Apache的比较;
3、TCP/HTTPs协议及三次握手,四次挥手,get/post的差异,协议头,跳转,常见返回码的含义200/30x/40x/50x等知识及导致返回码的可能故障原因,如果可能请详细了解TCP/TP协议内容;
4、web的优化,web 访问的流程,从浏览器-DNS-CDN-缓存(本地缓存,负载均衡层,缓存层,接入层,应用层,数据库层)-应用-数据库整个流程,需要陈述过程,并能解释调优排障的思路;
http 连接越快越好,越快建立连接越好,中间DNS解析, tcp握手都是可以优化的点
http 请求少并且小,减少请求的数量,请求的体积,比如 cookie的大小
解析html 的速度,dom树解析,js 执行和首屏渲染是串行的,页面渲染,把js放到body后面
加载页面,下载资源,利用上面的原则,尽量少的发http请求,比如图片,字体,以及js文件等等

网络篇:
网络抖动,网卡打满,大面积断网,网络丢包,网络劫持,接口响应超时等,常用网络故障排查的手段,工具等,如tcpdump/iftop/traceroute/netstat等

故障篇:
网络失败,业务异常(参数错误、业务逻辑处理错误,返回数据格式错误等下游业务不可用),机器故障
cpu 负载太高,内存溢出,磁盘打满,网卡打满,超时
监控快速反馈

监控:正面预防,快速发现、定位问题进行报警
降级:反向止损,遇到故障自动处理,降低损失

监控篇:
常规监控: zabbix 、Ganglia、Cacti、Nagios等
业务监控:业务指标的监控
调用链监控:CAT、zipkin、阿里鹰眼等
其他新兴监控: Prometheus open-falcon
日志监控:ELK等
另外时序数据库是监控领域比较火的技术,大家可以多研究一下

应用篇
Java,weblogic,tomcat,jetty等Java中间件,涉及jvm 的调优,监控,GC的调优,cpu高的诊断
dubbo spring cloud sprin boot sping 全家桶,微服务的搭建,部署,监控(调用链监控)鉴于微服务领域还不成熟,很多公司还没有实践,另外有必要了解K8S等编排工具
消息中间库 rabbitmq 、rocketmq,Kafka 等对比使用,如吞吐量、时延等优缺点,运维中遇到的问题及故障处置
redis 的架构,有单节点,官方cluster集群,复制,读写分离,分片等,业界使用的proxy 方案,对比优缺点,常遇到的故障及问题,再就是容灾,跨机房,业界的解决方案,一般是通过流复制
redis 和memcache的区别,优缺点
增加对项目的架构,集群规模,QPS/TPS等数据的认知
mongodb 集群的运维,分片集群的规模,运维监控,处理过的问题及优化,主要有cpu高,慢查询,占用内存高,夯死等问题
应用部署的问题,涉及发布,构建,编译等

大数据篇:
Hadoop 生态圈 hdfs,habase ,hive,mapreduse,zookeerer,kafka,tez,impla,spark等组件,zeppelin,kylin,侧重生产机器的规模,遇到的问题,踩到的坑,有的侧重原理

数据库篇:
MySQL oracle、简单了解,sql 语句的查询,索引的类型,数据库高可用架构,主从、双主、MHA架构、Proxy方案等,另外了解数据库中间件,例如mycat等

存储篇:
ceph 的搭建,对象存储的原理,各种存储(NAS/SAN/对象存储等)的优缺点及使用场景

公有云、私有云篇:
openstack ,zstack ,虚拟化 vm 的原理

docker 篇
docker的基本原理、编排工具k8s 的使用,k8s 的概念,pod ,网络的解决方案遇到的坑及解决方案,当然也要防止某些辣鸡公司套你方案
docker 自建仓库,docker file的使用

自动化运维篇
自动化运维工具的使用,ansible ,saltstack 等使用,
Django 的开发 cmdb/自动化部署,任务调度系统,数据库运维系统
CI/CD的构建,自动化发布,灰度发布,金丝雀发布,蓝绿发布等等
devops的概念及实施,对AIops的见解及作出的变革

开发篇:
shell 脚本 基础运维命令
python 开发 ,主要是web开发,表单的设计,数据库或者orm的设计,高并发,消息队列 restapi等 前端比较弱是运维的通病
salca 略了解,多用于大数据开发
go 略了解,如果熟悉并开发过项目,一定是加分项,求之不得;

面试篇:
个人自我介绍
目前的工作内容,负责的项目,遇到的故障,印象深刻的项目,遇到的挑战,遇到的棘手问题,自己负责过的项目,项目规模,集群规模,人数等等

相关实践学习
部署高可用架构
本场景主要介绍如何使用云服务器ECS、负载均衡SLB、云数据库RDS和数据传输服务产品来部署多可用区高可用架构。
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
3月前
|
程序员
职场重要技能-解决问题
今天咱们唠一个职场技能-解决问题。许多所谓的前辈指导别人职场技能时,总是把:向上管理、PPT汇报等,放在第一位,对此笔者不以为然。
|
11月前
|
运维 搜索推荐
对运维这份职业的一些反思
对运维这份职业的一些反思
107 1
|
SQL 网络协议 关系型数据库
测试工程师个人技能提升的书籍有哪些?
测试工程师个人技能提升的书籍有哪些?
127 0
|
运维 Shell Windows
一线运维必备技能知识串讲(一)
从事运维工作多年,一直在一线进行救火工作。你是否还记得服务器出现问题CTO站在你身后时你疯狂输出的样子和心情。后续我会跟大家分享一线运维必备的一些基础命令,希望阅读之后大家可以把这些手法融入到你的血液里,让你遇到问题的时候各种命令都可以信手拈来。
597 0
一线运维必备技能知识串讲(一)
|
安全 Java 关系型数据库
个人总结的一个中高级Java开发工程师或架构师需要掌握的一些技能
近三年,其实都是在做一个项目,项目是一个大型的多节点部署的项目,做了好几个版本,中间用到了很多技术和框架, 也用了一些管理工具和敏捷实践。
2463 0