【51CTO.com快译】如果你是系统管理员,可能纯粹为了捣鼓和钻研学习任何编程语言。没有人阻止你,但一些语言特别有意义。你的情况可能不一样,这取决于你的基础架构、应用程序、代码库和工具链等因素。不妨看看值得今天的系统管理员考虑的7种语言。
1.Bash
Bash命令语言(全称是Bourne Again Shell,意指取代了Bourne Shell)有大批的铁杆IT粉丝。Nebulaworks的***技术官Rob Hernandez说,这种语言特别适合系统管理员学习,因为它适合一些基本的工作职责。
Hernandez说:“系统管理员发现自己往往需要将流程或现有工具结合起来。这常常说起来容易做起来难。通常系统面临各种制约,而你安装解释器或编译器的能力可能有限。”
这时Bash应运而生。Hernandez指出,大多数Linux发行版和UNIX OS上都有这个shell。此外,Bash命令语言非常适合处理系统管理员经常要处理的诸多问题。
Hernandez说:“[Bash]提供了解决无数问题所必需的结合机制(glue),又没有较复杂的语言所需的许多样板代码。迅速建立原型、甚至解决初始问题的这种能力通常是经验丰富的系统管理员所使用的***个工具。由于现在通过WSL包含在Windows中,它肯定不会很快消失。”
2.Python
Hernandez特别指出,shell脚本会遇到极复杂的情况。对于Hernandez来说,Python是那种下一级语言。原因在于:“Python提供了一系列优于shell的优点,还让你可以编写单元测试。[Python]可以安装在任何现代的UNIX OS或Linux发行版上,语法并不专横。我发觉,对熟悉shell的人来说这是一种平易近人的选择。”
如果你是这门语言的新手,Hernandez也提供了建议:“从Python 3.6入手,因为总的来说Python 2.x已寿终正寝。两个版本之间的语法略有不同,但这样你可以马上学会好的习惯。”
英国4D Data Centres Ltd的董事总经理兼联合创始人Jack Bedell-Pearce说:“这几年Python重新流行起来,意味着网上有更多的资源可供学习,而且是***的。Python是所有系统管理员必须掌握的。它是跨平台的,适合任何复杂的任务。”
3.PowerShell
如上所述,适合你的语言取决于你在使用的环境。PowerShell就是个典例。
Bedell-Pearce说:“对于Windows系统管理员来说,PowerShell非常宝贵。”
“PowerShell让用户可以通过命令行来访问和控制整个系统。管理任务可以完全自动化,节省了时间,并尽量减少了人为错误。可以编制Powershell脚本,轻松地自动完成数小时的重复任务。”
4.Azure PowerShell
Azure Powershell表面上是PowerShell面向公共云的扩展,这种语言可能非常适合面对Azure的系统管理员,尤其是在多云和混合云环境下。
NetEnrich的***技术官Jared Sikander说:“Azure PowerShell提供了一套使用Azure资源管理器模式来管理Azure资源的cmdlet。Azure PowerShell使用.NET Standard,因而适用于Windows、macOS和Linux。”
5.Node.js
Sikander还提到Node.js是DevOps部门及自动化受到重视的其他环境中另一个不错的选择。用该项目的话来说,这个开源JavaScript运行时环境“旨在构建可扩展的网络应用程序”。它还经常被提到很适合微服务架构。Sikander通常推荐使用与DevOps文化和实践有关的语言(比如Node.js等)和工具。市面上诸如Ansible之类的配置管理工具就是这一类工具。
6.Kubernetes
Kubernetes不是传统意义上的语言。但这个平台已成为管理容器化应用程序的***之一,随着更多的公司在生产环境中部署容器,它可能会越来越受欢迎。虽然我们通常将Kubernetes称为容器编排或管理工具,但它确实拥有自己的原生命令行接口kubectl,kubectl有自己的一套特定语法来管理Kubernetes集群。
7.Go
说到集群,Kubernetes在关键概念和功能方面有自己的一套语言或词汇。Kubernetes项目网站上有一份词汇表和用于运行命令的kubectl速查表。如果这里再添加一种实际的编程语言,不妨考虑Go(又叫Golang),如果你希望为管理容器化应用程序及基础架构的角色构建你的登录信息,更是如此。Kubernetes用Go编写,Docker和rkt也是如此。
原文标题:7 valuable programming languages for sysadmins in 2019,作者:Kevin Casey
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】