python运维
很多shell不能解决的事情python都可以解决,比如多线程scp一个文件到多台机器,还有异常处理、smtp认证发邮件(用163、qq等发邮件)等等,还有python的第三方库,省了很多时间写这些东西,各种学习PYTHONshell的问题都可以解决。.
用于上传文件、编写监控程序、监控服务器日志信息、分析服务器健康等。PHP、perl、Python都可以实现,就看你懂的了。
批量管理、自动化运维工具可以用Python编写,可以大大提高效率。
只要你有足够的想法,python在运维方面应该是完全合格的。运维相关的第三方库厉害又强大(大名鼎鼎的fabric等),高效开发运维平台不是问题~
运维的主要工作是什么?部署和维护。
因此,首先使用python进行运维是部署工具。从最原始的fabric到saltstack等集成工具,python可以用来实现从单一部署到批量自动化部署。
另一种常见的是监控、报警系统等,监控服务器的服务状态和硬件状态,发送邮件报警、短信报警等。
其他的都是常用的工具组件,yum是基于python的。现在很多devops使用python,很多自动化运维系统也开始结合pythonweb开发。
运维学python还是go
1.由开源社区驱动
几年前,Python是如何崛起并取代运维工程师常用的Shell和Perl的?
主要是由于DevOps文化的驱动,运维工程师不愿意写一些简单的脚本化功能
Python可以多写一些基于项目的项目,可以维护项目的扩展、封装、复用等,还有各种便捷的web框架可以快速搭建所需的运维自动化平台
但是近年来,很多新兴的运维相关的开源项目都是用Go语言实现的,比如Docker、Kubernetes、OpenFalcon、Prometheus等。
熟悉Go语言的运维工程师可以对相关开源项目有更深入的了解,熟悉其架构实现
甚至可以在其基础上进行简单的二次开发,实现我们需要的功能
而且,Go和Python这两种编程语言在语法上各有特点,都好学好用。两者都学了之后,技能也不是压倒性的。
它们之间没有替代关系,但各自在各自的领域中发挥着各自的作用。Python的语法简单直观,而Go具有语法简单、运行高效的优点。它在多线程方面表现出色,非常适合掌握一定编程基础的人。与同学一起学习一门主要语言
标题中提到的放弃Python有点极端,因为过去留下的很多项目和脚本都是用Python实现的,不可能放弃。最多,我们使用Go开发新的后续项目。我们的运维团队仍然占据Python的大部分,Go用于一些比较新的项目的二次开发。
2.差异化竞争
在运维工程师这个行业,由于进入门槛比较低,中高端运维工程师喜欢用一些比较新的技术或者技能来武装自己或者打广告
比如几年前的PythonVSShell、DevOpsVS脚本运维、容器化VS虚拟机等
他们都通过引入相对较新的技术来完善自己的技术体系和运维团队的技术栈
试想一下,两个能力和工作经验相近的运维工程师:
一是只熟悉旧的Shell、Python、Nginx等;
一个也熟悉新兴的Go、Docker、Kubernetes等;
哪一个在就业市场上更具竞争力?
为了在运维工程师能力体系中差异化竞争,有技能、有追求的运维工程师会不断学习新的技能
Go语言是最近最好的载体。通过学习这门语言,然后深入相关的主流新兴项目(Docker、Kubernetes、OpenFalcon),可以达到差异化竞争的目的。
至于其他的安装、配置、编译、并发编程等,都是次要的
不仅运维,很多开发者和测试者也将Go作为备份工具进行了修复。
评论前必须登录!
注册