- 原文地址:How To Become a DevOps Engineer In Six Months or Less
- 原文做者:Igor Kantor
- 译文出自:掘金翻译计划
- 本文永久连接:github.com/xitu/gold-m…
- 译者:临书
- 校对者:jianboy
『空旷的高速公路横穿多彩的沙漠』— 由 Johannes Plenio 发布在 Unsplash。html
注:这是系列文章的第一部分。前端
第二部分在这里。linux
你是一名但愿将职业生涯转向更契合 DevOps 模式的开发人员吗?android
你是一位经验丰富的运维人员吗,你想要了解整个 DevOps 生态吗?ios
或者你都不是,你只是寻求职业生涯的改变殊不知道从哪里开始?若是是这样,请往下阅读!git
最后,若是你已经有了多年的 DevOps 经验,你也可能从文章中获取有用的信息,好比验证本身的位置和发展方向。github
首先,什么是 DevOps?面试
你能够谷歌一下它的定义,不过大多数都是一些冗长的包含不少空话的连续字段。(看下面我作了什么?)编程
那么,我帮你搜索好了并将它的定义摘录下来:后端
DevOps 是一种痛苦与职责交织的软件交付方式。
就这样。
好吧,因此这究竟是什么意思?
在传统意义上,开发人员(开发软件的人)的与运维人员(维护软件的人)的职责不大相同。
例如,做为一名开发人员,我要尽量快的开发更多的新功能。毕竟这是个人工做,也是客户的需求!
然而,若是我是一名运维人员,我可能不但愿有太多的新特性,由于每一个新特性都意味着一次变动,而每次变动都是有风险的。
因为这种两种激励机制的冲突,DevOps 诞生了。
DevOps 试图将开发人员(Dev)和运维人员(Ops)融合到一个组中。咱们的想法是:这样能够在同组内消化面向用户软件的研发、部署和完成绩效等全部痛苦和职责(可能还有奖励)。
此时,纯粹主义者会告诉你:『没有「DevOps 工程师」这个东西,DevOps 是一种文化,而非角色』。
是的,它在理论上是正确的(最糟糕的那种正确!),可是正如常常发生的那样,这已经超越了它原本的含义。
如今,成为 DevOps 工程师就像成为『系统工程师 2.0』。
换句话来讲,DevOps 工程师就是一种既了解软件生命周期,也能够开发出面向开发者的工具,还能推动解决经典运维难题的人。
DevOps 最终意味着构建数字化管道,从开发人员的笔记本电脑上的代码,到生产环境部署直至产生收益,这使人敬畏!
这就是它的一切!
另请注意,做为一种职业选择,整个 DevOps 行业有很高的报酬,几乎每一个公司都会有 DevOps 职位,或者声称将会有。
不管哪儿的公司,DevOps 的工做机会都很是多,会在将来几年内提供有趣、有意义的工做机会。
注意:警戒聘用『DevOps 团队』或者『DevOps 部门』的公司。严格的来讲,这种状况是不会发生的,由于 DevOps 最终是关于文化和软件交付方式的,并不是要配备新的团队或者部门。
如今,让咱们把 Kool-Aid 的杯子放到一边,考虑如下几点:
你有没有听过这句老话,『不存在初级的 DevOps 工程师吗?』
若是没有,请知晓它是 Reddit 和 StackOverflow 上的一种流行比喻。可是这是什么意思呢?
简而言之,这意味着它须要多年的经验,并结合对工具的扎实理解,才能最终成为真正的高级 DevOps 从业者。然而遗憾的是,经验的获取没有捷径。
因此,不要尝试在这个行业行骗,我认为只有几个月的经验是不可能伪装成高级 DevOps 工程师的。对快速迭代的工具和方法,须要数年才能深入理解,并且没有捷径。
然而,大多数公司通常都会使用一些主流的(最新的,若是你愿意)工具和概念,这就是本文的所有主题!
一样,由于工具和技能不一样,在学习工具时,请确保不要忽视本身的技能(面试、网络、书面沟通和故障排除等)
最重要的是,不要忘记咱们追求的目标 — 构建一个全自动的数字管道,将想法转化为能够创造收入的代码。
这是整篇文章中惟一重要的内容!
如下是你的路线图。
掌握如下内容,你能够安心的称本身为 DevOps 工程师!或者云工程师 — 若是你讨厌『DevOps』这个称呼。
下面的图表明我(也多是这个领域工做的大多数人)的想法,是关于一个 DevOps 工程师应该了解什么。也就是说,这只是一种建议,确定会有不一样的声音,这并无什么问题,咱们不追求完美,咱们是在创建坚实的基础。
注意:你应该使用广度优先的方式浏览,先从基础开始(并坚持下去!)。首先学习蓝色标记的技术(Linux | Python | AWS),而后若是时间容许或者就业市场有需求,继续学习紫色标记的技术(Golang | Google Cloud)。
译者注:AWS 和 Google Cloud 技能能够理解为国内的腾讯云、阿里云。
DevOps 基础知识
还有,若是时间容许,在掌握第一层基础以后,请继续学习它的下一层,以增长你的专业知识深度。
一旦你弄懂了基础层面的东西,能够开始转去解决实际问题了:
现实世界的技能
注意:上面的技能管道缺乏了测试 — 编写测试用例,这是故意的 - 编写集成和验收测试用例并不容易,这一般是开发人员承担的工做。故意遗漏『测试』阶段是由于该学习路线图的目标是快速获取新技能与工具。笔者认为缺少测试专业知识只是成为 DevOps 的一个微不足道的障碍。
还有,请记住,咱们不是在这里学习一堆无关的技术吐槽。咱们须要对完整的工具链有深入的理解,要将这些工具结合在一块儿,讲述一个连贯的故事。
这个故事是端到端的流程自动化 — 一种能够像装配流水线同样改动的数字管道。
并且,你必定也不想学一堆工具而后止步不前,工具更新换代很快,概念则不是。所以,你要作的是使用工具做为表明去学习更高级别的概念,而不是学习工具的使用。
好的,让咱们再深挖一点!
在标有『基础』知识的基线下,你将看到每一个 DevOps 工程师必须掌握的技能。
在这里,你将看到行业中主导的三大支柱:操做系统,编程语言,公有云。这些不是你很快能学会的东西,在列表中查看,而后继续前进。为了保持对技能的熟悉和不过期,你必须持续的学习并对其保持敏锐。
让咱们一个接一个看看。
Linux:能够运行一切的系统。现现在,你能成为一名彻底生存于 Microsoft 生态中的出色 DevOps 从业者吗?固然能够!没有规定要求 Linux 包含全部生态。
然而!请注意,虽然全部的 DevOps-y 事情确实能够用 Windows 来完成,但这个过程更加痛苦,并且工做机会要少的多。如今,你能够放心的认为在不了解 Linux 的状况下没法成为真正的 DevOps 专业人员。所以,Linux 是你必须学习和不断学习的东西。
诚然,最好的方法是在家里的电脑安装 Linux(Fedora 或者 Ubuntu)并尽量多的使用它。你会解决一些问题,或者你会陷入困境,而后你将不得不解决全部问题,在这个过程当中,你将学会 Linux!
做为参考,在北美,Red Hat(红帽)的变种更为广泛,所以,从 Fedora 或 CentOS 开始学习是有道理的。若是你在犹豫使用 KDE 或 Gnome 哪一种桌面环境,请使用 KDE。Linux Torvalds(译者注:linux 之父)在使用。:)
Python:现在最主流的后端语言。易上手,使用普遍。红利:Python 在 AI/机器学习领域的使用很是普遍,因此若是你想要转战其它热门领域,路已经铺好了。
亚马逊网络服务:再强调一次,没有充分了解公有云的运做方式,不可能成为一名经验丰富的 DevOps 专业人士。若是你想了解云知识,亚马逊网络服务是这一领域的主导者,它提供了最丰富的工具集。
是否能够从 Google Cloud 或 Azure 开始?固然能够!可是咱们追求的是利益最大化,因此 AWS 是成功几率最大的,至少在 2018 年。
在 AWS 注册帐户能够得到一些免费的套餐优惠,因此这是一个很好的起点。
如今,当你登陆 AWS 控制台时,你会看到一个简单易懂的选项菜单。
『发现另外一个我从未知晓的 AWS 功能』,由 Tom Pumford 发布在 Unsplash。
那是一句讽刺。好消息是,你不须要了解每个亚马逊技术。
从下面几个开始:VPC,EC2,IAM,S3,CloudWatch,ELB(在 EC2 的保护伞之下)还有安全组。这些东西能够帮助你入门,每一个现代的,支持云的企业都会大量使用这些工具。
AWS 本身的培训网站是一个很好的起点。
我建议你天天流出 20-30 分钟来练习 Python,Liunx 还有 AWS。
注意:这将是必需要学习的附加内容。总而言之,我估计天天花费一个小时,每周五次就足以让你在 6 个月或者更短的时间内充分了解 DevOps 行业的状况。
这就是基础层!
在随后的文章中,咱们将讨论下一级的复杂的东西:如何彻底以自动化的方式配置,管理版本、管理包、部署、运行和监控软件!
若是发现译文存在错误或其余须要改进的地方,欢迎到 掘金翻译计划 对译文进行修改并 PR,也可得到相应奖励积分。文章开头的 本文永久连接 即为本文在 GitHub 上的 MarkDown 连接。
掘金翻译计划 是一个翻译优质互联网技术文章的社区,文章来源为 掘金 上的英文分享文章。内容覆盖 Android、iOS、前端、后端、区块链、产品、设计、人工智能等领域,想要查看更多优质译文请持续关注 掘金翻译计划、官方微博、知乎专栏。