职业生涯如何转变成DevOps工程师

post thumb
翻译
by 张洁/ on 12 Sep 2019

职业生涯如何转变成DevOps工程师

社区译者:张洁

审校:韦世滴

原文地址(原作者:Conor Delanbanque):https://opensource.com/article/19/7/how-transition-career-devops-engineer

DevOps 工程师是一项热门职业,有很多赞誉。无论您是在毕业后寻找第一份工作,还是希望借助您以前的行业经验,寻求机会重新学习,本指南能够帮助您采取正确的步骤成为 DevOps 工程师。

让自己沉浸其中

首先,了解 DevOps 的基础知识、实践和方法。在开始使用工具之前,先了解 DevOps 背后的“原因”。DevOps 工程师的主要目标是在整个软件开发生命周期(SDLC)中提高速度并保持或提高质量,以提供最大的业务价值。您可以阅读文章,观看 YouTube 视频,并前往当地的 Meetup 小组或会议 —— 成为受欢迎的 DevOps 社区的一员。在那里您将可以当面向那些社区成员成功或是失败的经验中学习。

考虑你的背景

如果您具有从事技术工作的经验,例如软件开发人员,系统工程师,系统管理员,网络运营工程师或数据库管理员,那么您已经拥有了广泛的视野和有用的经验,可以帮助您在未来担任 DevOps 工程师。如果您是刚刚完成计算机科学或任何其他 STEM 领域的学位后开始职业生涯,那么您将在此过渡期间需要一些基本跳板。

DevOps 工程师角色涵盖广泛的职责。以下是企业最有可能使用它们的三种方式:

  • 偏爱开发的 DevOps 工程师,担任构建应用程序工作。他们利用持续集成/持续交付(CI/CD),共享存储库,云和容器作为日常工作的一部分,但他们不一定负责构建或实施工具。 他们了解基础架构,并且在成熟的环境中,能够将自己的代码推向生产环境。

  • 偏爱运维的 DevOps 工程师,可以与系统工程师或系统管理员进行比较。他们了解软件开发,但不会用他们日常的主要精力用于构建应用程序。相反,他们更有可能支持软件开发团队将原有手动流程自动化,并提高人员和技术系统的效率。这可能意味着分解遗留代码并使用较少繁琐的自动化脚本来运行相同的命令,或者可能意味着安装,配置或维护基础架构和工具。 他们确保为任何需要它们的团队安装和使用正确的工具。他们还通过教他们如何利用 CI/CD 和其他 DevOps 实践来帮助团队。

  • **网站可靠性工程师(SRE)**就像解决运营和基础设施问题的软件工程师。SRE 专注于创建可扩展,高可用且高可靠的软件系统。

在理想的世界中,DevOps 工程师将了解所有这些领域; 这在成熟的科技公司中很常见。然而,顶级银行和许多财富500强企业的 DevOps 职位通常会偏向开发或运维。

要学习的技术

DevOps 工程师需要了解各种技术才能有效地完成工作。无论您的背景如何,作为 DevOps 工程师请从使用和理解的基础技术入手。

操作系统

操作系统是一切系统运行的土壤,拥有基础知识非常重要。Linux 系统是您最有可能每天使用的操作系统,尽管有些组织使用 Windows。要开始使用,您可以在家中安装 Linux,在那里您可以随心所欲地打破规则并一直学习。

脚本

接下来,选择一种语言来学习脚本。有很多可供选择,包括 Python,Go,Java,Bash,PowerShell,Ruby 和 C/C++。 我建议从 Python 开始;因为它相对容易学习和解释,并且是最受欢迎的语言之一。Python 通常是为了遵循面向对象编程(OOP)的基础而编写的,可用于 Web 开发,软件开发、创建桌面 GUI 和业务应用程序。

在 Linux 和 Python 之后 ,我认为接下来要研究的是云计算。基础设施不再留给“运维人员”,因此您需要接触云平台,如亚马逊网络服务,Azure 或谷歌云平台。我从 AWS 开始,因为它拥有大量免费学习工具,作为开发人员AWS可以帮助您在运营、甚至面向业务组件方面少走弯路。事实上,您可能会被庞大工具淹没。可以考虑从 EC2,S3 和 VPC 开始,看看你想从那里走向哪里。

编程语言

如果您对软件开发充满热情并参与 DevOps,请继续提高您的编程技能。DevOps 中有一些优秀、并且被广泛使用的语言与脚本语言相同:Python,Go,Java,Bash,PowerShell,Ruby 和 C/C++。您还应该熟悉 Jenkins 和 Git/GitHub,并会 CI/CD 过程中经常使用它们。

容器技术

最后,开始学习使用 Docker 和编排平台(如 Kubernetes)等工具进行容器化。这些工具都有大量的免费在线学习资源,大多数城市都有本地的 Meetup 小组,您可以在友好的环境(比萨和啤酒!)中向有经验的人学习。

还有哪些

如果您的开发经验较少,您仍然可以发挥对自动化的热情,提高效率,与他人协作以及改进您的工作来参与 DevOps。我仍然建议学习上述工具,但不太强调编码/脚本语言。反而了解 SaaS,PaaS,云平台和 Linux 将非常有用。您可能正在设置工具并学习如何构建具有弹性和容错性的系统,并在编写代码时利用它们。

寻找 DevOps 工作

求职过程会有所不同,具体取决于您是否一直从事科技工作,并且正在进入 DevOps,亦或您是刚开始职业生涯的毕业生。

如果你已经在从事技术工作

如果您正尝试从一个技术领域转变为 DevOps 角色,那么首先要发掘当前公司的机会。你可以和其他团队一起工作吗?尝试影响其他团队成员,寻求建议,并在不离开当前工作的情况下获得新技能。如果无法做到这一点,您可能需要转移到另一家公司。如果您可以学习上面列出的一些实践,工具和技术,那么您将在面试中展示相关知识。关键是要诚实,不要让自己失败。大多数招聘经理都知道你不知道所有的答案; 如果你能展示你所学到的东西,并解释你愿意学习更多东西,你应该有机会获得 DevOps 工作。

如果你正在开始你的职业生涯

适用于雇用初级 DevOps 工程师的公司的开放机会。不幸的是,许多公司表示他们正在寻找经验丰富的工程师,并建议您在获得一些经验后重新申请。“我们想要经验丰富的工程师”多么令人沮丧,却非常典型,似乎没有人愿意给你第一次机会。

然而,并非一切都让人感到沮丧;仍然有一些公司专注于直接从大学培训和提升毕业生。例如,我工作的 MThree 聘请了应届毕业生并培训他们八周。当他们完成培训时,参与者可以充分了解整个 SDLC,并很好地理解它在财富500强环境中的应用。毕业生被聘为 MThree 客户公司的初级 DevOps 工程师 —— MThree 在前18至24个月内支付全职工资和福利,之后他们作为直接雇员加入客户。这是弥合从大学到职业技术的差距的好方法。

总结

转型为 DevOps 工程师的方法很多。这是一条非常有益的职业路线,能让你保持参与和挑战 —— 并提升你的赚钱的能力。