Go语言在网络自动化领域的应用与优势
1. 网络自动化新趋势:Operator与Go语言
在网络自动化领域,Operator的使用正逐渐成为一种趋势。Operator将自定义资源定义(CRD)以Kubernetes原生API的形式展现出来,并包含管理CRD实例端到端生命周期的逻辑。这将操作责任转移到了Operator提供者身上,推动了意图驱动的自动化发展。随着网络设备供应商采用这一概念,网络自动化将更接近应用生命周期管理。在这一趋势下,Go语言成为了被广泛推崇的编程语言之一。
有一个值得关注的项目是Nephio,它是Linux基金会最新的网络计划,旨在利用Kubernetes API扩展来提供网络控制器。
2. 行业专家的Go语言实践经验
2.1 John Doak的Go语言转型之路
John Doak最初在LucasArts从事网络工作,他通过自动化完成了诸如重置网络MAC安全参数、移动端口到新VLAN、使用路由映射自动平衡入站BGP流量等任务。后来他加入Google,主要负责自动化供应商骨干网络Backend Backbone (B2)。他编写了第一个为各种路由器编程的自主服务,并与团队构建了网络的工作流编排系统。在这个过程中,他将编程语言从Python转向了Go,这一转变带来了显著的好处,如减少了错误、将工作流数量增加了10倍,并且可以在不破坏整体架构的情况下重构代码。之后,他又花了几年时间将所有NetOps从Python迁移到Go,并构建了日常配置网络的自动化工具。现在,他在Microsoft工作,主要编写Go SDK并管理一个软件团队,负责部署软件以验证数据、提供门控控制、审计数据源等工作。