为什么声明式模型对NetOps自动化至关重要?

F5生态系统 | 2018年4月30日

如果要实现全面自动化,声明式方法会是理想选择。原因如下。

谈到自动化,尤其是网络运维(NetOps)和应用服务时,我们一直在强调声明式方法。但我们还没有真正深入探讨它为何重要,又能带来哪些好处。现在就来补上这一课。

简单回顾一下,目前有两种模型可用于自动执行几乎所有对象的配置和部署。

第一种是命令式模型,即明确告诉目标系统如何执行我们想要完成的操作。如果您曾通过SSH隧道连接到某个系统,并在CLI中输入一组特定命令,那么您使用的就是命令式配置模型。

第二种(也是首选方式)是声明式配置,即告诉目标系统要做什么,而不是如何做。大多数网络自动化解决方案都采用这种模式,原因有很多,其中最主要的是,了解并集成特定环境中可能存在的数百种设备和系统,需要投入大量成本和时间。

因此,在命令式模型中,我们必须明确指定配置系统所需的每条命令(或API调用)。而在声明式模型中,通常只需指定描述预期结果的键值对,具体执行哪些命令则由其他系统处理。

轻轻松松,简单搞定。

下面来说明为什么这一点很重要。在逐步实现全面自动化时,采用声明式模型主要有四项优势。

1. 减少人为错误

我们知道,生产环境中约22%的中断事件是人为错误造成的。一些影响较大的事件已被直接追溯到简单的人为错误,这里不再赘述。在依赖API调用的命令式模型中,每次调用都可能成为潜在事故的导火索。如果没有验证变量、忘记检查错误代码,或出现其他许多可能的疏漏,就可能发生严重到影响职业生涯的事故。这显然不是好事。

声明式模型以某种模板或配置文件为基础。在使用API调用执行其中的配置之前,系统会先解析并验证该文件。虽然配置文件或模板仍有可能出错,但由于所需代码更少,出错的机会也会相应减少。通常,代码越少,犯错的机会也越少。

2. 减少技术债务

“技术债务”是我们从开发领域借用的一个形象比喻,用来提醒我们所做的选择会带来长期成本。命令式模型会从多个方面累积技术债务。首先,脚本与目标系统的API存在耦合。该API不太可能支持其他任何系统,这意味着我们需要针对每个系统分别开发脚本。不同应用的配置步骤也可能有所不同,因为并非所有应用都使用HTTP,而且并非每个基于HTTP的应用都需要完全相同的服务配置。因此,我们现在需要针对每个应用和每个系统分别构建脚本。这会产生大量脚本,也会因这一选择而累积大量技术债务。

相反,声明式方法可以使用同一套部署流程脚本和系统。虽然模板或配置可能仍需针对具体应用和系统进行定制,但只需一个文件。这样可以减少脚本的复杂性和数量,从而大幅降低技术债务。事实上,我们的选择总会带来一定的技术债务,而目标是尽可能减少这些债务。

3. 消除版本冲突

如果将配置和部署流程绑定到某个API,也就意味着绑定到该API的特定版本。互联网上有许多社区,开发者会因API变更以及由此带来的应用修改工作而愤怒抱怨。网络和应用服务也可能(而且必然)出现同样的情况。因此,如果绑定到某个API版本后发生了变化,结果可想而知:您将没完没了地更新(甚至可能重写)脚本*。

但如果采用声明式模型,您很可能无需关注API的任何变化。毕竟,您并不是通过API告诉系统如何部署服务,而只是告诉系统需要部署什么。

4. 降低领域专业知识要求

坦率地说,如果要使用网络或应用服务的API,就必须了解该系统。如果连虚拟IP和虚拟服务器之间的区别都不清楚,就已经会遇到麻烦,更不用说区分节点和成员了。基于API的命令式方法要求您充分了解目标系统,才能顺利完成配置。

采用声明式模型后,所需的目标系统专业知识更少,因此开发人员和DevOps人员更有可能使用这种方法,以自助方式为应用提供服务。当然,专家仍不可或缺,但服务使用者所需具备的专业知识有所减少,同时,置备和部署的工作也可由更广泛的相关人员共同承担。


在NetOps自动化工作中,采用声明式模型还有其他原因,但这4个原因尤其具有说服力。这是因为,它们不仅有益于NetOps和业务,也能惠及日益广泛的相关人员。这些人员需要通过自助方式访问网络和应用服务,以提升应用的速度和安全性。

分享
标签: 2018

关于作者

Lori Mac Vittie
Lori Mac Vittie杰出工程师兼首席技术布道师 | F5

Lori MacVittie是F5首席技术官办公室的杰出工程师兼首席技术布道师,在应用交付、自动化战略和基础设施领域拥有深厚的专业知识。无论是为AI智能体定义防护机制、剖析脆弱的多云架构,还是探索可扩展系统的极限,她都善于化繁为简。她在应用开发、IT架构以及网络和系统运维领域拥有30多年的行业经验。加入F5之前,她曾担任技术编辑,并因出色表现获得奖项。 MacVittie拥有计算机科学硕士学位,著述颇丰,出版作品涵盖安全、云和企业架构领域。她还热衷于桌面游戏和电子游戏,并且对奶酪有着毫不掩饰的鲜明见解。

Lori Mac Vittie 的更多博客文章

相关博客文章

F5纪念2021年世界艾滋病日
F5生态系统 | 2021/12/01

F5纪念2021年世界艾滋病日

值此世界艾滋病日,F5郑重承诺,将与员工、客户、社区和合作伙伴共同努力,消除社会对HIV感染者仍然存在的污名与偏见。

Thingbot正转变为攻击平台
F5生态系统 | 2018/11/29

Thingbot正转变为攻击平台

Lori MacVittie重点介绍了F5 Labs对2018年1月至6月全球物联网设备攻击的研究,并指出了其中令人警醒的影响。物联网设备不仅持续遭到利用,还被转变为攻击平台,这意味着攻击者可以更充分地利用这个必然增长的市场。

借助F5全新Quick Start,在AWS上快速开展业务
F5生态系统 | 2018/11/20

借助F5全新Quick Start,在AWS上快速开展业务

在AWS re:Invent开幕前,我们很高兴与大家分享F5与AWS之间全新的Quick Start集成。F5的Tom Atkins将介绍该服务如何启动、配置和运行在AWS上部署工作负载所需的计算、网络、存储及其他AWS服务。

为什么声明式模型对NetOps自动化至关重要?
F5生态系统 | 2018/04/30

为什么声明式模型对NetOps自动化至关重要?

为什么声明式模型对NetOps自动化至关重要?阅读F5博客,了解基础设施即代码如何简化网络扩展。

开源聚焦:F5基础设施即代码与多云可管理性
F5生态系统 | 2017/11/16

开源聚焦:F5基础设施即代码与多云可管理性

开源聚焦:基础设施即代码与多云。阅读博客,了解模板和Terraform如何简化F5应用服务的部署。

破解IT“无解困局”的答案:私有云
F5生态系统 | 2016/09/12

破解IT“无解困局”的答案:私有云

破解IT“无解困局”的答案:私有云。阅读F5博客,了解本地部署的敏捷性如何化解安全与速度难以兼顾的问题。