为什么系统管理员、开发人员和测试人员应该学习 DevOps 实践?

为什么系统管理员、开发人员和测试人员应该学习 DevOps 实践?

Express 42 的管理合伙人兼作者 Alexander Titov 表示,利用这些知识可以去哪里、在项目中做什么、赚多少钱、在面试中该说什么和问什么。 在线课程“DevOps 实践和工具”.

你好! 尽管DevOps这个术语自2009年以来就已经存在,但俄罗斯社区仍然没有达成共识。 您可能已经注意到,有些人认为 DevOps 是一种专业,另一些人认为它是一种哲学,还有一些人认为这个术语是一组技术。 我已经表演过很多次了 讲座 关于这个方向的发展,所以本文不再赘述。 我只想说,在 Express 42 中,我们包含以下内容:

DevOps 是一种特定的方法,是一种创建数字产品的文化,团队中的所有专家都参与生产。

在经典的企业开发中,一切都是按顺序进行的:编程、测试、然后运行,这个过程从想法到生产的速度是3个月。 这是数字产品的一个全球性问题,因为不可能快速收到客户的反馈。

在 DevOps 中,工具和方法旨在确保开发、测试和运营流程同时运行。

这种方法会产生什么结果?

  • 你不可能雇佣一些“工程师”来解决生产中的所有问题。 整个团队必须应用该技术。

    为什么系统管理员、开发人员和测试人员应该学习 DevOps 实践?

  • DevOps 并不是下一种需要升级的系统管理员形式。 “DevOps 工程师”听起来与“敏捷开发人员”大致相同。

    为什么系统管理员、开发人员和测试人员应该学习 DevOps 实践?

  • 如果一个团队使用 Kubernetes、Ansible、Prometheus、Mesosphere 和 Docker,这并不意味着该团队已经实施了 DevOps 实践。

    为什么系统管理员、开发人员和测试人员应该学习 DevOps 实践?

DevOps 之后的生活将永远不一样

首先,DevOps 方法是一种不同的思维方式,一种对整个开发以及个人在流程中的地位的看法。 我们将在线课程分为两个部分:

1. 自决

首先,我们详细考察 DevOps 方法的本质,学生在团队中发现新的角色,看看哪个角色反应更多,并自行确定发展的方向。

2. 工具与实践

学生从DevOps方法的角度掌握具体技术。

DevOps 工具既可用于 DevOps 方法,也可用于经典开发。 最明显的例子是使用 Ansible 配置管理工具。 它的创建和构想是为了实现 DevOps 实践“基础设施即代码”,这意味着描述系统的不同状态,从操作系统设置到应用程序软件。 该描述分为多个层,允许您管理复杂的、不断变化的配置。 但工程师经常使用 Ansible 作为在多台机器上运行 bash 脚本的方式。 这既不是坏事,也不是好事,但你需要明白,Ansible 的存在并不能保证公司中 DevOps 的存在。

我们正在这个过程中 当然 您将沉浸在开发类似于著名 Reddit 的应用程序的过程中,从单体版本开始,逐步转向微服务。 我们将逐步掌握新工具:Git、Ansible、Gitlab,最后掌握 Kubernetes 和 Prometheus。

在实践方面,我们会遵循《DevOps手册》中描述的三个路径的策略——持续交付实践、反馈实践,整个课程的本质是随着你的系统不断学习的实践。

这些知识给每位专家带来了什么?

对于系统管理员

实践将使您摆脱管理,转向创建持续交付管道和软件交付基础设施平台。 关键是他创建了一个产品——一个为开发人员提供的基础设施平台,帮助他们快速将更改推向生产。

以前,系统管理员是最后的堡垒,之后一切都投入生产。 基本上,他们一直在忙于救火 - 鉴于此,深入研究业务需求、思考产品和用户的利益是相当困难的。
感谢 DevOps 方法,思维发生了变化。 系统管理员了解如何将配置转换为代码,以及这方面存在哪些实践。

这很重要,因为公司越来越意识到他们不仅仅需要自动化一切,即老式系统管理员基本上习惯于这样做,而且他们很少沟通,也没有告知团队所做的所有更改。 现在,团队正在寻找那些将成为内部基础设施产品制造商并帮助将分离的流程整合为一个流程的人。

开发者

开发人员不再只考虑算法。 他获得了使用基础设施的技能,以及建筑景观意识的技能。 这样的开发人员了解应用程序如何工作,如何通过持续交付管道,如何监控它,如何注册它以使客户受益。 因此,所有这些知识都可以让您编写相关代码。

对于测试人员

测试早已进入自动模式;我们都说很多测试不应该做,而应该写:)测试成为产品整个交付管道的一部分。 测试人员不仅需要学习如何编写代码,还要了解如何将其集成到持续交付系统中,如何在交付的各个阶段接收代码的反馈,以及如何不断改进测试以发现错误尽早。

事实证明 所有三个阶段同时发生。 例如,它可能看起来像这样:

开发人员编写代码,立即为其编写测试,并为应运行的代码描述一个 docker 容器。 它还立即描述了将监视该服务在生产中的操作的监视,并提交所有这些。

当持续集成开始时,流程同时运行。 服务启动并配置。 同时,docker容器启动并检查其是否正在运行。 同时,所有信息都会进入日志系统。 在开发的每个阶段都是如此——事实证明这是系统管理员、开发人员和测试人员真正的团队合作。

我学习了 DevOps,下一步该做什么?

如您所知,在战场上的人并不是战士。 如果你的公司不采用这种方法,那么获得的技能就会被闲置。 在熟悉 DevOps 方法之后,您很可能不想成为企业发展的齿轮。 可能有一个例外:您是团队中的系统管理员,可以以新的方式重建所有流程。 在这里值得补充的是,有很多公司使用这种方法,并且他们没有受到封锁的影响,并且正在寻找专家。 因为 DevOps 是关于创建在线产品。

现在说说好东西:掌握 DevOps 实践和工具可以使您在劳动力市场上的价值增加约 30%。 薪水从 140 万卢布起,但自然取决于您的主要专业和职能。

您可以查看标记为“面向基础设施”的职位空缺,其中包括测试自动化、使用云技术开发微服务应用程序、基础设施工程师的职位空缺以及有关 DevOps 的各种参考。 请记住,每个公司的定义都有不同的含义 - 请仔细阅读说明。

在我们课程推出的过程中,我得到了一个洞察——很多人在课程结束后都陷入了 DevOps 工程师的陷阱。 他们找到了一个具有上述头衔的空缺,收到了一份不错的报价,然后开始工作,并意识到他们必须在 Jenkins 中维护一个三页的 bash 脚本。 Kubernetes、ChatOps、金丝雀版本等等都在哪里? 但也没什么,因为公司不需要DevOps作为方法论,而是采用个体创新。

这是从公司深入了解软件交付流程如何运作、技术堆栈以及您将履行哪些职责的原因。

如果雇主抽象地回答你的问题,就像从书本上一样,没有细节,那么公司很可能还没有DevOps流程,但这不是拒绝的理由,研究公司及其产品,是否有在线公司自行开发的服务、移动应用程序、产品理念。

如果是,请澄清您是否必须直接使用这些系统,或者是否有可能横向移动到这些服务团队,同时在 DevOps 实践中展示良好的结果。 如果是的话,那么就值得去,并且保持活跃和有用,如果您完成我们的课程,后者是有保证的。

值得注意的是,DevOps 从业者只有拥有开发/管理/测试经验才能获得真正的价值。 只有这样,知识才不再是抽象的,而是丰富了专家的知识(在任何意义上)。 因此,如果你从未拿过相机或导演过拍摄,“从头开始学习 DevOps”的想法与“从头开始使用镜头”的想法大致相同。 为了帮助您确定该课程是否适合您,我们进行了入学测试,以检查您的知识水平是否足够。

我认为技巧之一 当然 ——在培训过程中,每个学生自己决定自己想要发展的方向。 当开发人员成为基础设施工程师,管理员意识到他对编写代码感兴趣时,我们经常会看到这种转变 - 然后他进一步研究该语言并用获得的 DevOps 技能对其进行补充。 因此,我们特别欢迎那些觉得自己的职业生涯陷入十字路口的人。 课程于 28 月 2 日开始,但您可以在开课后 XNUMX 周加入。 您可以查看程序并参加测试 链接。 OTUS见!

来源: habr.com

添加评论