年末将至,大批攻城狮与程序猿早已蠢蠢欲动,开始了跳槽涨薪之旅,虽然受社会大形势影响,IT行业虽然无法和前几年的突飞猛进的势头相比,但是对DevOps的热度却只增不减,工程效能团队的普及率正在迅速增长,对DevOps工程师需求量也是呈指数式增加。转型做DevOps工程师、DevOps教练也是逐渐成为IT圈的时尚。那么如何在大量的DevOps工程师中脱颖而出,打破开发与运维之间的隔阂,成为团队内首屈一指的DevOps专家呢?
首先,DevOps没有初级工程师的说法,只要你了解这个领域,就会知道,需求、开发、构建、测试、安全、发布、部署等都是DevOps工程师必备的能力,为此我们查看所有招聘软件,DevOps工程师的招聘JD中,都会要求候选人了解git、jenkins、sonarqube、ansible、zabbix、docker、k8s、saltstack、java、python、shell、nginx、F5、mysql、redis等等等。如果这些工具、语言全部都了解,怕是初级工程师很难做到。所以一旦进入了这个领域,已经成为一位高级工程师,并且有足够的能力能Hold上述开源工具及语言了。这些都是DevOps工程师应该具备的硬实力,如果感觉自己在DevOps这个领域没有进步空间,请打开招聘软件随便看一个岗位需求,自然就会知道自己欠缺的技能。
DevOps工程师只具备上述技能点就能完美匹配职责么,为什么每次我们看到业界大拿每次在运维峰会上侃侃而谈,而自己却只能坐在工位上配置ansible、编写流水线?所以仅仅靠技术是无法成为DevOps专家的,工具及语言只是用来解决问题的手段,为此我们还需要具备下述软技能来突破瓶颈或提升个人能力:

1. 敏捷及项目管理能力
DevOps与敏捷有着千丝万缕的联系,为了实现DevOps的首要目标:增强客户体验、提高创新能力、更快实现价值,那么作为一位DevOps工程师,你是否了解客户的需求、产品的目标、用户的体验、业界的发展方向等?如果不了解,请你去参与业务组的每日站会。可以通过站会了解到,需求是如何拆解的,迭代周期为什么设计为双周,发布频率、功能的使用群体等。有这样的经验积累,才能开发出更贴合业务需求的DevOps平台,业务部门也可以放心的将整个持续交付流程运行在你所开发的平台中。更好的做法是,DevOps工程师可以带领业务团队实践敏捷,结合开发的平台,设计最佳的项目管理及敏捷方案,并把方案落实到实际的项目中,最终通过交付流水线来落地,实现真正的DevOps持续交付。

2. 技术布道能力
作为DevOps工程师,无论是落地了某些强大的工具链、还是引入了哪种前沿的开发理念,如果没有人去使用,依然是毫无价值。
技术布道从性质上说更靠近市场推广、而从行为细节更贴近技术。DevOps工程师首要的工作就是技术及工具链选型。选择更适合业务发展的技术方案和架构带来的工程效能的提升不是一点点的,所以对新技术的敏感性是DevOps工程师的一个核心技能。一味的适应过去的开发模式,不去尝试改变,是无法实践DevOps的。所以新的开发模式、前沿的技术理念如何在整个组织内推广就是DevOps工程师的职责了。在工具链维护、DevOps平台开发的工作之余,做好技术推广、写好技术文章、处理好与开发团队运维团队的关系,给使用者一个好的体验和目标,DevOps的转型自然会得到团队的支持。

3. 成本控制能力(赚钱与花钱的能力)
站在巨人的肩膀上,我们可以看的更远,所以在DevOps建设过程中我们使用了大量的开源工具,避免自己造轮子。但是开源工具是需要维护成本和二次开发的,稳定性和安全性都是我们在使用过程中的巨大的挑战。一个DevOps工程师的成本算上社保、公积金、工资、奖金等一年不会低于500K,但是500K可以购买的商业软件确比比皆是。如果用一个工程师一年的成本去购买一个商业软件,可以节省掉3个工程师的维护和二次开发的时间,并且提高了产品的稳定性和易用性,这笔买卖不值么?用省下来的钱给工程师发奖金,不香么(当然省下来的钱也大概率不会打到员工的工资卡上)。
所以,不是全部用开源的就省钱,这个时代最贵的是人才!所以DevOps工程师要有成本控制的思维,无论在硬件还是在软件的选型上,都要精打细算,毕竟DevOps团队是个花钱的团队,花掉的钱一定要产生价值,虽然业务价值不好评估,我们可以评估节省的成本来体现DevOps的重要性。

4. PPT
PPT一直是程序员的痛处,甚至一度有一些有趣的声音,比如某公司年会上对PPT的吐槽,PPT做得好会变相的认为该员工没有实际的能力,只能靠PPT汇报的精彩就得以晋升,所以流传着一句话“累死累活干不过做 PPT 的”。这种声音是错误的,,PPT 是 DOC文档的精华本,一般大多数时候通过图文图表等方式展示你要表达的重点。没有哪位专家是拿着github地址来分享代码如何构思巧妙,逻辑如何精彩的。ppt是用于人与人交流的介质,DevOps工程师可以通过吸引人的PPT帮助其他开发者理解你所推广的开发理念,接受统一的持续集成工具链。

5. 演讲能力
综上,具备了项目管理能力、敏捷能力、对新技术敏感性、具备了技术布道能力,PPT能力,接下来就是演讲能力了。为什么需要演讲能力?公司内的开发人员、测试人员、运维人员都相当于你的客户,给客户演示你的DevOps平台,介绍前沿的DevOps理念,都是需要站台的,这是一个体现演讲能力最常见的场景了。所以,DevOps工程师一定不要只知道盯着屏幕撸代码,只有与其他团队加强沟通,才能慢慢消除掉彼此间的不信任,消除运维与开发之间的隔阂。推广DevOps的不只有技术,文化依然是关键的一个环节。

DevOps是开发运维一体化、更是工具和文化的集合体,作为一名优秀的DevOps工程师,具备全面技术能力是基础,自身软技能的积累则是决定因素。