运维工程师需要掌握的技能
提起运维,大家都会想到又苦又累,又不被人重视的网管,机房运维,认为这个工种很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 略了解,如果熟悉并开发过项目,一定是加分项,求之不得;
面试篇:
个人自我介绍
目前的工作内容,负责的项目,遇到的故障,印象深刻的项目,遇到的挑战,遇到的棘手问题,自己负责过的项目,项目规模,集群规模,人数等等

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
使用Vagrant 在Virtual Box 上安装Docker--(补充九步构建自己的hello world Docker镜像)
反思+记录 安装Virtual Box Virtual Box 是和vmware, Hyper-v 一样的虚拟软件。Virtual Box 下载地址 https://www.virtualbox.org/wiki/Downloads ;因在Windows,故选择Windows hosts 下载下来直接安装即可。 安装Vagrant Vagrant 是一款可以结合 Virtual Box 进行虚拟机安装、 管理的软件,基于 Ruby ,因为已经编译为应用程序,所以可以不用安装 Ruby 环境。Vagrant 下载地址:https://www.vagrantup.com/downloads.html;在页面上选择对应平台及架构, 我选择Windows X64, 安装过程没有要注意的,可一直下一步。 通过 Vagrant 安装 centos7 以下操作都在 git bash 中进行,如果不是 git bash,自行手动进行或者通过CMD/PowerShell构建。 构建目录 在大空间磁盘上的某个目录中执行如下代码。 $ mkdir VM && cd VM &&...
- 下一篇
Docker Desktop 版本助力 Kubernetes 集群,一键部署不再是梦
本文首发自“Docker公司”公众号(ID:docker-cn)编译丨小东每周一、三、五 与您不见不散! 上周,KubeCon 欧洲大会在哥本哈根成功举办,让我们来回顾那些在 Docker 和 Kubernetes 读者中最受欢迎的帖子吧。对于那些还没有尝试过 Docker EE 2.0 的用户来说,这篇文章的重点在于详细介绍了如何在 Docker for Desktops 中使用 Docker compose 文件来将应用程序直接部署到 Kubernetes 集群上。 如果在您的桌面(Docker for Mac 或 Docker for Windows Desktop)上运行的是 Docker 的尝鲜版本,那么现在您就可以通过点击一个按钮来构建单节点的 Kubernetes 集群了。虽然我不是开发人员,但我认为这对于已经在 Macbook 或 Windows 笔记本电脑上使用 Docker 的数百万开发人员来说是个好消息,因为他们现在已经拥有了完全兼容的 Kubernetes 集群,无需安装任何其他辅助工具。 使用 Docker 来构建容器化应用程序的开发人员经常会使用构建 Doc...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2全家桶,快速入门学习开发网站教程
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7