五步助你成为优秀的DevOps工程师

举报
kaliarch 发表于 2022/08/13 15:07:01 2022/08/13
【摘要】 你想成为一名DevOps工程师吗?也许你是一个初学者,试图进入技术领域,但不知道如何进行。或者您正试图在DevOps领域扩大规模以获得一份新工作,但您正面临一些困难。如何成为一名DevOps工程师?成为DevOps工程师需要哪些技术?成为DevOps工程师需要多长时间?如果你有这些问题,你并不孤单!在没有向导的情况下,为自己规划一条新的道路可能会让人感到不知所措。幸运的是,这个过程并不像看起...

你想成为一名DevOps工程师吗?也许你是一个初学者,试图进入技术领域,但不知道如何进行。或者您正试图在DevOps领域扩大规模以获得一份新工作,但您正面临一些困难。
如何成为一名DevOps工程师?成为DevOps工程师需要哪些技术?成为DevOps工程师需要多长时间?
如果你有这些问题,你并不孤单!在没有向导的情况下,为自己规划一条新的道路可能会让人感到不知所措。幸运的是,这个过程并不像看起来那么复杂,所有这些问题都已经为你解答了。
在下面的文章中了解如何成为一名DevOps工程师。

要成为一名DevOps工程师,您应该:

  • 学习计算机科学的基础知识(客户机-服务器体系结构、Linux、网络、编程);
  • 掌握主要的DevOps工具(云、自动化、容器、监控、CICD);
  • 建立几个实践项目;
  • 通过一项或多项认证考试;
    有了正确的资源和承诺,在不到6个月的时间里成为一名DevOps工程师是现实的。在经验丰富的DevOps从业者的帮助下,这个时间框架可以更短。
    在这里阅读我们最近的案例研究中的一个现实生活中的例子:在创纪录的时间内从生物学家到DevOps工程师
    在我们更详细地分解这个话题时,请与我们保持联系。

客户机-服务器和三层体系结构

所有的DevOps都专注于运行多层架构。作为一个有抱负的DevOps工程师,从理解体系结构系统开始。
客户机-服务器体系结构是由一个或多个客户机和响应其请求的服务器组成的体系结构系统。客户端是访问和使用服务的任何设备。服务器是向客户机提供功能的独立硬件/软件。系统的所有部分都是独立的,并通过网络进行通信。
多层体系结构是将数据处理和应用功能系统分开的客户机-服务器体系结构系统。使用单独的系统,您可以轻松地操作应用程序,无论是伸缩、以另一种格式复制、模块化编辑还是附加层或层。
多层体系结构分为几个层,尽管最常见的是有3个层。我们称这些模式为3层体系结构。
3层体系结构最显著的特点是层的独立性。您可以在不影响系统其余部分的情况下对一层进行更改。典型的3层基础结构如下所示:

3层体系结构的第一层是表示层或用户界面。这也被称为前端。像HTML、CSS和JavaScript这样的工具都是前沿技术的例子。用户(就像你现在一样!)当他们在网站或应用程序中购物、浏览或以其他方式导航时,直接与这一层交互。
前端下面是应用层,也称为后端。首先,这一层传递信息。将后端视为中间人–它处理和存储从前端接收的数据,并从它下面的层–数据层–提取结果。
数据层是体系结构的最底层。这是存储和检索所有数据的地方。任何主要的数据管理任务,如备份和高可用性,以及数据存储本身都在这里进行。

理解多级系统对于DevOps工作至关重要,因为所有现代系统(如Netflix、Amazon和Twitter)都是多级的。这意味着DevOps工程师每天都在处理这些概念。

Linux

首先,什么是Linux?Linux是一个开源操作系统家族,所有这些都基于我们称之为Linux内核的东西,它是系统的最低层。你每天都在与Linux交互–它运行在从路由器和智能家居设备到汽车和游戏机的所有东西上。许多技术领域最流行的名字–Android、Chromebook、Tesla等–都运行在Linux内核上。网站和服务器也运行Linux。这对于DevOps工程师来说是必不可少的学习。

DevOps工程师应该对Linux很熟悉。虽然您不需要能够做像重新编译内核这样技术上复杂的事情,但您至少需要对Linux有一个大致的了解。您应该能够完成以下任务:
使用SSH连接到服务器。SSH或安全Shell是一种基于Linux的协议,用于安全地连接到远程计算机。这允许您从自己的本地设备操作远程计算机。例如,您可以使用SSH连接到客户机的服务器并帮助他们解决技术问题。
操作文件和目录。许多最基本的Linux命令都涉及到文件和目录。了解像“复制”、“删除”和“创建目录”这样的命令是很有帮助的。
管理服务。服务(我们也称这些守护进程)是从设备打开的那一刻起就一直在后台运行的应用程序。每个服务控制软件。启动、停止和状态检查是DevOps工程师服务管理的重要基础。
使用软件包管理器安装其他软件。简单地说,包是安装在服务器上的程序。软件包管理器告诉您设备上有什么软件。在这里,您可以执行安装、升级或删除软件等操作。
请查看下面这些有用的Linux书籍(可点击)。选择一个,仔细阅读它(也许在你身边有一杯浓咖啡),从Linux的角度来看,你就准备好了。

网络

DevOps工程师维护的所有Linux服务器都分布在全球各地,并通过传输控制协议(TCP)网络相互连接。使用TCP网络是DevOps工作中一个重要的理论概念。把网络看作是一个巨大的通信和信息共享系统。
与Linux类似,您不需要是网络专家,但确实需要对关键概念有一些一般性的理解。
特别是,您需要理解开放系统互连(OSI)模型的层,它们是如何转换为TCP/IP模型的,理解路由是如何工作的,并且能够进行一些基本的网络故障排除。听起来好像很多(确实如此!),所以让我们把它分解成更小的部分。
首先,什么是OSI模型?OSI模型是第一个几乎被普遍采用的网络通信标准化模型。它包含描述计算机如何跨网络通信的七个层。今天,TCP/IP模型是基于OSI模型的一个简单得多的模型。但是,如果您能够理解OSI模型的七个层次,那么您就能够很好地理解并在TCP/IP模型中工作。
从下往上(人机交互最少到最多),七个OSI层是:

  • 物理层:物理电缆或无线连接本身。它将原始数据转换为连接设备之间的电、无线电或光信号。
  • 数据链路层:在同一网络上将数据从一台主机传输到另一台主机。
  • 网络层:跨不同网络将数据从一台主机传输到另一台主机。
  • 传输层:确认数据传输成功,如果传输失败则重新传输数据。
  • 会话层:构建、管理和终止主机之间的连接。
  • 表示层:管理过程,如数据编码、加密和压缩。
  • 应用层:最后一层,最上层,具有直接的人机交互。你每天都和这个互动。例如,HTTP、电子邮件和DNS都是应用层协议。

TCP/IP模型中的关键概念

TCP/IP模型是一组可靠的基于连接的端到端Internet协议(IP),它连接网络中的应用程序并促进它们之间的数据交换。协议定义数据如何在计算机之间传递。
TCP/IP模型简单地将OSI第5、6和7层合并为一个应用层,将OSI第1和2层合并为一个网络访问层。

路由。客户机需要一种方法来识别当他们发送请求时传递的信息类型。端口对此有帮助:标识事务中主机和服务的唯一数字。
在网络上传递的每一组信息称为包。目标是建立一条路径,使数据包尽可能有效和安全地到达目的地。我们称路径上的每个段为路由。有五种类型的路线可以使用。路由时,创建一个路由表,显示数据包将遵循的所有路由。
在TCP/IP模型中有两种类型的路由:静态路由和动态路由。在静态路由中,您手动维护路由表。当您只需要在少数几个网络之间进行通信时,这是很好的。然而,添加的网络越多,手动跟踪所有内容就越具有挑战性。在这种情况下,您将使用动态路由,其中路由表将自动更新。

然而,网络可能是巨大的–比你的任务可能需要的要多得多。在这种情况下,可以通过将一个网络拆分为更小的网络来划分子网。
IP地址和子网划分。您可能听说过IPAddress–在网络上标识设备的唯一号码。IP地址有两部分:客户端/主机地址和网络地址。您应该知道如何计算子网掩码,它将客户端地址和网络地址分开。它还确定一个子网络中可以使用的IP地址数。
基本的TCP/IP故障排除。众所周知,技术并不总是合作的。作为一名DevOps工程师,您应该知道如何解决TCP/IP网络中的常见问题。花时间研究常见问题发生的地方,如何发现问题的类型,以及如何解决它们。您应该熟练使用ping、traceroute、dig、netstat、nmap和tcpdump等工具。

程序设计

通过互联网连接的服务器本身并不产生价值;使它们有价值的是在服务器上运行的实际程序或软件。而有程序的地方,背后一定有DevOps工程师(那就是你!)了解如何将系统作为一个整体来维护。
如果编码听起来很吓人,你会很高兴知道DevOps工程师不是全职程序员。然而,成功的工程师从理解他们所维护的代码中受益。
有多种编程语言,但如果只能选择一种,请使用Python。它很强大,但很容易,不需要很多沉重的重量就可以开始。

在Python或任何其他编程语言中,您需要了解一般概念。查看下面的一些编码词汇表:
变量是一个保留的内存位置,存储分配给它的所有值。值可以是任何类型的数据,从数字到单词和对象列表。

循环提供关于一系列连续指令的顺序以及它们将被重复的次数的信息。当您希望在一行中多次执行代码块时,这很有帮助。

条件是在代码中设置决策规则的命令。采取一个或另一个操作的决定取决于定义的条件的计算结果是true还是false。If-then-else是条件语句的常见结构。本质上,如果代码以一种方式计算,那么将采取X操作。否则你的行动就会发生。

函数是一种返回值的子程序(执行任务的有组织的代码集)。常见的内置函数包括print()等,但您也可以定义自己的函数。

Cloud

依赖物理现场服务器的日子一去不复返了。相反,云–基于互联网的远程服务器计算的全球网络–已经取而代之。有许多主要的云平台被大多数公司使用。其中包括亚马逊网络服务(AWS)、谷歌云平台(GCP)和微软Azure。每一个都提供自己的服务,由其各自的供应商在大型全球数据中心管理。DevOps工程师是在云中管理应用程序的大师。

自动化

云计算的主要好处之一是,您永远不需要物理接触硬件。相反,每个动作都有编程接口。这为自动化开辟了机会。有效的DevOps团队能够在现代自动化工具的帮助下管理数以万计的虚拟云服务器。
自动化的一个例子是基础设施即代码(IaC)。顾名思义,IaC对IT基础设施的管理进行了编码,它允许比手工过程更多的灵活性(和自动化)。与云一样,有许多工具可供选择,但我们推荐Terraform用于自动化项目–它是一个开放源码的工具,有助于IAC。
Terraform的代码是用HashiCorp配置语言(HCL)编写的。您可以用块、参数和表达式编写代码,然后执行terraform计划来测试代码的执行。然后,您可以使用terraform在云提供商之间应用这些更改。
一旦准备好服务器,就需要安装软件、下载更新并调整一些OS级参数。这里是另一个重要的方面,称为配置管理发挥作用。配置管理工具最聪明的例子是Ansible。

容器

了解容器现在是DevOps中的行业标准。但它们是什么?容器是软件的单个包单元,包含所有必要的代码和元素。它们可以在任何地方运行,就像一朵云。DevOps工程师将从理解和学习容器中受益。这个领域最大的两个玩家是Kubernetes和Docker。
Kubernetes是一个开源系统,它帮助工程师自动化容器的部署、管理和伸缩。使用Kubernetes,您可以将运行容器的主机聚集在一起,并有效地管理它们、排除故障和进行扩展。Docker就像Kubernetes,但它只运行单个容器。

监控

作为一名DevOps工程师,您的大部分工作都致力于为您的团队维护直观、高效和正确工作的流畅操作系统。所有这些任务加在一起,这就是为什么您需要一种好的方法来监视一切、收集度量并进行干预以解决问题。有工具可以帮你!其中包括像普罗米修斯、格拉法纳和麋鹿这样的监测技术。

CICD

开发人员需要能够将代码交付到环境中–无论是测试新功能还是跨系统交付更新。CI\CD代表组合的持续集成和持续交付]部署,它使过程自动化。您将想知道CI\CD管道是如何工作的–执行CI\CD的一系列步骤。
典型的流水线过程包括Ci服务器,如Jenkins,从GitHub或任何其他版本控制系统提取代码,构建工件,测试它们,然后部署。

一旦您熟悉了DevOps工程的理论概念和技术基础,就该下手构建一些真正的项目了。您掌握DevOps工具并向他人展示您的专业知识的最佳方式是通过实践。这会让你对自己的技能充满信心,并向潜在的雇主展示你的能力。

从一些简单的事情开始,比如构建运行网站的基础设施。这将包括一个虚拟网络、几个负载平衡的web服务器和一个数据库。
你练好基本功后,就可以提高门槛了。现在尝试使用Kubernetes托管同一个网站。这项任务本身可以被修改、升级,并无限地建立在此基础上。
根据您的优先级和目标,您可以通过添加前面提到的功能(如监视和日志管理、CI/CD或改进安全方面)使项目进一步复杂化。可能性是无穷无尽的。通过这种方式,上面概述的所有DevOps技能都建立在彼此的基础上,使您对DevOps有一个全面的、越来越技术性的理解。

您构建的每个项目都应该使用Terraform等工具和上传到GitHub的代码来实现自动化。这将使项目可重用,更容易排除故障,最重要的是,您将把它作为一个投资组合展示给您的潜在雇主。从零开始构建一个实际的项目会为你的成功奠定基础。它向未来的雇主表明,你拥有适合他们工作的技能,并准备好立即投入工作。
不仅学习理论很重要,而且获得认证也很重要。认证通过正式声明你在某一主题中的专业知识,使你在你的领域中具有可信度。因为认证是标准化的,具有一定程度的预期严谨性,所以它们是值得信赖的能力徽章。你简历上的一个证书会让你在你的领域立即专业化。
在大多数情况下,获得认证需要参加考试。

AWS认证云从业者

AWS认证云从业者考试显示了您对AWS云系统的整体知识。它涵盖了四个主要领域:云概念、安全和合规、技术、计费和定价。这是一种很好的方法,可以演示对AWS云的概念性理解,而不需要您执行任何高度技术性的任务,如编码、设计基础结构或故障排除。预计在90分钟内回答50个多项选择/多项回答问题。

AWS认证解决方案架构师助理

这项考试通常是任何AWS认证旅程的下一步。AWS解决方案架构师评估业务需求,并创建或集成云系统以满足该需求。AWS认证的解决方案架构师助理确认您在AWS上执行解决方案架构师角色的能力。在参加这次考试之前,您需要有一些在AWS上设计和实现解决方案系统的经验。您将在以下四个领域接受测试:设计弹性体系结构、设计高性能体系结构、设计安全应用程序和体系结构以及设计成本优化的体系结构。它比AWS云实践者测试要难得多,但它更受社区的重视。你将在120分钟内回答65个多项选择/多项回答问题。

Red Hat Certified System Administrator

Red Hat Certificed Systems Administrator测试验证了您的核心Linux管理技能。这是一个长达三个小时的实践考试,要求您完成一个DevOps工程师在工作场所会完成的实际Linux任务。
这个考试将测试你的能力:理解和使用必要的工具;创建简单的shell脚本;操作运行系统;配置本地存储;创建和配置文件系统;部署、配置和维护系统;并管理基本的网络、用户、组、安全性和容器。

Kubernetes exams — KCNA, CKA, CKAD

Kubernetes and Cloud-Native Associate (KCNA)

朝中社的考试测试你在Kubernetes和云原生生态系统作为一个整体的知识和技能。如果您想从事云原生技术,您会发现该认证非常有帮助。您将测试如何使用kubectl命令、Kubernetes体系结构、原生云环境和项目以及原生云安全原则部署应用程序。这是一个90分钟的在线选择题考试,也是唯一一个理论上的Kubernetes考试。

Certified Kubernetes Administrator (CKA)

CKA可以对基于Kubernetes的系统进行基本的安装、操作、配置和管理。CKA认证给予雇主对此的官方确认。在两个小时内,您将在命令行中完成基于性能的任务。预计将在Kubernetes网络、存储、安全、维护、日志和监视、应用程序生命周期、故障排除、API对象原语和基本用例能力上进行测试。

Certified Kubernetes Application Developer (CKAD)

通过参加CKAD考试,展示您为Kubernetes设计、构建和部署云原生应用程序的能力。您应该能够使用容器映像,应用云原生应用程序概念和体系结构,并使用/验证Kubernetes资源定义。当你注册时,你自动获得两次考试尝试。

Terraform Exam

HashiCorp为在云中工作并希望确保了解Terraform和自动化基础的工程师提供Terraform认证助理考试。考试要求您:了解IaC、Terraform、Terraform云和企业功能;使用Terraform CLI;与Terraform模块交互;导航Terraform工作流;执行和维持状态;以及读取、生成和修改配置。是一个小时的选择题。
成功的DevOps职业生涯中有很多东西,独自导航可能很有挑战性。在弄清楚要学什么技能、识别最相关的工具、学习编码基础知识、选择考试和获得认证之间,很容易被淹没。
这就是为什么我们建议与专家联系。你的专家导师可以帮助你缓解一些决策疲劳,指导你完成整个过程,在你所处的位置迎接你,并支持你克服沿途的挑战。您的DevOps导师满足了这一需求,并通过将您与该领域的知名专家联系起来,为您找到合适的人选。

专家们积极从事该领域的最前沿技术。你的导师会确保你在这个领域的发展过程中学习到最新的东西,让你在DevOps中做最令人兴奋的工作时处于最佳位置。
DevOps工作,就像任何其他技术工作一样,需要学习新的技能。有一个导师来回顾你的进步对掌握新概念至关重要。
此外,当您遇到困难时,导师会帮助您排除故障。也许您的代码没有正常工作。也许有一个概念,你只是读一本书不明白。也许当你为你的投资组合创建一个项目时,你正试图突破包。有专家在你身边,你就能解决出现的任何问题。
DevOps是一个令人兴奋和不断发展的领域,这只是一个介绍。迈出下一步!通过注册您的DevOps导师来开始您的DevOps工程。让我们来帮你。

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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