如何成为一名优秀的SRE

举报
kaliarch 发表于 2022/08/13 15:01:31 2022/08/13
【摘要】 受众读者你是一个开发人员,希望把你的职业生涯转向更多的DevOps模式吗?你是否是一个受过经典训练的Ops人员,你想了解整个DevOps的事情是怎么回事吗?或者你两者都不是,在花了一些时间与技术合作之后,你现在只是想换个职业,却不知道从哪里开始?最后,如果您已经做DevOps的事情很多年了,您可能仍然会发现这对于验证我们的现状和发展方向很有用。 什么是DevOps你可以谷歌搜索定义,浏览所...

受众读者

你是一个开发人员,希望把你的职业生涯转向更多的DevOps模式吗?
你是否是一个受过经典训练的Ops人员,你想了解整个DevOps的事情是怎么回事吗?
或者你两者都不是,在花了一些时间与技术合作之后,你现在只是想换个职业,却不知道从哪里开始?
最后,如果您已经做DevOps的事情很多年了,您可能仍然会发现这对于验证我们的现状和发展方向很有用。

什么是DevOps

你可以谷歌搜索定义,浏览所有的流行语,但你知道大多数都是令人尴尬的长词沙拉,塞进了巨大的连续句子。(看到我在这里做了什么吗?)
所以,我将保存点击并将其提取下来:
DevOps是一种共享痛苦和责任的软件交付方式。

这意味着传统上,开发人员(创建软件的人)的激励与运营人员(运行软件的人)的激励截然不同
例如,作为一名开发人员,我希望尽可能快地创建尽可能多的新特性。毕竟,这是我的工作,这是客户的要求!

然而,如果我是一个操作人员,那么我希望尽可能少的新功能,因为每一个新功能都是一个变化,而变化是有风险的。
由于这种激励措施的错位,DevOps诞生了。

DevOps试图融合开发和运营(DevOps,明白吗?)分成一组。这个想法是,一个团队现在将分担创建、部署和从面向客户的软件中产生收入的痛苦和责任(可能还有回报)。
现在,纯粹主义者会告诉你,没有“DevOps工程师”这回事。“DevOps是一种文化,而不是一种角色,”他们会告诉你。

是啊,是啊。它们在技术上是正确的(最糟糕的正确!)但正如经常发生的那样,这个词已经超出了它最初的含义。
现在,成为一名DevOps工程师就像是“系统工程师2.0”。
换句话说,理解软件开发生命周期并带来软件工程工具和过程来解决经典操作挑战的人。

DevOps最终意味着构建数字管道,从开发人员的笔记本电脑上获取代码,一直到产生收入的过程,棒极了!

这就是一切!
还要注意的是,作为一种职业选择,整个DevOps空间都有很高的报酬,几乎每个公司要么“做DevOps”,要么声称这样做。
无论公司在哪里,DevOps的整体工作机会都是丰富的,为未来几年提供有趣、有意义的就业机会。
注意:要警惕公司雇佣“DevOps团队”或“DevOps部门”。严格地说,这种事情不应该存在,因为归根结底,DevOps是关于文化和交付软件的方式,而不是一个新的团队或部门。

免责声明

现在,让我们暂时把Kool-Aid的杯子放在一边,考虑下面的事情。

你听过一句古老的格言吗,“没有初级DevOps工程师?”
如果没有,请知道这是Reddit和StackOverflow上的流行比喻。但这是什么意思?

简单来说,这意味着需要多年的经验,结合对工具的扎实理解,最终成为一名真正有效的资深DevOps从业者。可悲的是,经验没有捷径可走。

所以,这不是试图欺骗系统–我不认为假装是一个有几个月经验的高级DevOps工程师实际上是可能的。对快速变化的工具和方法的坚实理解需要数年才能掌握,这是无法回避的。
然而!大多数公司使用的工具和概念有一个大致一致的(如果你愿意的话)菜单,这就是本文的全部内容!
同样,工具和技能是不同的,所以当你学习工具的时候,确保你不会忽视你的技能(面试、网络、书面沟通、故障排除等)

最重要的是,不要忘记我们在做什么–建立一个完全自动化的数字管道,将想法转化为产生收入的代码片段。

这是一个单一的,最重要的外卖从这整篇文章!

说够了,我从哪里开始?

下面是你的路线图。

掌握以下内容,你就可以安全而诚实地称自己为DevOps工程师!或者是云工程师,如果你讨厌“DevOps”这个头衔的话。

下面的地图代表了我(可能是在这个领域工作的大多数人)对一个合格的DevOps工程师应该知道什么的想法。也就是说,这只是一种意见,肯定会有不同的声音。那还可以!我们不追求完美,我们追求的是一个坚实的基础。

注意:您应该先遍历这个广度,然后一层一层地遍历。开始(并继续!)先有基础。首先学习蓝色的技术(LinuxPythonAWS),然后如果时间允许或就业市场的需求,去寻找紫色的东西(GolangGoogle Cloud)。

同样,在每根柱子的第一层之后。然后,在时间允许的情况下,进入第二层,以增加您的专业知识的深度。
老实说,上面的基础层是你永远无法停止学习的东西。Linux很复杂,需要数年才能掌握。Python需要不断的练习来保持最新的状态。AWS发展如此之快,以至于你今天所知道的只是一年后整体投资组合的一小部分。
但是一旦你合理地弄清楚了基础层,就开始学习现实世界中的技能了。通知共有6个蓝栏,每月一个。

注意:上面的管道中明显缺少的是test。这是有意的–编写单元、集成和验收测试并不容易,传统上落在开发人员的肩上。“测试”阶段的省略是有意的,因为这个路线图的目标是快速吸收新的技能和工具。缺乏测试专业知识被作者认为是一个适当的DevOps就业的无关紧要的障碍。

另外,请记住,我们不是在这里学习了一大堆无关的技术胡言乱语之后。我们追求的是对工具的坚实理解,这些工具结合在一起,讲述一个单一的、连贯的故事。
这个故事就是端到端的过程自动化–一种以装配线般的方式移动比特的数字管道。
而且,你也不想学一堆工具就停下来。工具变化很快,概念就更少了。因此,您想要做的是使用这些工具作为更高层次概念的学习代理。
好吧,我们再挖深一点!

基础知识

在顶部标记为“基础”的行下,您将看到每个DevOps工程师必须掌握的技能。
在这里,您将看到三个行业主导支柱:操作系统、编程语言、公有云。这些东西不是你能很快学会的,把它们从清单上查下来,然后继续前进的东西。这些将是你必须获得的技能,并在持续的基础上保持敏锐,以保持与正在发生的事情相关和最新。
让我们一个一个地过一遍。

Linux:运行一切的地方。现在,你能成为一个出色的DevOps实践者,并完全留在微软的生态系统中吗?当然可以!没有法律规定Linux对所有事情都适用。
然而!请知道,虽然所有DevOps-y的事情肯定可以用Windows完成,但它要痛苦得多,工作机会也要少得多。现在,您可以放心地假设,如果不了解Linux,就不可能成为真正的DevOps专业人士。因此,Linux是你必须学习并不断学习的东西。
老实说,最好的方法是在家里安装Linux(Fedora或Ubuntu),并尽可能多地使用它。你会弄坏东西,你会被卡住,然后你必须修复它,在这个过程中,你会学习Linux!
作为参考,在北美,红帽变种更为流行。因此,从Fedora或Centos开始是有意义的。如果你想知道你应该得到KDE还是Gnome版本,那么得到KDE。莱纳斯·托瓦尔兹就是这么用的。:)

Python:当今占主导地位的后端语言。易于上手,应用广泛。额外的好处:Python在人工智能/机器学习领域非常流行,所以如果你想过渡到另一个热门领域,你会做好准备的!
Amazon Web Services:再说一次,如果没有对公有云工作原理的扎实理解,就不可能成为一名经验丰富的DevOps专业人士。如果您所追求的是对云的了解,那么Amazon Web Services是这个领域的主导者,它提供了最丰富的工具集。
有没有可能转而从谷歌云或Azure开始呢?绝对!但我们在这里追求最大的回报,所以AWS是最安全的游戏,至少在2018年是这样。
当你在AWS注册一个账户时,你会得到一个免费的层,所以这是一个很好的开始。
现在,当您登录到AWS控制台时,您会看到一个简单、易于理解的选择菜单。

那是讽刺。好消息是,你不需要了解亚马逊的每一项技术。
从以下内容开始:VPC、EC2、IAM、S3、CloudWatch、ELB(在EC2保护伞下)和安全组。这些东西足以让您入门,每个现代化的、支持云的企业都将大量使用这些工具。
AWS自己的培训网站是一个很好的起点。
我建议您每天留出20-30分钟来练习Python、Linux和AWS。
注意:这将是除了其他的东西,你将不得不学习。总之,我估计每天花一个小时,每周花五次,就足以让您在6个月或更短的时间内对DevOps空间中发生的事情有一个坚实的理解。
同样,总共有6个主要支柱,每个支柱对应一个月的学习。
这就是基础层!

在随后的文章中,我们将探讨下一个复杂级别:如何以完全自动化的方式配置、版本、打包、部署、运行和监控软件!

【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。