專注學習DevOps編程語言Top 5推薦
Chris Saunders (Red Hat)一直專注于基礎(chǔ)設(shè)施,本篇文章將介紹5大DevOps編程語言以及一些有幫助的學習資源。
在當下,了解服務(wù)器的架構(gòu)和技術(shù)棧不是一個強需求的技巧。大多數(shù)的企業(yè)都不會自建物理數(shù)據(jù)中心,相反,正在設(shè)計和構(gòu)建托管在公有云環(huán)境中的服務(wù),通過代碼配置、部署和管理基礎(chǔ)設(shè)施。而這正是DevOps的核心——當代碼行可以定義基礎(chǔ)架構(gòu)時,數(shù)據(jù)中心中大部分(如果不是全部)任務(wù)的自動化將成為可能。
在過去,通過高度的自動化實現(xiàn)持續(xù)集成/連續(xù)交付(CI / CD)是不可能的。 CI / CD工作流使應(yīng)用程序的傳遞無縫連接——開發(fā)人員可以將代碼推送到源存儲庫,自動部署基礎(chǔ)架構(gòu),將測試后的應(yīng)用程序投入到生產(chǎn)環(huán)境而無需人為干預(yù)。
基礎(chǔ)設(shè)施團隊將他們的能力從維護服務(wù)器轉(zhuǎn)移到支持CI / CD,這就意味著要學習代碼。YAML中構(gòu)建的模板文件,Python中的基礎(chǔ)架構(gòu)部署腳本以及通過Groovy定義部署的JavaScript應(yīng)用程序。應(yīng)用程序代碼本身正在越來越接近基礎(chǔ)架構(gòu)。現(xiàn)在,應(yīng)用程序開發(fā)人員可以在其應(yīng)用程序中構(gòu)建日常操作,通過基礎(chǔ)設(shè)施API擴展并處理故障轉(zhuǎn)移。這就是個人投入大量時間去學習代碼的原因。
專注學習DevOps過程中涉及很多開發(fā)語言,以下是最相關(guān)的五種:Python,Ruby,JavaScript,Go和C.
Python
Python已經(jīng)成為基礎(chǔ)設(shè)施領(lǐng)域中的多用途語言,它可以用于構(gòu)建諸如OpenStack之類的云基礎(chǔ)設(shè)施項目,甚至通過諸如Django之類的框架支持Web應(yīng)用程序。 Python是一種易用的語言,具有廣泛的用途。
Codecademy:在Codecademy學習Python。Codecademy上Python項目有很好的介紹
Safari Books在線培訓:在這里學到了Jessica McKellar在Safari Books Online上優(yōu)質(zhì)的Python教程。Safari服務(wù)是昂貴的,但會員有五折優(yōu)惠。Safari Books還有O'Reilly會議視頻,包括演講和實驗室。
Ruby
Ruby用于許多基礎(chǔ)設(shè)施項目。例如,ManageIQ就是一個Ruby on Rails應(yīng)用程序。我在紅帽時,經(jīng)常與ManageIQ(和CloudForms)的客戶開玩笑,只用10行Ruby代碼可以做任何事情。
Codecademy:與Python一樣,我從Codecademy中學習Ruby知識。
文檔:幫助理解Ruby的另一個資源是文檔,如Peter McCowan的“ 掌握CloudForms自動化” (可以免費獲得PDF)。使用構(gòu)建狀態(tài)和高級自動化工作流的CloudForms有助于對Ruby構(gòu)造的理解。
播客:我也聽Ruby on Rails Podcast和Ruby Rogues 。
JavaScript
JavaScript相關(guān)的框架和項目生態(tài)繼續(xù)以驚人的速度發(fā)展壯大。從客戶端到服務(wù)器端框架,大量業(yè)務(wù)運行在JavaScript上。
FreeCodeCamp:學習JavaScript,我主要通過FreeCodeCamp。FreeCodeCamp有一個優(yōu)秀的免費程序,提供實踐分享,并推動學生動手操作。我學到的最完整課程就是基于這個“深入開始”的教學方式,真心推薦。
播客:我也聽JavaScript的重點播客,如JavaScript Jabber和FiveJS 。
Go
Go語言自2009年推出以來,已經(jīng)在市場上占有一席之地。該語言的設(shè)計者專注于制作一種人類可讀的靜態(tài)類型語言,其在規(guī)模上也表現(xiàn)良好。
golang.org:我從golang.org開始學習使用Go。
YouTube上的Google Developers頻道:我也在Google Developers頻道觀看影片,其中包括Go for Pythonistas ,Get Started with Go和Go Programming 。
Safari Books在線培訓:2017年我更加關(guān)注Go語言,因為它支持了一些重要的網(wǎng)絡(luò)技術(shù),如Docker,Kubernetes等。Safari Books Online是另一個很棒的學習資源,包括Master Google's Go。
C
C是我多次嘗試學習的語言。每次接觸C語言時,都設(shè)定了目標。很想學習這種語言,因為世界上很多代碼都是用它編寫的,語言中的許多結(jié)構(gòu)都與其他語言通用。當加入紅帽時,我很快就明白了FOSS社區(qū)的格言:***的文檔是代碼。正如我已經(jīng)設(shè)法了解KVM,libvirt和QEMU這樣的項目,需要學習C來了解基本情況。
Learn C the High Way:要學習C,可以選擇“Learn C the High Way”( https://learncodethehardway.org/c/ ),這已被證明是一種獨特的語言學習方法。喜歡作者的寫作風格和編碼練習方法。免費在線閱讀,或者購買,都可以獲取代碼示例和影音文件。
我已經(jīng)在IT社區(qū)學習了很長時間,目前的工作重點是和客戶溝通云解決方案。2017年更專注的事情是幫助目前的IT人員了解市場發(fā)展趨勢,以及如何參與以IT為核心的代碼世界。希望能夠用到本文中提供的一些資源幫助到正在學習的你。