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 应用程序。在我在 Red Hat 的工作中,我经常和客户开玩笑说,使用 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 上的学习路径是另一个很好的资源,包括 Master Google's Go

C

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

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

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

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

标签
Black and white portrait of Chris Saunders
我是 Red Hat Canada 的混合云销售专家。我的整个职业生涯都在技术领域工作,但主要是作为企业技术的消费者。自从我转到 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驱动的。

很棒的文章,克里斯,谢谢分享。我正在收藏这篇文章以备将来使用!

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

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

© . All rights reserved.