DevOps 工程师成长日记系列一:必备知识与技能组合 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding.NET 轻量级社交
开源项目广场
使用帮助
意见反馈
CodingNET
V2EX    Coding

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

  •  
  •   CodingNET 2019-06-12 18:00:28 +08:00 4937 次点击
    这是一个创建于 2363 天前的主题,其中的信息可能已经有所发展或是发生改变。

    原文地址: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.stackoverflow.com/survey/2019

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

    目标读者

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

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

    DevOps工程师新定义

    什么是 DevOps

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

    定义就是这么简单,但它意味着什么? 这意味着,传统意义上的开发人员(编写软件的人)的目标与运维人员(运行软件的人)的目标大不相同。例如,作为一名开发人员,我希望尽可能快速地开发更多的新特性。毕竟,这是我的工作并且是客户需要的。然而,如果我是一名运维人员,我就会希望新特性越少越好。因为每一个新特性都意味着新的变更,而变更就意味着风险。
    由于这种目标错位,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 工程师一起成长。

    2 条回复    2019-06-13 00:29:17 +08:00
    hcsu
        1
    hcsu  
       2019-06-12 19:28:24 +08:00 via iPhone
    mark 一下,迷茫中,不知道以后往哪个方向发展
    liang7878
        2
    liang7878  
       2019-06-13 00:29:17 +08:00
    收藏了,最近正准备学一下 devops
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5682 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 03:10 PVG 11:10 LAX 19:10 JFK 22:10
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86