系統(tǒng)管理員寶典:2019年7種實(shí)用的編程語言
譯文【51CTO.com快譯】如果你是系統(tǒng)管理員,可能純粹為了搗鼓和鉆研學(xué)習(xí)任何編程語言。沒有人阻止你,但一些語言特別有意義。你的情況可能不一樣,這取決于你的基礎(chǔ)架構(gòu)、應(yīng)用程序、代碼庫和工具鏈等因素。不妨看看值得今天的系統(tǒng)管理員考慮的7種語言。
1.Bash
Bash命令語言(全稱是Bourne Again Shell,意指取代了Bourne Shell)有大批的鐵桿IT粉絲。Nebulaworks的***技術(shù)官Rob Hernandez說,這種語言特別適合系統(tǒng)管理員學(xué)習(xí),因?yàn)樗m合一些基本的工作職責(zé)。
Hernandez說:“系統(tǒng)管理員發(fā)現(xiàn)自己往往需要將流程或現(xiàn)有工具結(jié)合起來。這常常說起來容易做起來難。通常系統(tǒng)面臨各種制約,而你安裝解釋器或編譯器的能力可能有限。”
這時Bash應(yīng)運(yùn)而生。Hernandez指出,大多數(shù)Linux發(fā)行版和UNIX OS上都有這個shell。此外,Bash命令語言非常適合處理系統(tǒng)管理員經(jīng)常要處理的諸多問題。
Hernandez說:“[Bash]提供了解決無數(shù)問題所必需的結(jié)合機(jī)制(glue),又沒有較復(fù)雜的語言所需的許多樣板代碼。迅速建立原型、甚至解決初始問題的這種能力通常是經(jīng)驗(yàn)豐富的系統(tǒng)管理員所使用的***個工具。由于現(xiàn)在通過WSL包含在Windows中,它肯定不會很快消失。”
2.Python
Hernandez特別指出,shell腳本會遇到極復(fù)雜的情況。對于Hernandez來說,Python是那種下一級語言。原因在于:“Python提供了一系列優(yōu)于shell的優(yōu)點(diǎn),還讓你可以編寫單元測試。[Python]可以安裝在任何現(xiàn)代的UNIX OS或Linux發(fā)行版上,語法并不專橫。我發(fā)覺,對熟悉shell的人來說這是一種平易近人的選擇。”
如果你是這門語言的新手,Hernandez也提供了建議:“從Python 3.6入手,因?yàn)榭偟膩碚fPython 2.x已壽終正寢。兩個版本之間的語法略有不同,但這樣你可以馬上學(xué)會好的習(xí)慣。”
英國4D Data Centres Ltd的董事總經(jīng)理兼聯(lián)合創(chuàng)始人Jack Bedell-Pearce說:“這幾年P(guān)ython重新流行起來,意味著網(wǎng)上有更多的資源可供學(xué)習(xí),而且是***的。Python是所有系統(tǒng)管理員必須掌握的。它是跨平臺的,適合任何復(fù)雜的任務(wù)。”
3.PowerShell
如上所述,適合你的語言取決于你在使用的環(huán)境。PowerShell就是個典例。
Bedell-Pearce說:“對于Windows系統(tǒng)管理員來說,PowerShell非常寶貴。”
“PowerShell讓用戶可以通過命令行來訪問和控制整個系統(tǒng)。管理任務(wù)可以完全自動化,節(jié)省了時間,并盡量減少了人為錯誤。可以編制Powershell腳本,輕松地自動完成數(shù)小時的重復(fù)任務(wù)。”
4.Azure PowerShell
Azure Powershell表面上是PowerShell面向公共云的擴(kuò)展,這種語言可能非常適合面對Azure的系統(tǒng)管理員,尤其是在多云和混合云環(huán)境下。
NetEnrich的***技術(shù)官Jared Sikander說:“Azure PowerShell提供了一套使用Azure資源管理器模式來管理Azure資源的cmdlet。Azure PowerShell使用.NET Standard,因而適用于Windows、macOS和Linux。”
5.Node.js
Sikander還提到Node.js是DevOps部門及自動化受到重視的其他環(huán)境中另一個不錯的選擇。用該項(xiàng)目的話來說,這個開源JavaScript運(yùn)行時環(huán)境“旨在構(gòu)建可擴(kuò)展的網(wǎng)絡(luò)應(yīng)用程序”。它還經(jīng)常被提到很適合微服務(wù)架構(gòu)。Sikander通常推薦使用與DevOps文化和實(shí)踐有關(guān)的語言(比如Node.js等)和工具。市面上諸如Ansible之類的配置管理工具就是這一類工具。
6.Kubernetes
Kubernetes不是傳統(tǒng)意義上的語言。但這個平臺已成為管理容器化應(yīng)用程序的***之一,隨著更多的公司在生產(chǎn)環(huán)境中部署容器,它可能會越來越受歡迎。雖然我們通常將Kubernetes稱為容器編排或管理工具,但它確實(shí)擁有自己的原生命令行接口kubectl,kubectl有自己的一套特定語法來管理Kubernetes集群。
7.Go
說到集群,Kubernetes在關(guān)鍵概念和功能方面有自己的一套語言或詞匯。Kubernetes項(xiàng)目網(wǎng)站上有一份詞匯表和用于運(yùn)行命令的kubectl速查表。如果這里再添加一種實(shí)際的編程語言,不妨考慮Go(又叫Golang),如果你希望為管理容器化應(yīng)用程序及基礎(chǔ)架構(gòu)的角色構(gòu)建你的登錄信息,更是如此。Kubernetes用Go編寫,Docker和rkt也是如此。
原文標(biāo)題:7 valuable programming languages for sysadmins in 2019,作者:Kevin Casey
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】