自动化和SDN似乎正齐头并进,但在软件定义网络实现自动化之前,我们仍然需要解决一些挑战。
很少有技术像SDN有这么多优势,即使是服务器虚拟化也有很大的缺点,即需要配置额外存储和物理/虚拟控制器来容纳所有这些虚拟机。
SDN能够给数据环境带来很多优势。SDN能够帮助简化流量以及网络基础设施,同时,它能够实现广泛的可扩展性和按需配置,让用户最终能够获得他们需要的资源来完成其任务。并且,它提供了***的组件来实现完全虚拟化的数据环境,其中计算、存储和网络能够相互关联,并且根据需求来扩展。
SDN自动化:OpenFlow 只是***步
不过总是会有问题,SDN的问题在于,只是因为你从数据平面分离了控制平面,并不意味着你能够立即获得软件定义网络的所有神奇属性。事实上,在关键网络设备部署基本SDN协议(例如OpenFLow)只是漫长的过渡的***步,并且对于真正的SDN架构,业界并没有达成共识。
SDN的自动化方面就是一个很好的例子。简单的事实是,无论你部署的是OpenFlow还是其他方法,基本的协议只会提供基本的抽象化。你仍然需要部署实际的自动化堆栈来实现自动化配置、实时负载均衡和按需资源分配等。
“对于SDN,我们的重点在于分离控制和转发数据平面,当然这样做有很多优势,”Nuage Networks公司***执行官Sunil Khandekar表示,“但这并不是SDN的全部。事实上,SDN是关于自动化、抽象、控制和可视性。对于应用程序开发人员和网络管理员而已,重要的不是知道他们是使用OpenFlow还是SNMP,而是他们在做什么来帮助自动化数据中心,以确保私有云[注]和AWS一样灵活、可响应和可编程化。”
SDN自动化需要什么?它能做什么以及它不能做什么?
但当我们决定我们想要的不只是软件定义网络,而是自动化的软件定义网络时,这意味着什么呢?如果你计划推动自动化到应用程序层(7层网络),现在的7层网络OSI网络模型需要不止一个解决方案。2层网络和3层网络功能(可能还有一些4层网络功能)可以由OpenFlow或者其替代品来处理。此外,你还将需要一个策略引擎,位于数据路径外来监管传输和会话管理,而且,它还需要直接与SDN控制器协调,从而不会给网络制造故障问题。ONF和其他组织都在积极努力扩展OpenFlow功能到4层和7层网络,但目前还没有实现。
这种完全自动化的SDN环境将会移除人类控制,允许应用程序本身来定义它们理想的网络参数,然后指示自动化堆栈来提供。当然,这会让很多网络管理员头痛,他们将会面对无尽的资源冲突、政策纠纷和严重的停机时间。
总之,不要指望你的自动化SDN环境在设置好后就可以自己运行。
“自动化并没有涉及责任的概念,”F5网络公司***技术传道者Lori MacVittie表示,“如果你问别人是否希望自动化系统来改变企业防火墙,答案肯定是否定的。***,自动化并不是关于处理一切,而是关于更高效的流程。”
换句话说,在配置过程中消除所有手动步骤可能是没有必要的,但移除95%的手动操作是可行的,只要***有一位人类操作员来检查所有过程即可。
MacVittie还声称,自动化网络环境中的关键因素并不是控制,而是可视性。让网络架构部署在抽象和软件基础上可以给我们提供***的能力,来分析数据流和网络模式。这让管理员不仅可以监管网络负载和情况,而且可以对现有模型准确地作出变更计划,并预测这种变更对整个数据堆栈带来的影响。
“SDN[注]的部分目的在于运营方面,”她表示,“但关键部分是能够在给定时间点查看网络状态。在了解网络状态后,你就可以开始自动化过程,因为你现在知道网络的状况,并且可以更容易地改变路线和进行其他更改。但仍然需要规则来管理这一切。”
但在实际意义上,这与现在物理网络中存在的自动化有什么不同呢?可以肯定的是,SDN提供了更优雅的方式来实现自动化,但现在的脚本和内嵌式命令能够很好地重新配置数据通路。
SDN自动化的特别之处在于
网络解决方案开发商Overture Networks公司***技术官Prayson Pate表示,关键的区别在于SDN让你可以为未来进行自动化,而不是为现在。
“传统自动化是关于构建一个服务,然后自动执行它,”他表示,“如果你考虑SDN中的抽象化层,你可以构建自动化到API,然后使用它作为基础来开发新服务。你不在需要基于现有服务来定义API,而是创建一个通用工具箱来创建新服务。”
这类似于现在的智能手机开发人员使用的方法,广泛的独立开发人员使用开放API来构建新的应用程序,让我们可以获取从愤怒的小鸟到Twitter等应用程序。这还让我们无需对网络基础设施和管理系统做出根本性的改变,而推出新的服务。
最终,SDN可以减少网络管理员的很多枯燥无味的工作。不同的SDN可能会有不同的自动化水平,但最终的结果都是实现更具适应性和响应性的网络环境,以更好地适应21世纪环境的动态工作负载。
但这个旅程才刚刚开始,我们还没有完全清楚所面临的挑战。很有可能的是,理想的自动化抽象网络将会是一个难以实现的目标。