作为运维你还在想要不要学Python,听听运维老司机怎么说!

2023-11-18

640?



现阶段,掌握一门开发语言已经成为高级运维工程师的必备计能,不会开发,你就不能充分理解你们系统的业务流程,你就不能帮助调试、优化开发人开发的程序,开发人员有的时候很少关注性能的问题,这些问题就得运维人员来做,一个业务上线了,导致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是个脚本语言,自己看看就不会了,说这话的只可能有两种人,一种是高手,一种是菜鸟,对于高手来讲,他肯定已经会其它语言,Python在这种情况下,自学当然就很容易学会,几年前我刚接触Python时,代码遇到问题,找了个开发的哥们帮调试,哥们帮调了十几分钟就搞定了,结果人家以前一句Python代码也没写过,为什么,因为语言都有相通之处,一门掌握好了,其它门自己学学就会了。


但对于新手来讲,没任何语言基础就开始自学,真的很难,而且深层次学习也很吃力。基本上自学是属于专业人员干的事情,就像会一门乐器了,自己学下就可能学会另一门,但我之前没音乐基础,跟着老师都没把吉它学会。


所以奉劝没基础又想学Python的同学,花点钱去报个班学吧!拿钱换时间,时间是生命,钱没了可再挣钱,时间过去了就再也不会回来,如果你不信邪,非要自己学,那我佩服你的勇气,不过自己试试就知道了。


当然天下没有绝对的事情,我大天朝牛X的人多了去了,很多人也能通过自学编程,最后变成高手了,我的Python也是自学的,但是我可以说自学过程中走过了N多坑好么,好多时候纠结在一个简单的小问题上好几天都卡住,当时如果不是因为工作需求,估计早放弃了,这还是Python,就别说其它复杂的语言了,我相信除了少数的大牛之外,多数人不比我聪明到哪去,选择自学的同鞋们,一路珍重。


说了这么多,只想告诉那些迷茫不知所措该学什么语言的新手们, 在你还没学好走路的时候,不要老想着,将来我当上老板了,我是开宝马呢?还是开奔驰呢?先学会骑自行车吧!

转自简书,作者为Li.Yingjie(部分内容有改动)

云计算免费课程火热开讲中,运维干货内容免费抢先听点击文末“阅读原文”即可免费听运维课当然也有其他IT课程免费听(Java、前端、大数据、Python、设计、C++、嵌入式、网络营销),后台回复“姓名+联系方式+所在+课程名称”也可申请其他免费课程,火速抢先~~~~

PS:记得查收小编送你的免费大礼包呦~

福利 | 一万多套PPT模板等你免费来拿!无条件领取!

免费送 | 1000多套简历模板免费拿,附赠简历制作教程!

免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~

640? 640?wx_fmt=jpeg

▼▼点击【阅读原文】,免费听5天Linux运维干货分享课,火热开讲中,速来抢!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

作为运维你还在想要不要学Python,听听运维老司机怎么说! 的相关文章

  • 计算机答卷方式 闭卷满分为90分,关于《计算机应用技术专业综合理论》考试说明.doc...

    计算机应用技术专业综合理论 考试大纲 一 考试性质 广东省高等职业院校对口自主招生考试是以中等职业技术学校对口专业应届毕业生和中等职业相关专业毕业 有两年以上实践经验的社会人员为对象的选拔性考试 二 考试内容 计算机应用技术专业综合理论 的
  • IDEA jdk 下载安装及项目中的配置

    进入 Oracle官网 的 Java 界面 Oracle官网地址 https www oracle com java 1 JDK下载 1 1 在网站页面滚动鼠标下拉定位到Java 选择Oracle JDK 1 2 选择Java archiv
  • Xcode警告、错误解决方法总结

    从sdk3 2 5升级到sdk 7 1中间废弃了很多的方法 还有一些逻辑关系更加严谨了 1 警告 xoxoxoxo is deprecated 解决办法 查看xoxoxoxo的这个方法的文档 替换掉这个方法即可 2 警告 Declarati
  • excel函数去重_Excel去除重复值方法汇总

    经常有人问到excel中去除重复值的问题 这个问题本来也一直有很多人讨论 现将做法汇总出来共大家参考 什么是重复值 顾名思义 重复值是指一组数据中有重复记录 去除这些重复的记录就叫去除重复值 具体有两种情况 源数据如图 去重后 结果一 所有
  • 蓝桥杯青少组python:第十三届省赛第一场

    选择题 1 下列二进制中最大数是 A 110 B 1010 C 1100 D 1001 2 以下方法 不是对文件读操作的是 A readline B readlines C readtext D read 3 以下对turtle库中函数描述
  • read_csv 与 to_csv方法

    1 read csv方法 1 1 返回数据类型 DataFrame 二维标记数据结构 列可以是不同的数据类型 是最常用的pandas对象 如同Series对象一样接受多种输入 lists dicts Series DataFrame Ser
  • JavaScript this关键字的理解

    JavaScript this 关键字的理解 仅供个人学习做笔记使用 大佬轻喷 1 全局环境直接输出this指向全局对象 console log this 2 全局函数输出this指向window 全局函数其实是window 全局对象 的方
  • 按键板的原理和实现--基于GPIO的按键板

    按键板的原理和实现 基于GPIO的按键板 上篇介绍简单的ADC实现 需要IC提供一个额外的ADC 但出于IC成本的考虑 无法提供这个的ADC时 但提供了多个额外的GPIO General Purpose Input Output 双向的 可
  • Windows平台下MingGW的网络socket编程模型

    Windows平台下MingGW的网络socket编程模型 1 TCP服务器 include
  • NSSCTF web题记录

    目录 web GXYCTF 2019 BabyUpload htaccess利用 NISACTF 2022 babyserialize pop链 NISACTF 2022 popchains pop链 NSSRound 4 SWPU 1zw
  • Linux删除文件每一行的首尾空格等操作——sed简明教程

    cat tmp txt 123456789 123456789 123456789 删除每行第一个字符 sed s tmp txt 23456789 23456789 23456789 删除每行前两个字符 并保存到tmp2 txt sed
  • Java秒杀系统方案优化 2 --第2章 实现用户登录以及分布式session功能

    第2章 实现用户登录以及分布式session功能 1 明文密码两次md5入库 分别使用签名如1a2b3c4d 分别用签名和密码使用MD5加密两次后 一次是最原始密码加密 一次是加密后再使用MD5和签名加密 才存入数据库 每个用户对应都有一个
  • Dynamics 365 DevOps CI/CD之Solution

    CI CD到了Soution就没太多可说的了 按部就班配置就行 我选择的工具是Power DevOps Tool 1 首先下载工具 然后设置连接字符串去连环境 连接字符串还是用ClientSecret的形式 2 当然导出前还是要发布下自定义
  • Ue4蓝图访问外部接口

    首先我们搭建一个服务 node express 注意电脑必须安装node mkdir test server cd test server npm init npm install express body parser chalk pat
  • 数组复制的三种方法(超详细)

    数组复制的三种方法 Arrays类 copyOf 方法 copyOfRangs 方法 System类 arraycopy Arrays类 copyOf 方法 copyOf 方法适用于从下标0开始 复制指定长度的元素到目标数组 源码如下 pu
  • jQuery实现下拉菜单[代码+详细讲解+效果图]

    文章目录 前言 一 案例功能描述 二 html代码讲解 三 css代码讲解 四 jQuery实现功能及代码讲解 五 效果图 总结 前言 下拉菜单也是每个网页基本都会用到的案例 所以知识点还是要我们掌握的 这个案例比较简单 主要还是我们的jQ
  • 基于ftp协议的文件变化主动监听

    基于ftp协议的文件变化主动监听 前言 实现思路 代码实现思路 具体代码实现 依赖引入 FTPService接口 FTPServiceImpl类 FileChangeEvent接口 FileChangeData实体类 FileChangeT
  • linux 命令行与shell脚本编程大全

    linux 命令行与shell脚本编程大全 第一章 Linux LiveCD就是从cd读取的系统 由于没法将数据写入到cd 所以一旦重启 之前操作过后的一切数据都会丢失 第二章 第三章 1 man手册使用快捷键 使用空格键翻页 2 man
  • linux(centos) cpu核心数信息汇总

    总核数 物理CPU个数 X 每颗物理CPU的核数 总逻辑CPU数 物理CPU个数 X 每颗物理CPU的核数 X 超线程数 查看物理CPU个数 cat proc cpuinfo grep physical id sort uniq wc l
  • 【论文速递】ECCV2022 - ByteTrack:通过关联每个检测盒来进行多对象跟踪

    论文速递 ECCV2022 ByteTrack 通过关联每个检测盒来进行多对象跟踪 论文原文 ByteTrack Multi Object Tracking by Associating Every Detection Box 论文地址 h

随机推荐