Chris Saunders (Red Hat)一直专注于基础设施,本篇文章将介绍5大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在线培训:在这里学到了Jessica McKellar在Safari Books Online上优质的Python教程。Safari服务是昂贵的,但会员有五折优惠。Safari Books还有O'Reilly会议视频,包括演讲和实验室。
Ruby
Ruby用于许多基础设施项目。例如,ManageIQ就是一个Ruby on Rails应用程序。我在红帽时,经常与ManageIQ(和CloudForms)的客户开玩笑,只用10行Ruby代码可以做任何事情。
Codecademy:与Python一样,我从Codecademy中学习Ruby知识。
文档:帮助理解Ruby的另一个资源是文档,如Peter McCowan的“ 掌握CloudForms自动化” (可以免费获得PDF)。使用构建状态和高级自动化工作流的CloudForms有助于对Ruby构造的理解。
播客:我也听Ruby on Rails Podcast和Ruby Rogues 。
JavaScript
JavaScript相关的框架和项目生态继续以惊人的速度发展壮大。从客户端到服务器端框架,大量业务运行在JavaScript上。
FreeCodeCamp:学习JavaScript,我主要通过FreeCodeCamp。FreeCodeCamp有一个优秀的免费程序,提供实践分享,并推动学生动手操作。我学到的最完整课程就是基于这个“深入开始”的教学方式,真心推荐。
播客:我也听JavaScript的重点播客,如JavaScript Jabber和FiveJS 。
Go
Go语言自2009年推出以来,已经在市场上占有一席之地。该语言的设计者专注于制作一种人类可读的静态类型语言,其在规模上也表现良好。
golang.org:我从golang.org开始学习使用Go。
YouTube上的Google Developers频道:我也在Google Developers频道观看影片,其中包括Go for Pythonistas ,Get Started with Go和Go Programming 。
Safari Books在线培训:2017年我更加关注Go语言,因为它支持了一些重要的网络技术,如Docker,Kubernetes等。Safari Books Online是另一个很棒的学习资源,包括Master Google's Go。
C
C是我多次尝试学习的语言。每次接触C语言时,都设定了目标。很想学习这种语言,因为世界上很多代码都是用它编写的,语言中的许多结构都与其他语言通用。当加入红帽时,我很快就明白了FOSS社区的格言:***的文档是代码。正如我已经设法了解KVM,libvirt和QEMU这样的项目,需要学习C来了解基本情况。
Learn C the High Way:要学习C,可以选择“Learn C the High Way”( https://learncodethehardway.org/c/ ),这已被证明是一种独特的语言学习方法。喜欢作者的写作风格和编码练习方法。免费在线阅读,或者购买,都可以获取代码示例和影音文件。
我已经在IT社区学习了很长时间,目前的工作重点是和客户沟通云解决方案。2017年更专注的事情是帮助目前的IT人员了解市场发展趋势,以及如何参与以IT为核心的代码世界。希望能够用到本文中提供的一些资源帮助到正在学习的你。