我从哪里开始学习DevOps?


10

搜索“如何从devops开始”并没有真正的帮助,因为他们中的许多人都喜欢这样以及其他许多人并没有以正确的方式指出我。到目前为止,我看到的每个youtube视频都没有帮助(因为我不需要向我解释什么是dev的视频),是迄今为止唯一真正的例外(表明事物之间如何相互融合)。

我是一名CCNA,并且对DBMS(目前正在学习并行执行以及其他知识)也非常精通。

但是我不知道我应该首先学习什么(或者在哪里可以找到正确的资源)。

我即将毕业,因此无法获得现实世界的经验。

有什么建议或帮助吗?

Answers:


5

Devop与软件的执行有关。这都是关于如何运行应用程序或服务的。因此,下一步就是服务器配置工具,虚拟机和容器。我建议查看这些工具的文档,并从中学习发现,可观察性,可伸缩性和冗余之类的内容。仅举一些例子:

服务器配置:

  • PXE
  • Ansible
  • 木偶

虚拟机:

  • 流浪汉
  • 量化宽松

容器:

  • 码头工人
  • Kubernetes

编辑:云技术概述:

当您的软件体系结构涉及微服务时,容器是一个不错的选择。当您使用旧的整体应用程序时,VM并不是一个不错的选择。因此,它始终取决于上下文,您需要专门学习什么。本主题概括起来相当广泛。一本书也许可以解决这个问题,但可悲的是,我不能推荐一本好书。不过,“ Kubernetes in Action”为您在Kubernetes中提供了一个良好的开端。


还将添加有关ci / di的信息,例如竹子,詹金斯,teamcity或类似名称。
Cyclonecode

1
我忘记了一件事,这可能会有所帮助。云技术概述:CNCF景观
jhamfler

好吧,编辑您发布并添加更多信息=)我实际上盯着这个。
Cyclonecode

@Cyclonecode你是对的。完成
詹姆勒(Jhamfler)

很抱歉,如果这是一个愚蠢的问题,如果EC2已在虚拟机中运行,为什么我需要Docker?
PirateApp

4

首先,我想强调一下DevOps是一种文化,而不是一种角色。在我看来,可以将其与一支具有自己专长的突击队进行比较,例如狙击手,海军陆战队,开膛手(想一想突击队系列)。这些专业知识的组合,基本上是一起工作,使尽快完成任务或创造业务价值成为可能。

低运和无运

几个星期以来,我发现经过与人的大量交谈之后,这些天来人们在谈论LowOps。如果我实施解决方案,则意味着它是完全自动化的,并且同事可以自行部署计算机,而不必问我。有时不可能立即完全自动化它,但是我确保自己可以自动化,以确保只需要运行一个命令即可完成工作(LowOps),而不是浪费几个小时。如果我已经创建了这样的解决方案,那么我将确保已为同事创建票证,以自动为每个人提供我的个人解决方案。示例:我的一个同事将我的bash脚本转换为一个机器人,该机器人现在每天晚上运行。

在此处输入图片说明

图1:https : //www.gslab.com/blog-post/what-is-noops/

“如何开始使用devops”

确保您是具有混合能力的团队的一员,并且团队必须自己部署软件。与所有团队成员交谈,从缺乏知识或意愿的人开始做没人要做的任务。如果您从一项任务开始,那么您将遇到一些未知的事情。开始观看视频,参加聚会,购买和阅读书籍,阅读有关工具的博客和官方文档,要求同事审查您的拉取请求并与他人进行良好的交流和倾听,很好地记录事物并为同事准备和演示解决方案(知识共享) 。最后的建议是注意工作与生活之间的平衡


2

这里的其他答案都集中在工具上。我认为,在工具箱中获得能力固然是一件好事,但并不能使您很好地适应DevOps文化。DevOps首先是一组实践方法

了解这些实践和方法为何有用的原因是经验,但您没有那么奢侈。因此,我将指出您

作为基础课本。

持续交付网站上也有一组的原则基础,给你相关的接地启动时。

从这些开始,您将学习实践和方法,这将指导如何协作和使用工具。



1

这是我多次问自己的问题,并且总是会跟着我问(现在,我刚好脱离“初学者”,我想知道在哪里可以学习更高级的主题)。就像您指出的那样,可悲的是,在搜索引擎上提出这些问题往往会导致针对高管的网站泛滥成灾,并试图解释什么是发展?我们为什么要与工业化的DEVOPS软件周期?

话虽这么说,但要尝试回答您的问题,我只能以个人经验为依据:我从出色的Docker入门指南开始了我的学习之旅。


1

正如您也发现的那样,“学习DevOps”让我感到查询范围太广,但是我记得要用Google搜索同样的东西。

添加到@jhamfler的答案:问问自己,为什么要了解它?您来自哪个背景?DevOps通常与打破手动障碍或团队中的筒仓结构有关(每个人只是在完成自己的任务并依靠其他人考虑整合结果)。您的项目中是否存在此类“缺口”(我假设您有一个)?它的哪些部分可以从自动化中受益?

我可以建议的典型问题是:

  • 手动服务器维护VS脚本解决方案
  • 可靠性和备份
  • 自动化集成测试
  • 自动持续部署(例如,Web服务)
  • ...

也许搜索“持续部署”和“持续集成”(CI / CD)也可以为您提供帮助。


1

您需要学习并熟悉的第一件事:

  • Unix(文件系统,权限,进程,服务,日志,网络等)
  • SSH和反向隧道
  • 纳米/ vim
  • 蟒蛇
  • 吉特

然后,您可以继续进行更具体的主题:

  • 容器化(例如docker)
  • 配置管理(例如,ansible)
  • 持续部署(例如詹金斯)
  • 监测(例如普罗米修斯/格拉纳纳)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.