不知不觉中,2018年已经过了三分之一,自己也马上毕业五年了。由于某些原因,自己上学比一般同伴晚2年左右,马上满30周岁,而立之年。回顾毕业后在昆明这几年,除了买了房,其他也没有做出什么惊天动地的大事。2017年6月以前没有注意经验的积累及未来职业生涯的规划,没有很大的收获和进步。从上大学到现在,也去了很多地方,被誉为春城的昆明,蓝天白云、风景优美、气候宜人。虽然昆明紫外线确实要比那些低海拔地区强一些,但是像我这样一年基本晒不到太阳的人来说,毫无影响。现在的工作离家也近,8公里左右,半小时公交就到家,父母离自己也近,基本一星期就能见一次,自己的房子,住着也舒服。这情况,身边大部分亲戚、朋友都认为我不应该再出去了。但是我认为不趁现在自己还有精力的时候提升自己的能力,慢慢地温水煮青蛙那样的情况就要在自己身上上演了。今年3月份的时候,跟领导说过想辞职的想法,那时候带着些许冲动说出来的话,并没有深入地考虑一些其他问题。其实我来目前的公司只有十个月左右,挺短的!
4月初,做了一些更深层次的思考,目前昆明的IT环境,缺少国内一流互联网科技公司,具备一定规模的互联网科技公司仅有那么屈指可数的几家,反复看了一下他们的招聘要求及周边同行小伙伴的反馈,这边技术落后,思想保守,缺乏创新。如果一直在这样的环境中工作,迟早会成为井底之蛙,随着年龄的增加,肯定会被这个时代所淘汰。经过几天的深思熟虑,我打算去北京看看,看看目前行业内的公司都在使用什么技术和要求什么样的人。出发之前还跟领导详细聊了一会儿,在此我十分感激我现在的领导。这次行动我并没有给自己太多时间,用了一天的时间更新了主流招聘平台上的简历,从4月19日开始投简历,25号从昆明出发,安排了26号、27号两天为面试时间,2天的时间一共安排了8家公司进行面试,这些公司基本都是业内比较有影响力的公司。
这次去北京的主要目的是学习,每面试完一家,我都会把这家公司使用的技术及对相关人员的素质要求做一个记录,查缺补漏,完善自己的技能树。如果不是业内顶级的平台,我不会考虑盲目辞职,毕竟毕业这么几年跳槽好多次了,虽然每次都有所提升,但是这并不是我想要的。这次转型目标明确,对自己要求比较高,一定要有实质性的改变。找一个地方,潜心学习、钻研五到十年,把事情做到极致,做到行业的顶尖水准。如果达不到预期,那么我就回来云南继续努力,按照一流公司的人才标准要求督促自己,不虚度光阴,为我现在的公司壮大发展做好知识储备,为未来做好准备。虽然云南省IT环境整体不好,目前公司给我的薪水也不是非常高,运维工程师也就我一名,但是我还是看好我目前我所在的公司,绝无仅有的资源和平台,一位具有远见卓识的领导。
再扯就扯远啦!言归正传,对这两天面试做一下总结,并为自己设置一些小目标。
系统
系统是构建一切服务的基石。Linux依然是各大互联网公司的首选,在众多发行版中,CentOS系列在众多企业生产环境中基本能够达到一枝独秀的程度,也有极少一小部分使用SUSE Linux。对Linux的要求主要有以下几点:
- [x] 基本命令。
- [x] 三大剑客的熟练使用。grep、sed、awk的使用基本已经成为了标配,在这一方面,我可能还需要进一步强化,还需要掌握一些高级功能的使用。
- [x] shell。目前的Unix/Linuxshell有:bash、tcsh、csh、ash、bsh、ksh,bash是大多数Linux系统以及Mac OS X默认的shell,bash成为主流,作为一名运维工程师应该必须掌握的技能。目前在这一方面我还缺乏一些高级功能的实践经验,在接下来的工作中,能用bash实现的尽量使用bash实现。
- [x] 系统安全。系统安全也是各大企业比较关心的一个方面,如防火墙的使用(虽然目前主流的CentOS7的默认防火墙为firewalld,但是依然还有一些公司在使用iptables)、系统加固、权限管理、漏洞修复、系统更新。目前在这些方面我都有一些经验,但是还需要更加深入学习。
- [ ] 系统优化。Linux的系统优化是一项技术活,包括系统层级的优化和内核级别的优化。目前我都还没有较为深入的系统优化经验,这一方面需要主动找机会实践。
自动化运维
- [x] 至少一种自动化运维工具的使用经验。数百台机器一般选用Ansible,大规模数千台机器一般选用SaltStack。目前我使用过Ansible,只有比较初浅使用经验,需要进一步学习强化。在Ansible使用熟练之后,抽时间实践SaltStack。
- [ ] playbook是Ansible的基本要求。在今后的工作中一定要加强实践。
开发能力
- [ ] 很多公司都要求运维工程师需要掌握一至二门编程语言,有的公司还要求掌握诸如Django、Flask之类的框架。Python基本成为运维工程师基本技能要求,我在16年的时候就重点花过精力学习过Python,基本语法,数据结构已经掌握,但是中途使用的机会少,没有实战经验,在今后的工作一定要给自己制定一个明确的目标,一步步的去完成目标内容,适当的时候用到公司的生产环境中。
- [ ] 有的公司已经在生产环境中使用go语言了,招聘的时候也有要求。接下来的工作中,抽时间学习go语言。
数据库
- [x] 关系数据库,如MySQL、Oracle,常用的增删改查语句。特别是MySQL,需要进一步花时间、精力来学习。
- [ ] 非关系数据库,如Redis、MongoDb,需要了解。此部分内容,从未涉及到,今后一定要找机会、花时间学习。
- [ ] 数据库的容灾、备份、迁移。此部分只实践过Oracle及MySQL的同步配置、备份与还原。如热迁移、冷迁移、备份策略设计均还未接触过。
系统架构
- [x] 资源、容量规划。
- [ ] 高可用、负载、集群。LVS、Haproxy、Keepalived、Heartbeat、Nginx等软件的搭配使用,高可用方案的设计与实现。
- [ ] 分布式。分布式系统、分布式存储,内容超级多,又格外复杂,需要花大精力来学习、实践。可以先从zookeeper入手,这玩意目前公司在用。
- [ ] 微服务。
常用服务
- [x] DNS、NTP、NFS、SMB、FTP、Apache httpd、Apache Tomcat、Nginx、MySQL等常用服务必须会熟练部署。简而言之,就是要达到红帽RHCE的标准。这些方面目前已经熟练掌握,正在向更深入的方向发展。
- [ ] JVM优化。
- [ ] Tomcat优化。
- [ ] Nginx优化。
监控系统
- [x] 企业常用的监控系统主要有zabbix、nagios、cacti等。Nagios在上家公司实践过,时间久了,快忘记完了。zabbix及cacti自己简单的搭建了一下,没有应用到生产环境。争取进一步的强化、实践。
- [ ] 监控脚本。
日志收集、分析系统
- [x] ELK平台的搭建。已经在实验环境进行过搭建,争取在后期投入生产环境使用。
- [ ] 熟练使用ELK。
云计算
- [x] 居于KVM的云计算平台。KVM在近几年的发展比较迅速,有实力的大公司已经在尝试OpenStack。对于P2V、V2V迁移已经有过实践经历,但是对其原理、架构理解不够深入。希望自己在基于实践的基础之上,再做更深入的钻研及总结。
- [ ] Docker发展很火热,在一线城市已经成为主流虚拟化方案。Swarm、Kubernetes、Mesos等均有公司选用。之前用过几次Docker,但是就是按部就班,没有进行深入理解,在今后的学习过程中不能再停留这个阶段,必须进行更深层次的学习、探索。
其他
- [x] TCP/IP模型的理解是很多公司面试会问到的一道题。
- [x] Linux的开机流程也是一道常考试题,这也是对Linux系统的基础理解,需要注意。
- [ ] 大数据运维,这个目前有一些公司在招,招的人不多,要求比较高。
两天的时间,感触良多,总结完之后发现自己任重而道远,希望明年的此时此刻我的技能树又更加枝繁叶茂。不断努力,继续前行,注重自我驱动与自我实现。万丈高楼平地起,厚积薄发,最后应该能有所成。在工作中,外行人或部分领导注重的是结果,在做事的我们更需要注重过程,思考、总结、积累,才会进步!分享出来,希望对大家有所帮助,不足之处还希望大家多多指教,希望大家一起共同进步。(由于MarkDown版本的问题,有些页面并不支持[x]这种写法,[x]代表已经完成的或基本掌握的内容,[ ]代表没接触过或尚未掌握或未完成的任务)