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



Express 42的管理合伙人,在线课程“ DevOps Practices and Tools”的作者亚历山大·蒂托夫(Alexander Titov)说,掌握这些知识的地方,在该项目中做什么工作以及该赚多少钱,在访谈中说什么和问什么

你好!尽管自2009年以来就存在DevOps一词,但俄罗斯社会仍未达成共识。当然,您已经注意到,有些人将DevOps视为专业,而另一些人则将其视为一种哲学,而另一些人将DevOps称为一组技术。我已经就该领域的发展进行过很多次演讲,因此在本文中我将不再赘述。我只能说我们在Express 42中加入了以下内容:

DevOps-团队中的所有专家都参与生产时的一种特定技术,一种创建数字产品的文化。

在经典的公司开发中,所有事情都是按顺序进行的:编程,测试,然后是开发,从构思到生产的整个过程的速度为3个月。对于数字产品,这是一个全球性问题,因为您无法及时收到客户的反馈。

在DevOps中,工具和方法得到了改进,以便同时启动开发,测试和操作过程。

这种方法会带来什么?


  • 您不能雇用某个“工程师”来解决生产中的所有问题。整个团队都应该应用该技术。


  • DevOps不是您可以升级到的下一种sysadmin。DevOps工程师听起来很像敏捷开发人员。



  • 如果团队使用Kubernetes,Ansible,Prometheus,Mesosphere和Docker,则这并不意味着在那里实施了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%。薪水起价为14万卢布,但当然取决于您的主要专业和功能。

您可以查看标记为“专注于基础架构”的职位空缺,其中包括测试自动化,使用云技术开发微服务应用程序,基础架构工程师的职位空缺以及对DevOps的各种引用。请记住,每个公司在此定义下的含义都不同-请仔细阅读说明。

在本课程启动期间,我得到了一种见识-课程结束后,很多人陷入了DevOps工程师的陷阱。他们找到了具有上述名称的空缺,获得了不错的报价,然后他们开始工作,并了解他们将必须在Jenkins中支持三页的bash脚本。 Kubernetes,ChatOps,Canary版本在哪里,仅此而已?没什么,因为该公司不需要DevOps作为方法论,而是使用了单独的创新。

这是一个机会,可以从公司集中了解软件交付过程的安排方式,技术堆栈以及您将承担的责任。

如果雇主抽象地回答您的问题(如在一本书中,没有详细信息),则很可能该公司尚无DevOps流程,但这不是拒绝研究该公司及其产品的理由,该公司是否自行开发了任何在线服务,移动应用程序,产品创意。

如果是,则指定您是必须直接使用这些系统,还是可以横向转移到这些服务的团队,同时在DevOps实践中证明良好的结果。如果是这样,那么值得一试,保持积极主动和乐于助人,如果您完成了我们的课程,则可以保证后者。

重要的是要注意,只有在您具有开发/管理/测试经验的情况下,Devops实践的真正价值才能获得。只有这样,知识才不会是抽象的,而是可以在各个方面丰富专家。因此,如果您从未手持相机或指导拍摄,那么``从头开始学习设计''的想法与学习``从头开始使用镜头''的想法相同。为了帮助您确定该课程是否适合您,我们进行了入门测试,将测试足够的知识水平。

我认为该课程的筹码之一-在培训过程中,每个学生都会自己确定他想发展哪种方式的事实。当开发人员成为基础架构工程师时,我们经常会观察到过渡,而管理员知道他对编写代码感兴趣-然后,他会另外学习该语言,并通过获得的DevOps技能对其进行补充。因此,我们特别期待那些感到自己的事业陷于十字路口的人们。该课程于5月28日开始,但是您可以在课程开始后2周加入。您可以观看该程序并在此处进行测试在OTUS见!

All Articles