【小宅按】今天和大家一起分享一位有十几年Linux运维经验大神的甩锅秘籍。
背景:小张,3年网工一枚,常常抱怨:薪资不高,琐事一堆,常常背锅。 眼看一把年纪了,发现不能再这样下去了,向笔者讨教一条逆袭之路!
关于笔者
最早接触Linux是在2000年,当时笔者还在上大学。一个从荷兰归来的同学,带回一个Linux的拷贝版,版本还是个人版Redhat6.2。
为安装这个系统,两人挑灯夜战,不亦乐乎。那时Linux的学习资料还很少,能够学习的书籍也不多,网上Linux技术社区更不多,便凭着Redhat6.2自带的几页使用说明开始了Linux学习生涯。这算是笔者学Linux的起点吧。
其实学Linux门槛很低,只要你想学,有热情,有学习能力,几个月时间就能轻松上手干活。
Linux:快速入门?
那么通过什么学习方法,能够快速入门Linux呢?笔者经过多年的工作和学习,总结出了下面一套方法,希望对大家有用:
1. 多动手实践,理论结合实际
这个太重要了,我见过太多的人,懒于动手,觉得能看懂,能听懂,就不去实践练习,结果觉得什么都懂的人,在真正干活的时候傻眼了。
很多Linux知识,例如每个命令的参数含义,在书本上说得很清楚,看起来也很容易理解,但是组合起来使用,却并不那么容易,没有多次的动手练习,其中的技巧是无法完全掌握的。
2. 一定要习惯命令行方式工作
Linux下90%的操作都是在命令行下完成的,因而,命令是必须要熟练掌握的,可能刚刚从windows下转到Linux的新手会感到困难。
3. 选择一个适合自己的Linux发行版本
linux的发行版本太多了,目前大约有300多个linux的发行版本,但是,请不要为此而感到没有头绪,根据自己学习Linux的方向,选择适合自己的发行版本。
例如,如果喜欢Linux的企业级应用,想从事linux服务器管理方面工作的话,推荐学习CentOS版本或者Red Hat Enterprise Linux发行版本;而如果是开发、测试等等,推荐你选择Ubuntu Linux;如果你已经是Linux的初中级学者,想继续深入学习,推荐你选择CentOS或者Debian Linux等。
4. 学会做笔记、写实录
这个笔者体会很深,学的再多,都是会忘记的,见过很多初学者,学过了,但是因为工作环境暂时用不到,所以很快又忘了,难道要无数遍的学吗?
谁都会忘记,但是有个方法可以让你忘记后迅速找回已经学过的知识,那就是做笔记,写学习实录,笔记要做的非常详细,甚至可以像流水账一样都行,只要自己能看懂即可,特别是学习过程中,自己遇到的坑,一定要写的足够详细,这样的话,在需要重新熟悉这部分知识的时候,可以迅速唤醒之前的记忆。
如果有条件,也可以把自己的学习过程通过视频的方式录制下来,这样更有助于以后的备忘查询,效果更好。
5. 学会自我学习、独立学习
学习一项技能的过程,核心是自己,不能依赖任何人,不管你是报了培训班,还是找了私教,他们只是你学习过程中的引路人,他们的作用是帮助你把握学习方式,帮助你少走弯路,同时把他们多年的经验分享给你,除此之外,其它都要靠你自己,所以,在这个过程中,要养成独立学习能力。
什么叫独立学习,那就是出现问题,先自己解决,能解决,那就是进步,不能解决了,再去问老师,那怎么独立解决呢,这需要依赖一些网络工具,最典型的就是搜索引擎,出现问题了,最简单的就是把出现的错误复制到搜索引擎,99%都能找到答案,这就是独立学习能力。此外,还可以通过使用Linux自身提供了强大的联机帮助文档,QQ、微信技术交流群等多种形式,都可以去提问并解决问题。
独立思考并解决问题,不但锻炼了自己独立解决问题的能力,在技术上也能得到快速提高。如果通过向人询问得到答案后,要思考为何这么做,然后做笔记记录解决过程。最忌讳的方式是只要遇到问题,就去问人,虽然这样可能会很快解决问题,但是长久下去遇到问题就会依赖别人,技术上也不会进步。
运维:学什么?
做一名合格的运维人,要学的技术是很多的,具体有哪些,下面是我做的一个简单总结:
1. 基础运维技能
Linux多种安装方式
硬盘RAID技术与RAID选型
Linux初始化init系统
系统服务管理工具systemd和sysvinit
Linux下的shell编程入门
Linux下各种命令使用(常见80多个)
源码、yum、rpm方式安装软件
Linux用户权限管理
Linux磁盘与存储管理(LVM、fdisk)
Linux内存与内存机制(swap、free)
Linux文件系统有文件系统选型(ext3/ext4/xfs/nfs)
Linux进程管理与监控crond
2. web运维技能
基于Apache的LAMP架构
基于nginx的LNMP架构
apache下https、反向代理、Prefork MPM、 Worker MPM
apache+jk+tomcat web架构
nginx的反向代理、负载均衡、https、PHP-FPM应用
3. 数据库运维技能
MySQL常用操作与基础调优策略
Xtrabackup工具的使用
MySQL Replication架构
MySQL高可用架构MHA
MySQL读写分离中间件proxysql
redis内存数据库以及主从架构
4. 性能调优、故障排查技能
系统调优评估方法
CPU、内存、磁盘、网络性能评估工具与方法
线上Linux服务器基础优化技能
Linux软件防火墙iptables以及rsync数据备份
5. 自动化运维技能
ansible的使用
ansible使用Playbooks管理复杂任务
puppet自动化工具的使用
saltstack自动化工具的使用
6. 运维监控技能
zabbix运维监控平台
Ganglia分布式数据收集展示平台
nagios自动化告警平台
centreon一体化智能监控平台
7. 集群架构技能
Keepalived高可用集群
LVS负载均衡集群
HAProxy负载均衡集群
Keepalived整合lvs与HAProxy
8. 虚拟化、大数据技能
KVM虚拟化与虚拟机管理工具
ELK+Filebeat+Kafka+ZooKeeper日志分析平台架构
hadoop生态圈以及分布式集群
hbase、hive、pig等分布式计算工具
分布式计算MapReduce与yarn工
spark分布式计算框架
9. 容器、容器编排
docker基础与镜像、容器、仓库
Dockerfile 定制镜像
Docker编排工具Compose使用
自动化容器操作平台Kubernetes(k8s)

成为:高薪运维?
要成为一名合格的,拿高薪的运维工程师,不但需要上面我们说的那些技术能力,还需要更多的个人素质能力,总结如下:
沟通能力、团队协作
主动性、执行力、精力旺盛、抗压能力强
工作中胆大心细、不走寻常路
逻辑思维能力要强,为人谦和
这些看似可有可无的能力,却是面试官最看重的点,它甚至比技术能力得分还高。当然技术也是衡量运维人员的标准,但是我认为仅占30%。
选择:运维or开发?
很多人跟开发比,觉得运维这个职位很low,干的都是一些打杂的活,还经常背锅。你错了!
随着云计算、大数据等的迅猛发展,运维这个岗位会越来越紧缺。因为未来是综合技能职业的天下,而运维就是一个要求综合技能的岗位。
笔者见过很多所谓牛逼的开发人员,做过各种大项目(超千万,过亿都有),开发过各种高并发的系统,可交流下来,发现这些人确实有超越常人的地方,但仅仅是在开发的某些方面。
而论综合技能,真的不敢恭维,起码的网络知识,系统安装等等都不会。这在一个分工细化的大公司里面,优势才能体现出来,而如果在一个小公司里面,完全没有优势可言了。
未来:运维+开发
未来是综合技能的天下。随着运维这个职业的发展,企业对运维技能的需求也在发生变化,例如现在很多运维岗位,都要求运维具备开发能力,这就是所谓的DevOps。
DevOps是 “开发”和“运维”的缩写,但它不仅仅是运维开发,它是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运维和质量保障(QA)部门之间的沟通、协作与整合。
从这个方向看,未来的运维是协作运维,公共开发的趋势。所以,运维人员要应对这个趋势,还需要精通一门开发语言,其实任何语言都行,那要推荐的话,当然是目前最流行,最有钱途的go、python、php等,不要求都掌握,挑选一个深入掌握它即可。
好了,运维相关的话题就说这么多,你是否也有小张类似的困惑,不要纠结了,借用《解忧杂货店》里面的一句话:
“其实所有纠结做选择的人心里早就有了答案,咨询只是想得到内心所倾向的选择。最终的所谓命运,还是自己一步步走出来的。”
是的,把握住方向,剩下的就靠自己一步步去努力,去坚持了!
更多精彩内容,请滑至顶部点击右上角关注小宅哦~

来源:51CTO 作者 南非蚂蚁