1、开源社区的驱动
若干年前,Python是怎么兴起以及替代运维工程师常用的Shell和Perl呢
主要是由于DevOps文化的驱动,运维工程师不甘心再写一些脚本式的简单功能
Python能够写一些更加项目化的项目,可以保持项目的扩展、封装、复用性等等,也有各种方便的Web框架能快速搭建所需的运维自动化平台
然而近年来,很多运维相关新兴开源项目都是用Go语言实现,如Docker、Kubernetes、OpenFalcon、Prometheus等
运维工程师熟悉Go语言可以更加深入地了解相关开源项目,熟悉其架构实现
甚至可以在其基础上进行简单的二次开发,实现我们所需要的功能
而且Go和Python两门编程语言在语法上都有各自的特点,而且都易学易用,两者都学习了,技多不压身
它们并不存在取代关系,而是各自在其领域发挥自己的作用,Python的语法简单直观,Go兼具语法简单和运行高效的有点,在多线程处理方面很优秀,非常适合已经掌握一定编程基础和一门主流语言的同学学习
题目所述的放弃Python,有点过激,因为很多过去留下的项目、脚本,都是Python实现的,不可能放弃。最多也就是用Go开发后续新的项目,我们运维团队现在还是Python占大头,Go用于一些比较新的项目二次开发
2、差异化竞争
运维工程师这个行业,由于入门门槛比较低,中高端的运维工程师们,都喜欢通过一些比较新的技术或者技能来武装或者标榜自己
如几年前的Python VS Shell、DevOps VS 脚本运维、容器化 VS 虚拟机等等
都是通过引入比较新的技术来完善自身的技术体系和运维团队技术栈
试想,两位能力和工作经验差不多的运维工程师:
一个只熟悉老一套的Shell、Python、Nginx等;
一个还熟悉新兴的Go、Docker、Kubernetes等;
哪一个在职业市场中的竞争力更强?
为了运维工程师能力体系的差异化竞争,有技术和上升追求的运维工程师都会不断学习新的技能
而Go语言就是近来最好的载体,通过学习这门语言,再深入相关的主流新兴项目(Docker、Kubernetes、OpenFalcon),达到能力差异化竞争的目的
而至于其他的什么安装、配置、编译、并发编程等,都是次要的
不仅仅运维,不少开发、测试也兼修了Go作为备用工具,还是那句,技多不压身!