运维DBA要不要学python

栏目: Python · 发布时间: 5年前

内容简介:我个人认为是:要现在python在运维数据库的工作中主要用在1、编写一些运维脚本

运维DBA要不要学python

我个人认为是:要

现在 python 在运维数据库的工作中主要用在

1、编写一些运维脚本

2、编写运维管理平台

3、研究互联网大厂的运维脚本/工具并应有

特别是运维开源数据库的时候,第三点特别重要,例如 MongoDB 的zabbix监控数据库脚本就是用老外用python写的,如果要改一下里面的指标

肯定要用到python

一些互联网大厂开源的数据库脚本和工具,例如 mysql 相关工具,基本都是用python写的,这些工具/轮子我们肯定会用到

所以python是如此重要,当然用 shell 也可以完成第一点,如果强硬用python来写也只是用python来调用一下某些shell命令

但是,既然要学python,用python,做一个pythoner,那么最好所有工作都用python,有些人不这么认为,某些任务,shell可以做的python做不了

python一定要调用shell命令来做,这个是的,既然是调用shell命令为何不直接用shell

但是我个人觉得shell有个最大的缺点:格式化

shell几乎是没有格式的,只有简单的缩进,也没有专用的shell编辑器,那么,当你写了几百行代码的时候,如果没有很好的缩进习惯,那么review你的shell脚本

的那个人简直就是灾难,也由于没有专用的shell编辑器,编写shell的时候很容易出错,也不好调试

用python就没有这些问题,python可以用pycharm(本人觉得除了pycharm其他 工具 都不行)或者其他工具,python有严格的格式化,编辑器也非常强大

pdb,ipdb,print调试手段手到擒来

我记得之前有个招S银行技术部的招聘信息,其中有一条

必须会写shell,并且有写过单个脚本超过10000行shell代码的经验

当时觉得这个要求非常蛋疼,能在单个脚本写超过10000行shell代码的可能是高人也可能是SB,反正觉得招S银行的技术也好不到哪里好

据我所知,他们的mysql运维也是外包给某数据库服务公司,反正大部分都是外包,核心技术应该无啥

最后,还有一个语言,go语言

go作为互联网界的C/C++,虽然发展历史不长,但是最近几年确实比较火,go虽然是静态语言,也是带GC功能的

因为需要GC,所以 go 语言不适合做

1、系统编程:系统编程依然是C/C++做主导,由于GC的关系,性能比不上C/C++

2、大数据:依然是 JAVA 的天下,当时hadoop诞生的时候,go语言还没出生,所以大数据领域还是无法取代JAVA

3、电商:依然是JAVA的天下,JAVA有最成熟的解决方案,阿里巴巴的业务大量使用JAVA就是一个例子

go语言适合做

1、云计算:在云计算领域,go语言没有对手,go语言一般用于非cpu密集型业务,cdn,对象存储,docker,consul,k8s

其实性能上,go语言应该是比JAVA逊色不少,发展历史没有JAVA长,GC功能没有JAVA的完善

至于在运维领域,其实go语言的性能比python是要强,毕竟是静态语言,而且可以利用多核优势,没有python的GIL锁问题

但是在运维领域,更注重的是运维生态,而不是性能,我们开发的运维工具和运管平台其实都不需要很高性能

如果没有运维生态支持,运维将会非常难做,例如,现在每种数据库基本都有python驱动(mongodb,DB2,oracle,mssql,mysql,pgsql,sqlite等等),

spark编写作业也可以用python来编写,openstack本来用python来开发,有很完善的python API,kvm管理也有很完善的python API,

Linux内置python,Windows安装python也比较简单

python有相应的库可以编写Windows服务,国内公有云厂商基本都有python API等等,几乎每种工具、系统、软件都支持python

而这种运维生态,go语言是没有的,原因是go语言是2009年诞生,到现在才10年时间,而python到现在已经有30年历史

所以python才会有这种运维生态,所以才会有每种工具、系统、软件都支持python

而且目前互联网大厂用go语言来写的开源数据库运维工具和脚本非常少

当然,如果对python有几年经验并且很扎实了,那么可以用空余时间学学go语言

还有一个提醒:据我所知,go语言最流行的web框架beego问题比较多,没有python的django框架那么完善

如果要用go语言来开发运维管理平台,要注意这个坑

最后总结一句:对于运维或DB运维,个人觉得真没有必要学go语言,毕竟go语言是静态语言,门槛相对比较高,而且go语言没有运维生态

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

本文版权归作者所有,未经作者同意不得转载。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Microsoft Windows程序设计

Microsoft Windows程序设计

佩措尔德 / 章立民 / 华中科技 / 2004-1 / 118.00元

Charles Petzold是全球最权威且知名的Windows程序设计专家,他将其最畅销Programming Microsoft Windows with C#一书加以改写,使之能完全适用于Visual Basic.NET的开发人员。这位畅销书的作家示范了如何使用Visual Basic.NET将Windows Forms的功能发挥到极致(Windows Forms是新一代的Windows程序......一起来看看 《Microsoft Windows程序设计》 这本书的介绍吧!

RGB CMYK 转换工具
RGB CMYK 转换工具

RGB CMYK 互转工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具