运维为什么应该学python?

上午我QQ的一个运维技术群不知道什么时候开始聊起作为运维人有没有必要再学习一门编程语言,学什么最好等,一开始开始我没看,没想到竟然在群里讨论了近2个小时,一般情况这种问题的都是运维新人,可能目前运维整体情况还不太了解,所以为了让更多的让新入行朋友不在迷茫,今天呢我就这个问题表达下我的看法。

我们先从第一个疑惑开始,那作为运维人员要不要学习一门编程语言?我给出的答案是:“如果不学习一门编程语言,再过2年你可能就得下岗”,我这绝不是危言耸听,不信你搜下现在对运维岗位的技能要求看看,但如果不够深刻,那接下里我们从现在运维的情况和未来运维的发展来分析下具体原因:

早些年的运维,基本是会部署个环境,懂点linux命令,再往后点呢,能用shell写出日常用的自动化脚本,满足业务的需求基本就可以了,企业对运维要求也是这些,一句话:别出事。但随着计算机技术的发展,凡是跟技术沾边的都经过不断迭代更新,运维属于技术机的一个分支,也经历了翻天覆地变化,现在这个时期我个人判断是要体现运维价值的时代,所以不创造价值的工作将逐渐被自动化运维平台所取代,也就是说之前上线部署很复杂的操作,通过一个运维自动化平台点点鼠标就可以完成实现,彻底拜托了对人的依赖,这个时期最明显的就是各个公司基本都有自己的运维平台,要么再建设中,要么已经建完了,如果平台就已建完,出于对公司人力成本的考虑,最基础的运维操作会由类似客服部门的人来负责,所以随着时间的推移,一些只做日常操作的运维将逐渐从公司消失,那按这个逻辑,既然要搭建运维平台,用shell肯定是不能满足了,所以你必须学习一门编程语言,这样你才可能拿到进入这个行业的门票。

接下来我们再谈谈未来,其实也不能算未来,只能说是趋势,大家都知道云计算非常火,国内公有云平台发展也很迅速,我个人猜测,不出三年,传统的运维都要变成基于云的运维,如果都变成了基于云的运维,你要做一些自动化的任务(比如IP切换),最简单的方式是调用云的sdk接口,这些sdk都不是shell的sdk,用shell是不行的,所以这也就要求你必须会一门编程语言,运维的角度会逐步从纯运维转变成DevOps,相信大家对这个概念并不陌生。

谈到这,我们第一个问题就算结束了,接下来我们说运维学什么语言最好,其实从语言角度来说,你应该会什么语言,就用你最擅长的语言去实现,但因为每个人的学习时间有限,同时考虑开发的时间成本,从这点看我认为python最为合适,一方面linux系统本身就有自带python,不用安装,之前我用php写过脚本,但总不能每台都安装个php解释器吧,另外python有这很好的网络资源,它本身有很多标准库,这样就大大减少了从头开发的成本,实现一个功能时间周期非常短,对运维来讲实现功能为主要,最后谈一点,它的从学习入门成本比较低,容易快速上手。

以上就是我对大家所讨论问题的看法,不对的地方请斧正,如果您也认同,请让更多的人看到,让密迷茫的人不在迷茫,最后一句话送给大家共勉,做技术:

时间千万不要浪费在选择上,而要多用在行动上!