做 运维 感觉像网管怎么办?新工作运维3个多月,天天就是维护重启服务器,更新代码……感觉这样下去几年后就没有什么竞争力了…… 这是一个热门运维问题,也是很多刚进入运维工作的同学面临的心境。
确实,【 运维 】可能是分水岭最明显的职位之一:有的人毕业6年,月薪从3K涨到到50K;有的人工作4年,依然做着重启服务器、检查机房的机械工作,这都是知乎上能看到的真实事例。
今天,我们就通过拉勾上,薪资 5K 到 100K 的运维招聘要求,来看看运维从搬砖到大神,都要学习些什么。
阶段一:3K—5K
“昨天又搬了65台服务器……”
——本阶段工作描述
一张图概括:
招聘岗位和要求:
岗位一:
岗位职责:
- 公司电脑多媒体以及网络日常维护,以及桌面运维支持(4K—6K)
任职资格:
- 能熟练更换PC硬件
- 熟悉办公常用软件以及邮箱
- 对网络运维方面有一定了解,并能够熟练配置交换机防火墙以及路由器。
岗位二:
岗位职责:
- 负责公司内、外网络平台的搭建、实施及网络(含无线网络技术、设备)的具体维护工作;
- 针对公司开展的网络技术方案的定型与实施工作提出建议;
- 网络及安全技术实施方案中安装、调试、维护工作;
- 负责公司办公网络及IDC网络日常维护工作;
- 负责集团网络设备及广域线路的统计工作。
任职资格:
- 2018届毕业生,专科及以上学历、计算机相关专业;
- 诚实守信,性格开朗,无不良历史记录;
- 善于学习,善于沟通,文档功底好,勇于面对挑战,敢于承担工作压力;
- 学生干部或有相关网络工程师认证(Cisco认证、Juniper认证、Huawei认证等)者优先考虑;
- 熟悉Linux操作系统和虚拟化技术的优先。
技术关键词:
Linux、服务器、环境部署
运维工程师 —— “Operations Engineer”,字面意思可理解为管理系统、服务器的工程师。初级运维最常见的工作就是熟悉和维护服务器——所以检查机房、搬服务器是90%的运维都会经历的。
进阶一点的,就要开始学习搭建服务器、搭建网络、配置环境等工作了。绝大多数服务器都使用Linux系统,所以熟练使用Linux是硬性要求;服务器需要配置网络,所以对路由协议、网络协议等网络原理也要掌握;产品开发完成后,还需要运维部署环境,安装相应的软件;安装完成后就可以上线吗?不,有时你还需要部署一套测试环境……
在这个阶段中,运维的大部分工作都是简单和机械性的,对技术水平的要求很少,以至于薪资也较低。所以刚毕业的程序员往往有一个错觉:运维岗不如开发岗。他们会感到「迷茫」,甚至「焦虑」……
“感觉自己就是个网管……” “每天的工作就是维护、重启服务器,看不到希望……”
但其实,运维是一场真正的马拉松。同样是第一个阶段,你只跑了1%,开发的同学已经跑了20%,你的提升空间远远超过他们。
阶段二:6—15K
“从删库到跑路……”
一张图概括:
招聘岗位和要求:
【岗位职责】:
- 负责服务器的配置、维护、监控、调优,故障排除等;
- 运维自动化及运维脚本开发;
- 大用户量下高性能服务器系统部署方案的制定及实施与监控;
- 及时响应并处理线上故障。
【任职要求】:
- 计算机相关专业大学本科以上学历,具有扎实的计算机基础理论知识;
- 熟悉mysql、mongodb、redis、mq、elk、nginx、tomcat的安装部署及优化;
- 具有良好的故障排查能力,良好的逻辑分析能力及技术敏感度;
- 熟悉掌握使用shell、python脚本语言,能熟练进行脚本/工具开发,对自动化运维有较深入的理解或者经验者优先;
- 高度的责任感,较强的故障分析及排查能力,善于在工作中学习,能承受工作压力。
(10-20K —— 乐视)
技术关键词:
故障排查、优化、Shell、Python、监控
随着自身技术的积累,运维的薪资在突飞猛涨。这时,你已经可以在公司或某项目里独当一面(du zi bei guo)。要达到这个阶段的要求,你需要掌握这些技能:
一、排错和调优
上线没多久,服务就502了,还不被老板骂死。尽管你有一肚子的委屈,我只是个运维,代码不是我写的,为什么要我来背这锅?!委屈归委屈,服务访问不了了,就是运维的事。尽快定位问题,解决问题才是王道。怎么来定位问题呢?最简单直接的办法就是看日志,看系统日志,看软件相关的日志,结合故障现象和经验,快速的进行定位和恢复。然后就是总结经验,吸取教训,写事故报告。OK,现在你知道,需要对系统环境需要进行一定的调优操作,不再做背锅侠。
相关技术: top, vmstat, iftop, awk, sed, sar, iostat, strace, …
二、备份
之前的Gitlab删库事件的教训犹在眼前,丢失了几小时的数据,虽然大部分的备份策略都失效了,但还是挽救了几小时前的一个备份,才没有造成更大的数据丢失和公司损失。我们需要对设备进行备份冗余,需要对数据库进行备份及离线备份,需要对网站静态进行备份冗余,需要对机房进行备用,能做到双活,那是更好的啦。
相关技术: rsync, crontab, lvm快照, mysqldump, extrabackup, 完全备份, 差异备份, 增量备份, 离线异地备份, …
三、高可用集群
没有永垂不朽,我们不能保证硬件24小时在线,但需要保障服务24小时在线。
出现故障后,如果做好高可用和冗余,故障自动切换,移除故障节点,那样也就保障了服务的实时在线。在老板和用户不知情的情况下,悄么的把故障处理好的,KPI算是保住了,奖金也许就会有的吧。
相关技术: F5, Nginx, LVS, HA-proxy, MHA, Zookeeper, 各种其他分布式集群方案, …
四、监控和警报
时刻担心网站挂掉,一年365天、每周7天、每天24小时,时刻保持精神高度紧张,就算你是神仙都会撑不住的。我们需要一个机器来监督其他的机器工作,我们需要解放我们自己。当有故障发生的时候,通过短信、微信、钉钉、邮件等等通知对应的运维工程师来处理,甚至是自动切换或摘除故障节点,然后我们离线对故障节点进行问题排查。
相关技术:Zabbix, Prometheus, open-falcon, Ganglia, sar, …
阶段三:20K—45K
“Linux运维真的能为所欲为……”
一张图概括本阶段:
招聘岗位和要求:
职位一
【岗位职责】:
- 制定和优化运维解决方案,包括但不限于柔性容灾、智能调度、弹性扩容与防攻击;
- 推动及开发高效的自动化运维、管理工具,提升运维工作效率;
- 探索、研究新的运维技术方向。
【岗位要求】:
- 本科及以上学历,3年以上的Linux系统使用和管理经验;
- 熟悉 Linux 操作系统原理、TCP/IP 以及常用RPC协议;
- 熟悉脚本语言Bash/Python等脚本语言的一种并有相关开发经验;
- 熟悉Docker、Kubernetes等开源软件;
- 熟悉常见应用配置及优化,如Nginx/Haproxy/MySQL/DNS/Redis/MongoDB等;
- 熟悉常用的监控系统,如 Zabbix、Nagios 和 Ganglia 等;
- 熟悉systemtap、perf、oprofile 等分析调试工具;很强的Troubleshooting能力、且能够推动业务问题改善和解决;
- 具有良好的的沟通、执行能力和强烈的责任心;
- 耐心、细致、学习能力强,较强的工作计划;
- 在开源社群活跃并有积极贡献者优先
( 22-40K —— 陌陌 )
职位二
【 工作职责 】
- 负责京东内部信息安全平台的基础运维工作,处理值班问题,确保系统服务稳定性;
- 负责运维自动化/标准化方案设计,自动化工具及平台研发,提升运维效率;
- 负责生产、测试、灰度多套环境的部署和维护,配合研发、测试团队进行应用部署;
- 制定信息安全集群监控和报警方案,处理报警问题;
- 定位与分析运维问题,给出解决方案。
【 职位要求 】
- 计算机相关专业,本科及以上学历,至少2年以上的大规模系统运维经验,2年以上运维开发经验,有deveops开发经验或有中大型互联网公司运维自动化经验者优先;
- 具备openstack或docker集群运维经验;
- 掌握shell/python/perl/php其中一种脚本语言,有Python实际项目经验,熟练掌握Django、Tornado等任一Web开发框架者优先;
- 掌握互联网常用的中间件维护、管理,例如redis、mongodb、kafka、memcached、dubbo等;
- 掌握tomcat、nginx等常见应用的搭建、配置、优化;
- 掌握zabbix、nagios、elk等系统的搭建、配置、优化;
- 掌握一种大规模自动化运维工具(saltstack、ansible、puppet),有二次开发经验优先;
- 熟悉linux/uinx,windows操作系统基础原理及常用操作;
- 熟悉常见运维配置及优化,如Svn/git/Ansible/Nginx/Tomcat/salt等;
- 熟悉TCP/IP、HTTP等协议,有良好的网络、数据传输、安全、计算机体系结构方面的知识;
- 认同DevOps文化,重视自动化方式处理各种问题;
- 具备良好的项目规划、推进能力;
- 具有良好的沟通协调能力、较强的团队合作精神、优秀的执行能力;
- 有很强的分析和解决问题的能力。
( 30 – 50K 京东 )
技术关键词:
自动化、DevOps、云服务、Docker、kubernetes、安全……
deveops、openstack、docker、集群运维、shell/python/perl/php、Django、Tornado、redis、mongodb、kafka、memcached、dubbo、omcat、nginx、zabbix、nagios、elk、saltstack、ansible、puppet、linux/uinx系统基础原理、Svn/git/Ansible/Nginx/Tomcat/salt、TCP/IP、HTTP……
看到这些技术名词,相信你一定会明白,高端运维为何配得上这么高的薪资。
虽然以上这些技术并不是全部需要掌握的,同一类型掌握一样即可,但仍可以看出,这个阶段的运维已经是集大成者 —— 在中型公司可以胜任CTO的位置,在大型公司可以担任项目的技术负责人。想达到这个阶段,你需要掌握这些技能:
一、安全和审计
不安全的网络环境和服务器配置,无异于在网络世界裸奔,任何人都可以窥探你的隐私。你的应用是否做了SQL防注入?你的防火墙是否开启?是否还在用root+密码的方式登录服务器?网站开启了https么?是否对系统操作进行审计?
相关技术: iptables, firewalld, waf, auditd, 各服务的正确配置, …
二、DevOps 与自动化
偷懒是社会进步的第一动力。聪明的我们怎么会让自己一直在重复枯燥的事情上浪费时间,装系统、部署环境、发版本、批量操作,把这一切交给程序去实现吧,我们需要的是享受生活。
相关技术: shell, python, go, rundeck, ansible, saltstack, puppet, chef, cobbler, fabric, …
三、虚拟化和云计算
云计算革命的发起人是卖书的亚马逊,这家伙希望卖一切可以卖的东西,包括自己闲置的服务器资源。现在国内的阿里云和腾讯云也发展得如日中天,他们几乎提供了运维所需要的一切,甚至可以让一个公司不再需要运维的岗位。你需要服务器,只需要几秒钟,就可以创建一台。你需要数据库集群,只需要鼠标点击几下,就可以开通。
相关技术:docker, Moby, kubernetes, Xen, CoreOS, Hyper-V, KVM, …
阶段四:50K — ???
一张图概括本阶段:
招聘岗位和要求:
80K—100K
【岗位职责】
- 作为公有云SRE软件技术专家,负责自动化运维平台的系统分析和架构设计,指导研发团队实现设计,规划未来平台技术架构方向;
- 负责全局性和前瞻性的架构设计,以及关键技术细节的实现,解决业务发展遇到的架构问题,持续提升系统平台稳定性;
- 负责持续关注业务技术发展和最佳实践,并结合华为云运维产品业务特点推进新技术及实现方案的落地;
【岗位要求】
- 本科及以上学历,6年以上大型业务应用系统的架构设计和落地的实际能力,熟悉分布式、缓存、消息等机制,能对分布式常用技术进行合理应用,解决实际架构问题;
- 海量数据处理和架构能力及经验,熟悉SOA并具有系统的架构设计经验;
- 精通Java/Python/Go/C/C++其中至少1种编程语言;
- 精通操作系统,数据库,IO、多线程编程原理、集合等基础框架,对JVM原理有深入的了解;
- 精通分布式事务处理框架原理和实现,精通多线程及高性能的应用的设计,编码及性能调优经验;
技术关键词:
???
这个级别的大佬要么是有极强的管理能力,要么是对某技术有底层的深入研究,已无法归纳具体的技术要求,您:爱学什么学什么吧……
总之……
运维是个需要不断学习的职位
100K 还远远不是天花板
如果你确定了要努力的方向,那就学起来吧!
※更多文章和资料|点击后方文字直达 ↓↓↓
100GPython自学资料包
阿里云K8s实战手册
[阿里云CDN排坑指南]
CDN
ECS运维指南
DevOps实践手册
Hadoop大数据实战手册
Knative云原生应用开发指南
OSS 运维实战手册
云原生架构白皮书
Zabbix企业级分布式监控系统源码文档
Linux&Python自学资料包
10G面试题戳领