第 6 章 Python Python
本作品已使用人工智能进行翻译。欢迎您提供反馈和意见:translation-feedback@oreilly.com
作为一名网络工程师,现在是学习自动化和编写代码的最佳时机。 正如我们在第 1 章中指出的,网络行业正在发生根本性的变化。 事实上,从 20 世纪 90 年代末到 2010 年左右,网络在架构和操作上都没有太大变化。 在这段时间里,网络工程师无疑成百上千次地输入相同的 CLI 命令来配置网络设备并排除故障。 为何如此疯狂?
特别是围绕网络的运行,学习读写一些代码才开始有意义。 事实上,编写脚本或编写几行代码来收集网络信息或进行更改,并不是什么新鲜事。 它已经存在多年。 一些工程师已经完成了这一壮举--用自己选择的语言编程,学习使用复杂的解析和正则表达式处理原始文本,以及在脚本中查询 SNMP MIB。 如果你自己尝试过,就会知道这是可行的,但使用正则表达式和解析文本既耗时又乏味。
幸运的是,事情开始朝着正确的方向发展,网络自动化的准入门槛比以往任何时候都更容易进入。 我们不仅看到了网络供应商的进步,也看到了用于网络自动化的开源工具的进步,我们将在本书中介绍这两方面的内容。 例如,现在有了网络设备 API、供应商和社区支持的 Python 库,以及免费提供的开源工具,让您和其他所有网络工程师都能进入一个不断发展的生态系统,开始您的网络自动化之旅。 这最终意味着您需要编写的代码比过去更少,而代码更少意味着开发速度更快、错误更少。
在深入学习 Python 基础知识之前,我们要考虑一个更重要的问题,因为这个问题总是在网络工程师的对话中出现:网络工程师是否应该学习代码?
Network+ 工程师应该学习编程吗?
遗憾的是,我们并不能给你明确的答案。 显然,我们有一整章是关于 Python 的,另一章是关于 Go 的,书中还有大量示例介绍了如何使用 Python 或 Go 通过网络 API 与网络设备通信,以及如何扩展 DevOps 工具(如 Ansible 和 Terraform),因此我们绝对认为学习任何编程语言的基础知识都是有价值的。 我们还认为,随着网络和 IT 行业不断快速转型,这将成为一项更有价值的技能,而我们恰好认为 Python 是一个相当不错的首选。
备注
我们认为 Python 是网络自动化的首选,原因有以下几点。 首先,Python 是一种动态类型语言,允许您在需要的地方和需要的时候创建和使用 Python 对象(如变量和函数),这意味着在开始使用之前不需要定义它们。 这简化了入门过程。 其次,Python 还具有超强的可读性。 像if device in device_list: 这样的条件语句很常见,在该语句中,你可以很容易地解读出我们只是在检查某个设备是否在特定的设备列表中。 另一个原因是,网络供应商和开源项目正在使用 Python 构建一套很棒的库和工具。这为我们学习 Python 编程带来了更多好处。
但真正的问题是,每个网络工程师都应该知道如何读写基本脚本吗? 答案是肯定的。 现在,每个网络工程师都应该成为软件开发人员吗? 绝对不是。 许多工程师会更倾向于一门学科,也许有些网络工程师确实会转型成为开发人员,但不只是网络工程师,所有类型的工程师都不应该害怕尝试通读一些 Python 或 Ruby,甚至更高级的语言,如 C、Go 或 Rust。 通过使用 bash 脚本、Python、Ruby 和 PowerShell,系统管理员已经在使用脚本作为让他们更高效地完成工作的工具方面做得相当不错了。 ...
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