【51CTO.com原创稿件】本期主人公大师兄,人称翔神,目前就职于某知名商城架构部Linux运维工程师一职,熟悉高并发,负载均衡,Redis集群高可用,运维开发等,喜欢和同道中人分享运维那些事儿。
大师兄·Linux运维工程师
转眼间,大师兄毕业已经三年多了,从IT界的小白到Linux运维大神,他也算拥有一技之长,坚持投资自己的大脑,是他最骄傲的事。从C语言,到Linux运维,到Python的运维开发,再到Java,一路不断学习,挑战自我,内心感慨,特写成文章分享,和开发者们共勉。
踏足IT,时刻在分享
虽然大师兄是计算机专业学生,但年少无知,大学他没有好好学习,最初还简单学习了一下C语言,后来电脑就成了看视频和打游戏的***利器,关于计算机的学习少之又少,甚至连打字的指法都是在他毕业后重新练起来的,简而言之,low爆了。
偶然的机会大师兄进入到一家软件公司,才勉强可以混口饭吃。刚毕业的他以学习为主,开始接触的平台是在UNIX系统(Linux系统的前身)中做C语言开发,领导先让他学习Shell命令,并统计每天工作中所需要数据,大师兄开始网上找各种资料,即使平时也有练习过,但仍觉得似懂非懂,很多情况是学了后面,忘记了前面。想要解决现状,增加自己写Shell脚本的能力,他主动请缨,和带他的师傅说,把工作中很多的数据在服务器上用Shell脚本处理好,然后Download下来,直接导入Excel表格,***整理成数据。这样慢慢写了几个关于文件操作的脚本以后,他编写Shell的能力有了很大的提高。大师兄珍惜这个练手机会,把编写好的Shell脚本共享到博客中,给遇到同样问题的开发者提供帮助。
分享与投资是运维小白提升的快速渠道
投资自己的大脑和学习,永远都不能吝啬,永远不会过时!在找资料的过程中,大师兄在Q群里偶然发现了一个阿铭Linux的培训,看他们Linux运维的就业薪水都在8K以上,跟他毕业时的薪水相比高出好多,有些同学的就业甚至更好,受薪水影响,大师兄心动了。2014年他给自己设定的目标简单粗暴:半年内让自己月薪过万。当时好多同学都嘲笑他有点不可能。但是他坚定了目标,索性就给自己投资了一把。那时每天晚上下班,他就随便吃点东西,打开电脑一学就学到晚上12点,心中只有一个概念,用半年的时间补回来大学荒废的时光,尽快找到一个体面的工作。在接下来的半年时间里,他复习Shell命令,熟悉各种web容器:Nginx,Apahce,Tomcat等各种配置,了解各种负载均衡软件LVS+KeepAlived,Nginx和HAProxy的反向代理,以及其他运维常用到的软件。最终实现了自己的小目标,拿到了某知名商城offer。
分享仓储运维那些事儿
成功入职Linux运维工程师的他,对公司架构不熟悉,出现问题没法排查,不知道看哪些选项,无从下手,对系统高可用的脑裂不会处理,没法及时解决系统故障问题。大师兄跟身边的同事和架构师们学习了很多运维的技能。在不同的环境中,用不同的架构,对高并发,高可用,高性能有了更加深层次的认识,特别是对LVS的DR模式,NAT模式的区别,包括在Nginx并发大的情况下的Linux系统内核参数的调优方便,请教了很多次架构师,真正掌握了从磁盘Raid,电力这些硬件设备,再到系统的主从高可用,有了更加深刻的认识。
对于流量在服务器上的请求过程,很多同事在刚入职或者对业务情况不是很熟悉的情况下,对服务器的性能,并发,请求的流程并不是很清楚,甚至有些研发每个人都是负责自己的应用,对整个系统并不是有很深的了解。这就需要做运维的大师兄来讲解了,了解公司业务,对业务流程理解清楚了,再看仓储系统架构是怎么部署的,了解完架构以后,对请求的流程具体情况进行抓包处理,看看请求包的走向和流程,再根据LVS原理等分析出来。
在大自然的发展中,人类是有惰性的,遇到困难自然想去逃避,想选择舒服的生活,所以大师兄为了克制自己的惰性,在《恰同学少年》电视剧中看到毛主席组织读书社,于是他在公司找身边朋友组织了一个学习小组,给大家安排一起学习的时间,每个人把自己学习到的新技能或者擅长的技术拿出来给大家分享分享,最终来说,收益***的其实是自己!
对于入门IT行业的同学,大师兄认为可以从运维行业入手,运维相对开发来说,需要的逻辑思维能力比较低,可以快速上手,而且相对可以找到一个不错的工作岗位,对于新入手的小白,给出几点建议
1.对高可用,高并发,高性能要有深入的研究。对于这种学习,多半靠经验。好多书都没有真正介绍,这个需要根据业务场景选择不同的架构需求;对于高并发,要和有经验的大牛多接触,真正想研究清楚,还是需要看系统的性能,看系统的瓶颈,看系统本身有一个深刻的认识,结合一些官网上的资料和说明加以巩固。
2.对各种web容器要有深刻的理解。小白可以从配置文件入手,真正理解清楚配置文件的参数选项,对web容器有一个大概的了解和认识,对项目目录和安装目录要十分了解,可以快速部署和迁移项目。学会看日志,不断地的从日志文件中发现错误,及时改正。关注大牛的帖子,关注Nignx中文官网。
3.对原理的掌握特别重要,一定要在开始学习的时候,搞清楚原理,可以和有经验的同事学习。
4.实践出真知,很多实验性的东西都需要自己亲自去测试,不能只知道大概。
5.对于系统内核参数的调优一定要慎重,一定要多次实验,确保可同再上线。
6.有兴趣的同学可以看看很多开源软件的源码。
7.随着自动化,虚拟化,大数据的不断推崇,Python这门语言对于高级运维来说已经成为一个很重要的加分项。
大师兄和他所在组的架构师交流过,面试时,先看重一个人做代码的逻辑思维能力,然后就是自己的知识水品,那平时的总结就变得特别重要,所以一个优秀的程序员应该会写学习笔记,总结过程就是自己梳理知识,再次认识和学习的机会。
生活不止眼前的苟且,还有诗和远方,大师兄的目标是架构师。他很清楚自己的成长规划,从初级运维工程师到高级运维,再到架构师,需要很多开发的知识。现在运维的工作对他来说已经很简单了,目前在进阶学习运维开发领域。工作之外,大师兄又学习了Python开发,基于Ansible或者SaltStack做web自动化运维,最近又在学习Java。一个架构师,最起码是一个全栈工程师,前端的HTML、CSS、JavaScript等都需要会,自己真正做几套系统,有一些成就,就离架构师不远了。在学习的过程中,不管是看书,看视频,报班,自学,哪种都好,但是一定要找一个适合自己节奏的学习方式,找出自己学习***效的学习方法,祝大家早日成为大牛。
如果你也愿意分享你的故事,请加51CTO开发者QQ交流群 312724475联系群主小官,期待你的精彩故事!
【51CTO原创稿件,合作站点转载请注明原文作者和出处为51CTO.com】