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