DevOps 的 5 大编程语言

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

Jen Wike Huger 拍摄的照片

我的职业生涯主要专注于基础设施,随着时间的推移,所需的特定技术技能也发生了变化。在本文中,我将列出 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 的著作《Mastering CloudForms Automation》(可免费下载 PDF)。使用 CloudForms 构建状态机和高级自动化工作流程帮助我形成了对 Ruby 内部构造的理解。

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

JavaScript

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

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

播客: 我还收听以 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 上的学习路径是另一个很好的资源,包括 Master Google's Go

C

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

Learn C the Hard Way 为了学习 C 语言,我选择了 Learn C the Hard Way,这已被证明是一种独特的语言学习方法。我喜欢作者的写作风格和对编码练习的务实态度。您可以免费在线阅读本书,也可以购买本书以获得代码示例和电影文件。

我目前的工作重点是与客户讨论云解决方案,但我长期以来一直投入于 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(未验证)

这篇文章只是前 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's Poignant Guide - 它在 Ruby 社区中是传奇。

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

Creative Commons 许可本作品根据 Creative Commons Attribution-Share Alike 4.0 International License 许可。
© . All rights reserved.