数读 | 为什么运维朋友们都需要学Python?
运维人员需不需要学开发?需不需要学Python?PythonN和Shell有什么区别?天天问这种好水的问题,我实在受不了,决定帮大家扫扫盲。
现阶段,掌握一门开发语言已经成为高级运维工程师的必备计能,不会开发,你就不能充分理解你们系统的业务流程,你就不能帮助调试、优化开发人开发的程序,开发人员有的时候很少关注性能的问题,这些问题就得运维人员来做,一个业务上线了,导致CPU使用过高,内存占用过大,如果你不会开发,你可能只能查到进程级别,也就是哪个进程占用这么多,然后呢?然后就交给开发人员处理了,这样咋体现你的价值?
另外,大一点的公司,服务器都上几百,上千,甚至数万台,这种情况下怎样做自动化运维?用Shell写脚本for循环?呵呵,歇了吧,Shell也就适合简单的系统管理工作。
到复杂的自动化任务还得要用专门的开发语言。你可能说了,自动化管理有专门的开源软件监控也有,直接拿来用下就好了,但是现有的开源软件如Puppet、Saltstack、OpenStack、Zabbix、Nagios 等多为通用的软件,不可能完全适用你公司的所有需求,当你需要做定制、做二次开发的时候,你咋办?找开发部门?
开发部门不懂运维的实际业务逻辑,写出来的东西太烂不能用,我自己也做运维系统,6年运维工作经验,开发出来的第一版照样烂的不行,这还是懂的运维业务逻辑的,让开发人员来做,跑偏可能更多了,这就是为什么我见过很多公司自行开发运维平台,最后都扔那了。
其次,不会运维开发,你就不能自己写运维平台复杂的运维工具,一切要借助于找一些开源软件拼拼凑凑,如果是这样,那就请不要抱怨你的工资低,你的工作不受重视了,话说人家FaceBook一个运维工程师管2万台机器,运维工程师年薪十几万USD,你以为人家是盖的呢?哪个不是身怀绝技,开发运维兼备?
为什么要学Python?
Python第一是个非常牛B的脚本语言,能满足绝大部分自动化运维的需求,又能做后端C/S架构,又能用WEB框架快速开发出高大上的Web界面,只有当你自已有能力做出一套运维自动化系统的时候,你的价值才体现出来,你才有资格跟老板谈重视,否则,还是老老实实回去装机器吧。
运维开发为什么要用Python?
Good question, 为什么不用PHP,JAVA, C++,RUBY,这里我只能说,见人见智, 如果你碰巧已经掌握了除Python之外的其它语言,那你爱用啥用啥,如果你是一个连SHELL都还没写明白的新手,想学个语言的话,请用Python,为什么呢?
首先,PHP是跟Python比的最多的,其实他俩根本就不用比,为什么呢?两个语言适用性不同,PHP主要适用于Web开发,可以迅速的做出中小型,轻量级的WEB网站,但后端嘛,基本还是要借助其它语言,借助什么语言呢?Shell?Python?呵呵。而Python呢,是个综合语言,前后端都可以,单拿出来比Web,也一点不比PHP差,但为什么Web方向上PHP比Python要火?
先入为主嘛,PHP 90年代诞生就是做Web的,Python2000年后才出现Web框架,但论优秀程度上,Python的Web框架基本上出其无左,至少是跟PHP比。
那JAVA呢?好吧,一个臃肿、中庸、豪无新意的语言,还是老老实实用它来做ERP吧,搞个运维小平台,用JAVA真心没啥必要,在我看来,JAVA就是稳定的中年男人,稳定、成熟、秃顶,而Python代表的就是青春,简洁、快、干净、帅!
C++/C,这个嘛,我只能说,如果你会了Python,又会C的话,那你会更吃香,但是不会C的话,其实也无大碍,基本上做运维的人,搞搞C就是为了来装B的,因为多数情况下你都到不了看系统底层源码的程度, 不过如果你学好了Python之后,还是建议你学习下C++,毕竟相比Python这个动态语言来讲,C++的效率还是高很多的,但对新手来讲,不建议做为第一门语言开始学习,为什么呢?打击自信心…呵呵,你懂的
Ruby,小日本开发的,还不错,风格跟Python有点像,因为Ruby onrails出了名,国外用的比较多,国内,放心吧,没戏,Python已经把它的想象空间都占死了。
当然还有新的语言GO,有些搞运维的看见做开发的人员搞GO,也想凑热闹,觉得是未来,我想说,别瞎没事跟风,GO再成功,也不会变成运维开发语言。
有些人觉得Python效率底,说他不能支持多线程,OH,好吧,这个还有点说对了,但是我想问,看我这篇文章的有几个做过搜索引擎开发?有几个做个上亿PV的并发网站开发?
有几个看过LINUX内核源码?如果没有,请别瞎跟着传了,知道PYTHON为什么不支持多线程吗?这句话问错了,其实Python支持多线程,只是不支持多CPU多线程,也就是一个程序spawn出来的多线程只能占用一个CPU,但是为什么呢?噢,因为GIL,GIL是什么东东,请自行补脑。。。但是你非得用多线程吗?你可以用多进程呀,再牛B你还可以用协程呀,这些Python支持的都很好呀,如果你的程序逻辑不好,搞个多线程也快不起来。
我认识一个博士讲过一句话,我觉得不错,他说,程序效率高低,80%都是写程序的人决定了,语言本身就占20%,所以下次有人再说PYTHON效率低的时候,请让他先回去自己检查下自己的程序多了多少无用的逻辑、循环等等。这个博士自己用Python写的WEB程序,一台服务器每天能处理上亿请求,一秒并发近两万,什么WEB框架这么牛B? 别问它是谁,它叫tornado。
Python能否自学?
当然可以,什么都可以自学,前提是你得能学得会,见过N多菜鸟踏上上自学的不归路,他妈的什么都能自学的话,还用大学干什么?自己在家鳖不就行了?
动不动就说Python是个脚本语言,自己看看就不会了,说这话的只可能有两种人,一种是高手,一种是SB,对于高手来讲,他肯定已经会其它语言,Python在这种情况下,自学当然就很容易学会,几年前我刚接触Python时,代码遇到问题,找了个开发的哥们帮调试,哥们帮调了十几分钟就搞定了,结果人家以前一句Python代码也没写过,为什么,因为语言都有相通之处,一门掌握好了,其它门自己学学就会了。
但对于新手来讲,没任何语言基础就开始自学,那么恭喜你,菜鸟们见此文章为证,从今天开始自学,一年后,你要是能自己做出个软件来,来找我要一千块钱。哈哈,真的。
基本上自学是属于专业人员干的事情,就像会一门乐器了,自己学下就可能学会另一门,但我之前没音乐基础,跟着老师都没把吉它学会。
所以奉劝没基础又想学Python的同学,花点钱去报个班学吧,拿钱换时间,时间是生命,钱没了可再挣钱,时间过去了就再也不会回来,如果你不信邪,非要自己学,那我佩服你的勇气,不过自己试试就知道了。
当然天下没有绝对的事情,我大天朝牛X的人多了去了,很多人也能过自学编程,最后变成高手了,我的Python也是自学的,但是我可以说自学过程中走过了N多坑好么,好多时候纠结在一个简单的小问题上好几天都卡住,当时如果不是因为工作需求,估计早放弃了,这还是Python,就别说其它复杂的语言了,我相信除了少数的大牛之外,多数人不比我聪明到哪去,选择自学的同鞋们,一路珍重。
说了这么多,只想告诉那些迷茫不知所措该学什么语言的新手们, 在你还没学好走路的时候,不要老想着,将来我当上老板了,我是开宝马呢?还是开奔驰呢?先学会骑自行车吧!
数读 | 为什么运维朋友们都需要学Python?的更多相关文章
- 运维朋友们,别再问需不需要学 Python 了!
运维人员需不需要学开发?需不需要学 Python?PythonN 和 Shell 有什么区别?天天问这种好水的问题,我实在受不了,决定帮大家扫扫盲. 现阶段,掌握一门开发语言已经成为高级运维工程师的必 ...
- 身为运维的你,怎么掌握python才不会失业
以前,我们都说Python是运维工程师的未来:现在,为什么大家都说不会Python的运维都将失业?运维必须懂开发,特别是python开发,已经形成大家的共识,不懂开发的运维,路会越走越窄. 而现在的情 ...
- Python自动化运维开发实战 一、初识Python
导语 都忘记是什么时候知道python的了,我是搞linux运维的,早先只是知道搞运维必须会shell,要做一些运维自动化的工作,比如实现一些定时备份数据啊.批量执行某个操作啊.写写监控脚本什么的. ...
- 为什么我建议每个开发人员都需要学Python?
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://dzone.com/articles/10-reasons-why-every-d ...
- 运维堡垒机(跳板机)系统 python
相信各位对堡垒机(跳板机)不陌生,为了保证服务器安全,前面加个堡垒机,所有ssh连接都通过堡垒机来完成,堡垒机也需要有 身份认证,授权,访问控制,审计等功能,笔者用Python基本实现了上述功能. A ...
- Windows服务器Pyton辅助运维--03.安装Visual Studio 的 Python 开发插件 PTVS
PTVS (Python Tools for Visual Studio) http://pytools.codeplex.com/ 当前版本:2.1 RC PTVS (Python Tools fo ...
- 从一到万的运维之路,说一说VM/Docker/Kubernetes/ServiceMesh
摘要:本文从单机真机运营的历史讲起,逐步介绍虚拟化.容器化.Docker.Kubernetes.ServiceMesh的发展历程.并重点介绍了容器化阶段之后,各项重点技术的安装.使用.运维知识.可以说 ...
- Linux运维工程师是什么鬼?
第一部分:定义 运维工程师,字面理解运行维护. linux运维即linux运维工程师,集合网络.系统.数据库.开发.安全工作于一身的“复合性人才”. 除了传统IT运维部分,运维人员还是管理制度.规 ...
- 华为刘腾:华为终端云Cassandra运维实践分享
点击此处观看完整活动视频 各位线上的嘉宾朋友大家好,我是来自华为消费者BG云服务部的刘腾,我今天给大家分享的主题是华为终端云Cassandra运维实践.和前面王峰老师提到的Cassandra在360中 ...
随机推荐
- WPF4文字模糊不清晰、边框线条粗细不一致的解决方法
原文:WPF4文字模糊不清晰.边框线条粗细不一致的解决方法 软件测试过程中发现在一台1600*900的分辨率电脑上文字模糊,甚至某些个文字出现压缩扭曲 经过实践,发现按下面方法能解决一点问题: 在窗口 ...
- OpenGL(四) 左右手坐标系及基本坐标变换
左手坐标系.右手坐标系.笛卡尔坐标系 左手坐标系:伸开左手,大拇指指向X轴正方向,食指指向Y轴正方向,其他三个手指指向Z轴正方向. 右手坐标系:伸开右手,大拇指指向X轴正方向,食指指向Y轴正方向,其他 ...
- 详解Python模块导入方法
python常被昵称为胶水语言,它能很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松联结在一起.python包含子目录中的模块方法比较简单,关键是能够在sys.path里面找到通向模块文件的 ...
- 微信公众号开发系列-Http请求包基类
HttpHelper请求包基类,支持get请求和POS要求.以促进微通道交互界面的开发,为了准备的人机交互界面,背部. 1.HttpHelper帮助基类 [csharp] view plaincopy ...
- WPF 3D 平移模型+动画(桥梁检测系统)
原文:WPF 3D 平移模型+动画(桥梁检测系统) 关于WPF 3D,网上有很多旋转的例子,但是关于平移的例子并不是太多.本文并非WPF 3D扫盲篇,因此需要对WPF 3D有一定了解,至少知道View ...
- WPF中使用amCharts绘制股票K线图
原文:WPF中使用amCharts绘制股票K线图 本想自己用GDI绘图, 通过数据直接绘制一张蜡柱图, 但觉得这样子的功能比较少, 所以到网上搜索一些能画出K线图的控件. 发现DynamicDataD ...
- WPF ContextMenu 在MVVM模式中绑定 Command及使用CommandParameter传参
原文:WPF ContextMenu 在MVVM模式中绑定 Command及使用CommandParameter传参 ContextMenu无论定义在.cs或.xaml文件中,都不继承父级的DataC ...
- 关于WPF XAML 中 Trigger的反向ExitActions
触发器,顾名思义,就是当满足一定条件时,会触发一些操作,比如:改变控件的透明度,显隐,宽高等等,触发器本身做了一些操作,就是触发器触发条件不符合的时候,会自动把在触发器中更改的属性还原.但,并不是所有 ...
- 获取控件中应用的模版的内部的控件,使用LoadContent()方法获取模版跟节点
treeview获取内部控件元素 Button btnAdd = ((tvks.HeaderTemplate as DataTemplate).LoadContent() as StackPanel) ...
- openFrameworks 是一个旨在助力你进行开创性工作的开源 C++ 工具箱(是很多其它类库的组合)
openFrameworks 是一个旨在助力你进行开创性工作的开源 C++ 工具箱,提供了简单且直观的实验框架.该工具箱具有常见的工具,并集合了众多常见的库: OpenGL, GLEW, GLUT, ...