测量管理和协调


在SDN兴起的早期(事实上是非常早期),有很多关于可伸缩性的讨论。不是数据平面,而是控制(管理)平面。这次讨论的关键是支持SDN的网络设备通过OpenFlow执行“插入”的速率。也就是说,管理平面每秒/分钟可以进行多少次必要的更改以适应环境。

事实证明,这种衡量方法是有问题的,许多受人尊敬的网络专家(因为他们也是专业人士而受到尊敬)指出,对于日益动态的环境来说,每秒1000次插入的阈值太低了,而SDN在这种环境中被认为是合适的。

那是几年前,虚拟化仍然是常态。当然,SDN解决方案的可扩展性可能已经提高,但环境也是如此。我们现在正在进入这样一种环境,在这种环境中,微服务和容器开始主导应用程序体系结构,其特点是比高度虚拟化的数据中心更具活力。

在某种程度上,这是由于虚拟化和容器之间的差异,使得在几秒钟内启动一个容器成为可能,而虚拟机可能需要几分钟。因此,微服务和容器的变化率将对网络产生重大影响。

这让我们回到软件定义的策略,比如软件开发网络。在集装箱以惊人的速度弹出和关闭的环境中,根本没有办法手动跟上网络所需的变化。必须通过实施某种软件定义的策略来启用网络。这使我们需要衡量管理和协调能力。

DevOps的核心是基于测量的支柱。与MTTR(平均恢复时间)和变革准备时间等运营相关的关键绩效指标的衡量。但是,它还没有带来这样的要求,即我们需要衡量我们能够进行更改的速率——比如启动容器并将其添加到负载平衡池以实现实时可伸缩性所需的速率。软件定义的策略告诉我们这些任务——确保网络连接和路由被正确添加或调整,以及向适当的负载平衡池添加新的容器或虚拟机——应该是自动化的。“缩放”的过程应该被编排。

provisioning time highlighted两者都应该被衡量。从运营角度而言,这些是关键指标,对于确定无中断扩展需要多少“提前期”或“通知”至关重要,无论这种中断是以性能下降还是因容量不足而无法连接来衡量。这不是为了度量而度量,而是为了正确地自动化和协调用于动态扩展的流程而需要的硬操作数据。

我们需要衡量管理和协调;我们需要将“平均上市时间”作为运营指标之一。如果我们不这样做,我们就无法确定何时需要启动一个新实例来动态扩展以满足需求。如果我们不能动态缩放,我们必须手动缩放。

没人想这么做。

这意味着,最终,我们必须将网络纳入到DevOps文件夹中。无论是作为网络运营还是网络开发或软件开发网络,我们都需要开始引入网络的管理和协调能力,尤其是当它适用于这些网络时application-affine services受到应用程序环境变化的影响(如负载平衡和应用程序安全性)。