DevOps 工程师成长日记系列一:必备知识与技能组合

原文地址:https://medium.com/@devfire/how-to-become-a-devops-engineer-in-six-months-or-less-366097df7737
原文做者:Igor Kantor
翻译君:CODING 戴维奥普斯

写在前面

据 StackOverflow 2019 开发者调研结果公布:DevOps 专家的薪水仅次于研发管理者以及 SRE,位居第三:面试

图片
数据来源:https://insights.stackoverflo...编程

从 DevOps 专家的热门度来看,愈来愈多的企业意识到须要将 DevOps 从口头落地到平常研发流程中,实实在在给企业带来研发效能上的收益。在这场无声变革当中,专业的 DevOps 工程师必不可少。CODING 针对想要从事 DevOps 相关岗位的开发者精心策划了 DevOps 工程师成长日记系列,但愿这系列文章可以给相关同窗带来学习路径上的启发。接下来让咱们进入到翻译内容的正文:后端

目标读者

  • 你是否正在寻找一条 DevOps 转型的快速之道?
  • 你是不是一个受过传统训练的运维人员而且想要体验 DevOps 领域的相关内容?
  • 或者你已经学习了一段时间相关技术,如今只是想要寻找职业上的转变但不知从何下手。

若是属于上述状况的话,就继续往下阅读吧,接下来让咱们一块儿看看如何在六个月内成为一名中级 DevOps 工程师。若是你已经从事多年 DevOps 相关工做,也仍然在寻找关于 DevOps 工程师的有效承认方式,那么你也是该系列文章的目标读者。网络

DevOps 工程师新定义

什么是 DevOps

关于它的定义与由来你能够 Google 到各类前沿理论,可是大部分的解释都是长篇大论,让人喘不过气来。看看我会怎么作——我会帮你节省鼠标的点击次数而且把关键信息摘出来:
DevOps 是一种研发团队患难与共、同甘共苦交付软件的方式。less

定义就是这么简单,但它意味着什么?
这意味着,传统意义上的开发人员(编写软件的人)的目标与运维人员(运行软件的人)的目标大不相同。例如,做为一名开发人员,我但愿尽量快速地开发更多的新特性。毕竟,这是个人工做而且是客户须要的。然而,若是我是一名运维人员,我就会但愿新特性越少越好。由于每个新特性都意味着新的变动,而变动就意味着风险。
因为这种目标错位,DevOps 诞生了。运维

“系统工程师 2.0”

DevOps 尝试将开发和运维融进一个研发小团队里,由这个小团队共同承担开发、部署、努力创造软件收入的痛苦、责任(相反也多是奖励)。
如今,纯粹主义者会告诉你没有 DevOps 工程师这样的职位,“DevOps 是一种文化,不是一种角色”, 他们会这么说。好吧,在技术上他们说的是正确的(最糟糕的那种“正确”)。可是正如常常发生的那样,这个术语已经超越其原始含义。机器学习

  • 如今,成为 DevOps 工程师就像“系统工程师 2.0”。
  • 换句话说,DevOps 工程师了解软件开发生命周期,并经过软件工程工具和流程解决传统运维挑战
  • DevOps 最终意味着创建一个数字流水线:从开发者的笔记本中获取代码直至产生收益的全过程。

图片

做为一个职业选择,公司给 DevOps 相关岗位的薪资待遇都至关不错,几乎每家公司推行 DevOps 时都这样作或声称这样作。不管哪里的公司,DevOps 相关的工做机会都很丰富,它依然会是将来几年内有趣且有意义的工做岗位。
舒适提示:要警戒那些声称招聘DevOps 团队”或“DevOps 部门”的公司。严格来讲 DevOps 终究是关于文化和交付软件的方式,而不是配备新的团队或部门。编程语言

免责声明

如今,让咱们把肥宅快乐水放在一边,考虑如下几点:
你听过这句古老的格言吗 ——“世上没有初级的 DevOps 工程师。” 它实际上是 Reddit 和 StackOverflow 上的流行比喻。这意味着须要多年的经验,结合对工具的扎实理解,才能最终成为真正有效的高级 DevOps 从业者。遗憾的是,没有捷径可行。
所以,这篇文章不是 DevOps 假装指南。我不认为存在可以伪装成一位具备几个月经验的高级 DevOps 工程师的方法;或者在几个月中掌握本来须要数年才能精通的快速变化的工具,和对方法的深入理解,而且这些问题目前尚未彻底解决。然而,大多数公司都使用大同小异的(或者主流的)工具和概念菜单,这些就是文章的主要内容。
工具与技能不一样,所以在学习工具时,请确保不要忽视本身的技能(面试,网络,书面沟通,故障排除等)。
最重要的是,不要忘记咱们追求的目标——创建一个全自动的数字化流水线,将创意转化为创收。工具

DevOps 学习路线图

广度优先逐层遍历

掌握如下内容你就能够诚实地称本身为 DevOps 工程师。若是你对“DevOps”相关的 title 反感的话能够叫本身“云工程师”。下面的路径图表明我(多是在这个领域工做的大多数人)认为的一个称职的 DevOps 工程师应该掌握的技能。这只是一种意见,确定会有不一样的见解,不要紧,咱们并不追求完美,先把基础打好。
注意,你的目标是广度优先、逐层遍历。先从基础开始,学习蓝色标记的技术(Linux | Python | 腾讯云/阿里云),而后若是时间容许或者就业市场有相应需求,追踪紫色的技术(Golang | AWS/谷歌云)。
(译者注:原文的工具介绍是针对国外开发者,此处为了方便国内开发者实践译者进行了部分调整)单元测试

图片

老实说,上述的基础层是你要持续学习的东西。Linux 很复杂,须要数年才能掌握;Python 须要持续练习才能保持最新状态;公有云发展如此迅速,以致于你今天所知道的事情可能只是它的冰山一角。可是,一旦你有一个合理的知识基础,就拥有了进入现实世界的技能组合。下面总共有 6 个蓝色列,建议每个月学习一列。

图片

为何没有测试

上面的学习路线中明显缺乏 Test,这是有意为之的。编写单元测试、集成和验收测试并非一件简单的事情,传统上是开发人员的责任。“测试”阶段的遗漏是有意的,由于本路线图的目标是快速获取新的技能和工具。笔者认为缺少测试专业知识是 DevOps 就业一个微不足道的障碍。
另外,请记住,咱们不是在这里学习以及喋喋不休一大堆无关的技术。咱们须要对完整的工具备比较充分的理解。将这些工具结合在一块儿,就能够讲述一个连贯的故事 —— 端到端的流程自动化。
你确定不但愿学习一堆工具后就停下来。工具变化很快,概念变化得相对缓慢,所以你要作的是使用工具做为进阶概念的学习辅助。接下来,让咱们再深刻探讨下 DevOps 学习路线图。

DevOps 必备基础知识

在图一的“Foundation”下,你看到的是每一个 DevOps 工程师必须掌握的技能。你会看到三个行业主导的支柱:操做系统,编程语言,公有云。这些东西不会是一蹴而就的技能,你必须掌握以及持续学习,以保持相关性并及时了解最新状况。接下来咱们逐一介绍它们:

  • Linux

它是几乎全部软件运行的地方。有人会问:能彻底处在微软生态系统中成为一名出色的 DevOps 从业者吗?固然能够,没有任何法律要求用 Linux 来实现一切。
然而请注意,尽管全部 DevOps 相关事情均可以经过 Windows 完成,但这个过程更加痛苦,并且工做机会要少得多。如今,你能够放心地预设在不了解 Linux 的状况下没法成为真正的 DevOps 专业人员。所以,Linux 是你必须学习和不断学习的东西。
最好的方法是在家里安装 Linux( Fedora 或 Ubuntu)并尽量多地使用它。你会破坏操做系统上的东西,会被问题困住,而后你不得不解决全部问题,在这个过程当中,你将学习到 Linux 相关的知识与技能。做为参考,在北美红帽系统更为广泛,所以从 Fedora 或 CentOS 开始也是 OK 的。若是你在犹豫是否该用 KDE 或 Gnome 版本,就用 KDE 吧,Linus Torvalds 用的就是它 : )

图片
Linux 主流发行版本 Google Trend 对比(近 5 年数据)

  • Python

Python 是现在占主导地位的后端语言,易于上手,被普遍使用。Python 在 AI 以及机器学习领域使用很是广泛,因此若是你想要转换到另外一个热门领域,那么你也会更加驾轻就熟。

  • 公有云

若是没有充分了解公有云的运做方式,就不可能成为一名经验丰富的 DevOps 专业人士。国内外云计算领域的主导者们提供了很是丰富的工具集。

我建议你天天留出 20-30 分钟来学习 Python,Linux 和公有云。图二是你必须学习的补充内容。总的来讲,我估计天天要花费一个小时,每周五次就足以让你在 6 个月或更短的时间内充分了解 DevOps 相关的内容。总共有 6 个主要知识支柱,每一个支柱对应一个月的学习时间。
以上就是基础知识的介绍,在随后的系列文章中,咱们将探讨更加复杂的问题:如何以彻底自动化的方式配置、发布、打包、部署、运行和监控软件。

译后记

咱们相信,在企业数字化转型落地过程当中 ,DevOps 是企业软件开发模式革新的重要支柱。
CODING 做为国内领先的 DevOps 解决方案提供商,支持从需求到部署的研发全流程管理,涵盖了项目管理、代码管理、持续集成、制品库管理、测试管理、部署管理、缺陷管理、知识管理,帮助企业轻松将创意转化为创收。CODING 也会持续关注并分享软件研发领域最新理念与技术,与 DevOps 工程师一块儿成长。

相关文章
相关标签/搜索