D

DevOps 工程师:获得这份工作需要什么?

2025-06-07

DevOps 工程师:获得这份工作需要什么?

每天都有越来越多的公司在寻找具备 DevOps 知识的人才。在我撰写本文时,LinkedIn上有 49,000 个DevOps 职位的搜索结果。这可是个不小的空缺。

DevOps 工程师需求旺盛肯定是有原因的,对吧?根据devops.com 的《2017 年 DevOps 采用情况和趋势》报告,DevOps 的采用率在过去几年里有所增长,尤其是自 2016 年以来,而且这种增长势头不会停止。问题在于,一些组织发现开启 DevOps 之旅并不容易。

虽然启动 DevOps 计划并非易事,但寻找具备必要技能的人才更是难上加难。无论您的背景是什么,无论是开发人员还是系统管理员,您都需要提升或获取一些新的技能和知识,才能在日常工作中取得成功。

让我们来探讨一下获得 DevOps 工作需要什么。

具备编码技能

你不需要有开发人员背景,尽管这会让事情更容易些。但重要的是,你能轻松地阅读代码,理解代码,并且有足够的信心去修改代码,甚至从头开始创建代码。

您不会通过创建新的软件来进行部署来重新发明轮子,但您会创建脚本来自动执行部署和其他某些任务。

所以,了解设计模式、面向对象编程、函数式编程或大量的编程语言并不重要。只要你开发了自己的逻辑——也就是说,你拥有开发人员解决问题的思维方式——重用代码而不是重复自己,并保持其他实践,你就能轻松获得这份工作。

技能很重要,你只需学习一门编程语言就能培养这些技能。推荐(但不限于)Go、Python、Ruby、Bash或PowerShell等编程语言供你选择。我推荐它们的原因有很多,但本质上这些都是常用的语言。例如,如果你想使用Chef,你需要了解Ruby。拥有开发人员背景会让你更容易融入一个从事DevOps的团队。

领域特定语言 ( DSL ) 在这里也非常重要,具体取决于您使用的工具。有些使用JSON, 有些使用YAML。这些都是表示格式,也是某些工具交互的方式。例如,当您使用 AWS CloudFormation 或 Terraform 等工具将基础设施定义为代码时,您使用 YAML 格式进行定义。这就像您在编程,主要是以结构化或过程化的方式。

了解版本控制

开发人员熟悉版本控制是很正常的事。但如果你的背景是运维,版本控制在这个领域并不常见。至少,在“基础设施即代码”之类的概念出现之前是这样。

最重要的版本控制系统是Git,因此了解它是什么以及如何使用它非常重要:如何使用分支、拉取(或合并)请求,以及更重要的是,如何解决合并冲突。你需要有这样一种心态:“如果它不在版本控制系统中,我就不信任它。”

练习版本控制的一个好方法是使用 GitHub。那里有很多优秀的教程课程,可以帮助你自信地使用 Git。

了解基础设施

你需要了解基础设施。我指的不是如何配置思科路由器,尽管这也很有必要。重要的是,你需要了解网络、安全、存储和服务器管理。你还需要熟悉高可用性、冗余、自我修复和弹性架构等关键概念——不仅仅是理论层面。你还应该知道如何在实际场景中应用它们。

如果你在一家初创公司工作,几乎肯定会与云服务提供商合作。所以你需要了解云计算。目前最受欢迎的云计算服务提供商是AWS、Azure和Google。选择一个,积累一些经验,如果可能的话,获得认证。云认证将提高你获得工作和更高薪资的机会。

如果您在企业工作,您可能正在使用本地、云端或两者兼而有之的服务器。有些公司可能计划将所有内容迁移到云端。因此,云非常重要,而且它在各类组织中的采用率每天都在增长。但有一点是肯定的:即使您不在云环境中工作,也不意味着您不能采用 DevOps 原则——尤其是在您了解关键实践的情况下。

因此,要从事 DevOps 工作,您需要了解持续集成、持续交付、基础设施即代码、配置管理、日志管理和不可变基础设施。当我们谈论不可变基础设施时,我们无法避免谈论容器。容器在当今的 基础设施中扮演着重要的角色,尤其是 Docker。即使您最终没有加入已经在使用容器的组织,您也可能会发现自己所在的组织正在尝试使用容器。如果您还没有计划,也可以应用诸如打包、单一职责和不可变基础设施等容器原则。

了解并使用适当的工具

业内人士说你应该“工具不可知论”  ,或者说你不需要专注于工具。但实际上,熟悉一些工具是有好处的。选择一套好的工具,然后开始做点什么,无论什么——你以后会知道它是否是正确的选择。尽管DevOps 不仅仅关乎工具,但它们仍然很重要。

你会发现很多招聘信息都要求你了解Jenkins、Chef、Puppet、Ansible、AWS CloudFormation、Docker 和 Terraform等工具。这些都是常用的工具。你需要了解每个工具分别解决什么问题。有些工具单独使用效果很好,而有些工具如果组合使用效果会更好。当你开始使用这些工具时,你就会明白掌握编程技能是多么重要。

拥有软技能

DevOps 的核心在于人。作为一名 DevOps 工程师,你将花费大量时间与开发人员和其他团队打交道。

你需要传达应用一些DevOps 原则的重要性。这意味着你需要知道如何推销新想法,并为其提供有力的论据。初期,对团队进行指导非常重要,尤其是在公司刚刚开始采用 DevOps 的情况下。人们总是会有些抗拒改变。只要你们的讨论是健康且建设性的,这完全没问题。为此,你需要具备良好的沟通技巧、坚定的信念,并设身处地为他人着想。

开发人员还需要了解事物的运作方式以及某些要素的重要性:例如一次性构建、功能开关和持续集成。这些要素有助于提高部署的可靠性和可预测性。最终目标应该是快速、频繁地交付,并保证高质量和确定性。

接受挑战

这篇文章我们并没有深入探讨这些主题。我只是提到了成为一名 DevOps 工程师需要掌握的知识。你已经掌握了这里提到的所有内容?很好。继续进步!

但如果这份清单上有一项技能你不具备,那就花时间学习并练习吧。你可能会被所有你还不了解的东西压得喘不过气来,但别紧张。从一件事开始。工具会来来去去,但它们会越来越好。这不仅体现在它们解决问题的方式上,也体现在它们如何创建精良的文档,使其易于学习。

接受挑战,因为随着时间的推移,对您作为 DevOps 工程师的需求只会增长。

文章来源:https://dev.to/scalyr/devops-engineer-what-does-it-take-to-land-the-job-2d26
PREV
提升 JS 解构和扩展语法的 4 种方法
NEXT
时间阻塞的好处以及一些入门技巧时间阻塞的五个好处以及一些入门技巧我们在 Monolist 的流程?