DevOps 的 5 大编程语言

我们总结了 DevOps 的五大编程语言,以及每种语言的一些方便的学习资源。
909 位读者喜欢这个。
Javascript code close-up with neon graphic overlay

Jen Wike Huger 拍摄的照片

我的职业生涯主要专注于基础设施,所需Specific的技术技能也随着时间而转移。在本文中,我将列出 DevOps 的五大编程语言,以及在我将这些开发技能添加到我的基础设施工具集时,对我最有帮助的资源。

在这个阶段,知道如何安装和堆叠服务器并不是一项需求量大的技能。大多数企业都不再构建物理数据中心。相反,我们正在设计和构建托管在公共云环境中的服务能力。基础设施通过代码进行配置、部署和管理。这是 DevOps 运动的核心——当一个组织可以用代码行定义他们的基础设施时,数据中心中大多数(如果不是全部)任务的自动化就成为可能。

高级别的自动化实现了过去不可能实现的持续集成/持续交付 (CI/CD) 实践。CI/CD 工作流程使应用程序交付变得顺畅——开发人员可以将其代码推送到源代码存储库,并且基础设施会自动部署以支持测试流程,从而可以将应用程序一直推送到生产环境,而无需人工干预。技术人员爬到高架地板的瓷砖下插入新网线的这种工作不再是生产应用程序部署的关键路径。

基础设施团队现在正在将其能力从安装和堆叠服务器转移到支持这种 CI/CD 管道,这意味着学习代码。YAML 中构建的模板文件、Python 中的基础设施部署脚本以及通过 Groovy 中定义的管道部署的 JavaScript 中的应用程序。应用程序代码本身越来越接近基础设施。现在,应用程序开发人员可以在他们的应用程序中构建例程,用于通过基础设施 API 扩展和处理故障转移。这就是为什么我开始投入大量时间学习编码。

我决定专注于学习 DevOps 中涉及的开发语言,并确定了五种最相关的语言:Python、Ruby、JavaScript、Go 和 C。在这一点上,我绝不是一名全职开发人员,我甚至不确定我是否可以称自己为业余爱好者。但感谢我在本文中提供的资源,我已经超越了基本知识的水平。

Python

Python 已成为基础设施中的一种通用语言。它已被用于构建云基础设施项目,例如 OpenStack,甚至通过 Django 等框架支持 Web 应用程序。Python 是一种平易近人的语言,用途广泛。

Codecademy: 我在 Codecademy 开始学习 Python。Codecademy Python 课程 提供了很好的入门。

Safari Books Online 培训: 从那里,我继续学习 Jessica McKellar 在 Safari Books Online 上的优秀 Python 入门 课程。Safari 服务很贵,但经常有会员促销活动,可以让您享受高达 50% 的折扣。SafariBooks 还提供 O'Reilly 会议视频,包括讲座和实验室。这些讲座提供了一个机会,可以在每种语言中找到有趣的细分领域。

在线会议视频: 在线搜索,您会发现各种开发者大会上关于如何以您可能没有考虑过的方式使用语言的有趣讲座。例如,PyCon 会议视频 在 YouTube 上提供。

Ruby

Ruby 在许多基础设施项目中使用。ManageIQ,例如,是一个 Ruby on Rails 应用程序。在我在红帽的工作中,我经常和客户开玩笑说,使用 ManageIQ(和 CloudForms),用户只需 10 行 Ruby 代码就可以做任何事情。

Codecademy: 与 Python 一样,我的 Ruby 知识主要来自 Codecademy

文档: 另一个帮助我从更实际的角度(即为了我的工作)理解 Ruby 的资源是 Peter McCowan 的书精通 CloudForms 自动化(免费 PDF 格式提供)。使用 CloudForms 构建状态机和高级自动化工作流程有助于塑造我对 Ruby 内部构造的理解。

播客: 我还收听 Ruby on Rails PodcastRuby Rogues

JavaScript

JavaScript 框架 和项目的生态系统继续以惊人的速度增长。从客户端 JavaScript 到服务器端框架,互联网的绝大部分都在 JavaScript 上运行。

FreeCodeCamp: JavaScript 是一种我正在继续学习的语言,主要通过 FreeCodeCamp。FreeCodeCamp 有一个出色的免费课程,提供真实世界的示例,并将学生推向超越典型的“输入这些单词并运行”的体验。随着您在课程中不断进步,您获得的规范性指导越来越少,取而代之的是给您完成的任务。我在我的旅程中学到最彻底的课程是这种“深入深水区”的教学风格。我再怎么强烈推荐它都不为过。

播客: 我还收听以 JavaScript 为重点的播客,例如 JavaScript JabberFiveJS

Go

Go 语言于 2009 年推出,自推出以来在市场上引起了不小的轰动。该语言的设计者专注于创建一种静态类型语言,这种语言既具有人类可读性,又能在大规模下表现良好。

golang.org: 我才刚刚开始使用 Go,从 golang.org 的教程开始。

YouTube 上的 Google Developers 频道: 我还开始观看 Google Developers 频道 上的视频,包括 Go for PythonistasGet Started with GoGo Programming

Safari Books Online 培训: 我在 2017 年更加关注 Go,因为它支撑着许多重要的 Web 技术,例如 Docker、Kubernetes 和 etcd。Safari Books Online 上的学习路径是另一个很好的资源,包括 精通 Google 的 Go

C

C 语言是我尝试学习过几次的语言。每次我接触 C 时,我都没有任何特定的目标。我想学习这门语言,因为世界上很多代码都是用 C 编写的,而且这门语言中的许多结构在其他语言中也被重用。然而,当我加入红帽时,我很快就了解到一句在 FOSS 社区中流传已久的格言:最好的文档就是代码。当我试图理解 KVM、libvirt 和 QEMU 等项目时,我意识到我需要学习 C 才能理解在基本层面上发生了什么。

循序渐进学 C 为了学习 C,我选择了 循序渐进学 C,事实证明这是一种独特的语言学习方法。我喜欢作者的写作风格以及对编码练习的务实态度。您可以免费在线阅读本书,或者购买本书以获取代码示例和电影文件。

我目前的工作重点是与客户讨论云解决方案,但我长期以来一直投入于 IT 社区,我感到有义务回馈社会。我在 2017 年关注的事情之一是帮助教育当前的 IT 人员了解市场趋势,以及如何参与到正在开始成为焦点的 IT 新世界中。我希望您能够利用本文中提供的一些资源,将您的简历上的“构建服务器”要点转变为“构建代码”。

您现在专注于学习哪些编程语言?请告诉我们对您的编程之旅最有帮助的资源。

标签
Black and white portrait of Chris Saunders
我是红帽加拿大公司的混合云销售专家。我的整个职业生涯都在从事技术工作,但主要是作为企业技术的消费者。自从我转到 IT 社区的供应商一方以来,我一直专注于帮助我的客户在业务背景下理解产品。

15 条评论

很抱歉直言不讳,但这篇文章完全具有误导性。
您似乎缺乏作为 DevOp 的实际经验,因为您忘记提及 DevOps 最广泛使用的两种最重要的语言,即 Shell 脚本(主要是 Bash)和 Perl。
另一方面,“C”几乎不使用。

我完全同意 Mike 的评论。这篇文章完全具有误导性。我担任 DevOps 工程师已经 4 年了,我主要使用 shell 和 perl。

回复 作者:Mike568 (未验证)

Perl?你在开玩笑吗?现在不是 2003 年了...

回复 作者:Mike568 (未验证)

这篇文章只是前 5 名,所以不可能包含所有内容... 我同意不包括 Perl。它太 1990 年代了,不应该出现在榜单上(可能是前 20 名,也许是前 10 名,但这值得商榷)。几十年前,Perl 可能在过去做过。也就是说,shell 脚本 (bash/ksh/ash/zsh/etc...) 仍然是 DevOps 的前 5 名语言之一。

回复 作者:Mike568 (未验证)

美国最需要的语言是 Java、Python、C/C++。不知道其他语言排在哪里 - 无法涵盖所有语言。

Dave,

以下是一些您没有提及的资源

w3schools.com - HTML/CSS、javascript、SQL、PHP、ASP 的首选之地

LinuxAcademy.com - 每月花费一点钱,但这是一个非常好的学习资源。他们有一个完整的 DevOps 课程。

python.org - 另一个很棒的免费资源

我还推荐 OReilly 出版的《Python Crash Course》这本书

您如何看待 Rust?
我听到了很多关于这种语言的正面评价,但我自己还没有尝试过

我花了一点时间研究 Rust。这种语言当然有它的粉丝,但我很难找到好的资源来帮助我深入了解这门语言。

回复 作者:Yurii (未验证)

如果这个列表是排名的,谁会获胜?我不得不认为是 Go。我不得不考虑 java,即使只是因为它的巨大饱和度。也许可以取代 Ruby,Ruby 正在衰落?

我也很喜欢第一个评论,呼吁 shell 和 Perl。就像时光机! :)

还有其他非常强大且流行的编程语言,例如 PHP,我看不到哪里提到了这种语言。可能甚至这个网站也是由 php 驱动的。

Chris,很棒的文章,感谢分享。我为将来使用收藏了这篇文章!

如果您对 Ruby 感兴趣,您绝对需要查看 Why 的《Poignant Guide》- 它在 Ruby 社区中是传奇。

嗨 Chris,
很棒的文章,实际上我是一名开发人员,并尝试转向 DevOps,但我不知道该怎么做?因此,如果您能指导我,那就太好了。期待您的回复。

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.