enter image description here

访谈嘉宾:阿铭,本名李世明,阿铭Linux培训创办者,猿课联合创始人,从事互联网运维工作8年多,先后就职于Discuz、腾讯、好贷,从最基础的运维到高级运维工程师,再到运维部门负责人,运维过的网站从访问量十几万PV到上亿PV,经历过各种各样的突发事故,运维实战经验非常丰富。

2011年,阿铭开始为女友撰写电子版Linux入门教程,到目前为止已经累计帮助数十万人。多年来在Linux领域积累了丰富的经验,熟悉Linux系统架构、性能调优等技术。

2013年创建阿铭Linux培训,目前已经培训多期学员。在从事Linux运维培训工作中积累了丰富的教学经验,培训过的学生薪资大多在8000元以上。


访谈话题:

跟技术开发工作相比,运维工作包括哪些内容?工作中的挑战有哪些?

运维工作更多的是,维护服务器的环境和配置,解决生产环境的故障。用shell或者python开发一些脚本,实现自动化,运维工作的很大一部分就是协助开发人员完成一些需求。工作中最大的挑战在于,当一些较大的事故出现的时候,运维人员能不能在最快的时间内恢复业务。平时,我们要加强技能的修炼,多去吸取别人的经验,还要尽可能地想到业务中可能出现的故障点,提前找到预备方案。只有这样,才能在遇到紧急事故的时候,做到临危不乱、胸有成竹。

我们知道您的运维实战经验非常丰富,也经历过各种各样的“突发事故”。请谈一谈给您留下最深印象的一次运维突发事故?从这次经历中,您又收获了什么?

经历过的大大小小运维事故非常多,有的大到全线瘫痪,可以说每次事故的解决都是运维团队的一次成长。最近一次经历过的、比较大的事故是DDoS攻击,对方打过来的量最多的时候超过了300G。一开始的量并不大,我们借助第三方的CDN防御,还能应付。随后,对方有把业务彻底打死的趋势,量持续地增加,最终导致CDN方直接回源。这样的话,机房根本扛不住,敌方就能最终封死IP,使业务彻底瘫痪。最后,我们只能接入了专业的产品,防范DDoS攻击。

通过此次事故,我意识到,只要产品足够优秀,任何公司都一定会遇到竞争对手,有了竞争的存在也就会出现一些不正当的手段。这种大流量攻击的出现有很大可能,所以需要提前做好预防,一开始可以购买低配版的防御套餐,如果问题加剧,可以再升级防御体系。另外,公司的业务尽量分布在不同的机房甚至是不同的城市,以分摊风险。

创办“阿铭Linux培训班”和“猿课”的初衷是什么?

最早仅仅是为了满足群里朋友的需求,通过录制一套视频,再结合我写的电子版教程,帮助群友学习Linux。后来阴差阳错地就做成了培训,其实,在最早的时候,我并不是奔着做培训这个方向的。

越来越多的学生开始信任我,愿意来报名我的培训班,我只能在工作和培训中二选一,最终我舍弃了工作,专职做起了培训。最开始培训学生的几年,我是一边工作一边培训的。因为付出的精力有限,对于报名的学员来讲我觉得是不公平的,所以决定全职做培训了。

为什么会想到给自己的女友写本技术入门书?这算是理工男最长情的告白方式吗?

谈不上告白,就是帮女友转型而已。当年,她辞掉了工作,处于待业状态,所以急需一份工作。要想快速学成,就得快速入门,所以我用了不到两个月的时间写出了这本书的电子版。我一边写,女友一边看。她的学习效率很高,学习的速度甚至比我写书的进度都要快

市面上有很多关于Linux的入门图书,比如《鸟哥的私房菜》《Linux就该这么学》《Linux从初学到精通》等,这本书的优势在哪里?

各有各的优点吧。我自认为,自己写的这本《跟阿铭学Linux》并不难,即使是没有接触过Linux的朋友也是如此,还有一点就是,我的这本书主要是帮助读者应对找工作而编写的,书中介绍的知识点都是我多年工作中所真切用到的技术,没用到的或者几乎不用的,并不会出现在书里。

对于运维人员来说,Linux操作系统真的是“百毒不侵”,更受青睐吗?

当然不是,如果厉害的黑客想要入侵系统,还是很容易得手的。Linux系统同样也存在这样那样的漏洞,比如去年的心脏出血漏洞,几乎所有的发行版本都有中招。Linux和Windows平台不一样,加上它的门槛高一些,黑客攻击时付出的成本要远高于得到的价值,所以就没必要去研究入侵如何Linux了。

怎么看待Linux运维的发展前景?

互联网可以大致分成几个阶段,以前是传统的互联网,现在是移动互联网,再过几年可能就会出现智能互联网,不管是何种场景,服务器、数据、网络通信都是必须存在的,只要有服务器的存在,那么就少不了Linux,更少不了Linux运维。随着云计算日趋成熟,越来越多的企业使用云服务器,虽然传统的IDC应用场景会减少,但是服务器的数量却是在增加的。运维的需求量自然是不会变少的,Linux运维的前景没有任何问题。但需要注意的是,运维技术日新月异,很多企业也都会随波逐流,自动化、智能化运维是将来的趋势,所以掌握这方面的技能对于运维人员来说十分关键。

如何理解“In UNIX, everything is a file”?Linux上的文件和Windows上的文件有什么区别?

在UNIX以及类UNIX系统里,一切皆文件,磁盘、进程、外设等全部都是用文件来表示的,这也是UNIX系统的设计思想。在Windows系统里,这很明显是不可能的。Linux和Windows本就是两个相差很大的操作系统,它们的内核设计形态、文件系统类型、内存管理机制等都不一样。

Linux系统下,如何有效地避免因为rm -rf 而误删文件?误删文件后,怎么才能恢复?

严格的规范制度,系统权限一定要限制到位,不该给的权限坚决不给,root权限只有在必要的时候才给到。要想避免误删文件,可以给rm命令搞一个自定义的脚本,比如,当运行rm命令时,要提醒3次才会删除,避免误操作。同时,也可以在脚本中实现这样的功能,删除的文件先要备份到一个大的磁盘分区。万一误删文件,首先要尽可能地避免对磁盘进行频繁地写操作,然后卸载掉分区,使用数据恢复工具尝试恢复。

很多知识是耦合的、相互依赖的。初学者在真正学习Linux之前,还需要了解哪些预备知识?

网络基础知识要学一下。简单的计算机硬件知识也要了解。对于网络知识,最好看一下CCNA相关的资料,而计算机硬件的话,推荐大家学一下计算机组成原理相关的书籍,这些知识点都不用太深究,了解即可。

在帮助学生掌握Linux运维的过程中,您认为初学者最容易犯哪些错误?

首先说下学习态度,急功近利,好高骛远,是我见过最多的。而在学习方法上,有的同学只是快速看课程、看书,虽然进度不慢,但效果并不好,这是因为没有动手去做实验,更没有总结自己的笔记。

您认为,学生需要对Linux掌握到怎样的程度,才能满足企业的基本要求?

就拿我的这本书《跟阿铭学Linux》来说,把书中的内容掌握到80%,去应聘一个初级的运维工程师是没有问题的。这里需要掌握的技能有:Linux基础知识,包括各种命令、磁盘、用户、权限等,LANMP,tomcat,java,mysql,集群,监控,shell,等等。


更多精彩,加入图灵访谈微信!