第 7 章 Go
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
本书的早期版本涵盖了网络自动化领域的各种工具和技术。即使在当时(自动化在很大程度上仍被认为是一门新兴学科),也有许多工具可用于解决最常见的用例。然而,在这些工具本身不足以解决的用例中,一直存在着一种替代方法。考虑到 Python 的普及性和易用性,在本章中重点介绍该语言是合情合理的。有了这些知识,网络自动化专业人员就可以选择编写自定义 Python 脚本,以填补现有生态系统中的任何空白(如果现有工具本身被证明是不够的)。
然而,Python 已不再是唯一的编程语言。如今,在任何规模的网络自动化项目中,都能经常看到另一种编程语言的身影:Go。Go 最初由 Google 于 2007 年设计,如今已被全球数千家公司所使用。根据2021 年 Go 开发者调查,76% 的受访者在工作中使用 Go。不出所料,这其中有相当比例的技术型公司,但也包括医疗保健、零售和制造等行业。在许多其他行业中,近 40% 的受访者表示他们在自动化或脚本用例中使用 Go。显然,这种相对年轻的语言中蕴含的强大功能值得我们在网络自动化领域仔细研究。
在我们深入研究围棋之前,你应该了解三个重要的行业趋势,这将有助于把本章放在适当的背景中:
- 学科的成熟和对专业技能的需求
-
尽管新增工具层出不穷,但对网络自动化编程技能的需求却有增无减。这并不完全出乎意料:随着这门学科的成熟,罐装工具可以解决常见的、共同的问题,我们将向更高的层次发展,需要更多针对我们各自组织/环境的专用工具。正因为如此,我们对语言和工具的要求也更加明确。
- 云本地
-
Go 在云原生技术领域拥有令人难以置信的强大立足点。正如 2010 年代初的服务器虚拟化运动对提高网络敏捷性产生了巨大的影响和需求(最终导致了 SDN),云原生运动现在也对网络工程师必须使用的技术和科技产生了深远的影响。与其他语言相比,Go 是将现代应用基础架构与网络自动化学科相集成的第一选择。
- 不断发展的社区
-
随着 Cloud native 运动的兴起,Go 库的激增和对 Go 的普遍支持也呈现爆炸式增长,尤其是在过去几年中,专注于使用 Go 实现网络自动化的工具、库和培训材料激增。虽然 Python 因其广泛、成熟的网络自动化生态系统而仍是无可争议的领导者,但围绕 Go 的网络自动化社区已大幅增长,并在缩小这一差距方面取得了重大进展。
这些因素促使我们在本书中增加了这一章。我们将向你介绍 Go 及其在网络自动化中的应用。当然,我们将在后面的章节中逐一探讨这些因素。这将为您提供 Python 的潜在补充替代方案,以备需要定制解决方案时使用。
与 Python 章节一样,不可能在一章中涵盖 Go 的所有知识。即使是最入门的概念,编程语言也有理由用整本书来介绍。我们将使用一些相关示例介绍基础知识,这样在本章结束时,你就会有一个坚实的基础,但请将本章视为你旅程的起点;事实上,我们在本章末尾介绍了一些很好的下一步。在学习过程中,我们会强调 Go 的一些独特优势,以便你更好地理解它何时适合你的目的。
为什么要 Go?
随着 Python 在网络自动化领域占据主导地位,您可能会想,为什么要学习另一种编程语言?为什么特别是 Go?要回答这两个问题,我们首先应该回答一个更基本的问题:典型的网络自动化专业人员对任何编程语言有什么要求?鉴于多年来 Python 一直是我们唯一的实用选择,作为一个行业,我们并不经常需要面对这个问题。然而,如今这是一个需要考虑的重要问题;了解这些要求将有助于我们理解为什么业界如此青睐 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access