导读 | 目前国内的网络运维还处于初级阶段,工做人员天天就像救火同样,每天疲于奔命。运维人员只能埋头查找系统运行的日志,耗时耗力,老眼昏花不说,有时候忙了半天还一无所得,做为运维工程师的你,有木有遇到过相似苦逼的经历? |
目前国内的网络运维还处于初级阶段,工做人员天天就像救火同样,每天疲于奔命。“什么破网络怎么又断了”,“我去,服务器宕机啊”,“这个网速慢的跟乌龟爬的同样”,这些埋怨声天天都在运维人员耳边回荡。运维人员只能埋头查找系统运行的日志,耗时耗力,老眼昏花不说,有时候忙了半天还一无所得,做为运维工程师的你,有木有遇到过相似苦逼的经历?html
传统的网络运维天天都是针对不一样的厂商设备敲不一样的命令行,从 Cisco、Juniper、到华为、华三,变化的只是换一种命令show / display 、no/undo。网络管理分散,网络和云管平台、安全、IT/业务系统互相独立,须要分别维护,效率低;网络结构,配置、拓扑、链路状态的不可视化,运维人员只能依赖经验和记忆,变动调整网络,这为网络留下了大量隐患;管理模式单一,基于单设备或单机架构管理,错漏多、排障难等等。当网络出现问题时,公司的各个大小部门都在埋怨运维部门,但是运维人员也很无辜,天天面对繁杂的工做不说,最后出了问题也只能“打碎牙齿和着血往肚子里面咽”,成了名符其实的“背锅侠”。前端
运维部门天天都要制定不一样的规章制度,较大规模的公司会有本身的开发人员对开源软件和开源产品作二次开发。在传统的网络中,随着企业业务上涨,该公司的网络运维部门规模也会跟着扩大。一个典型的网络运维部门,开始团队只有十几人,当四五年后,业务系统变得复杂,网络设备涉及的种类愈来愈多,运维人员也愈来愈多,基本翻了两倍。他们天天都须要7*24小时值班,哪怕是已经下班回家的工做人员也是手机不离身。处理旧的故障时会有故障模板。当遇到新的故障时,除了要辛辛苦苦找方法解决,最后还要再写新的故障模板。因而,运维人员的故障模板库愈来愈来越长,愈来愈复杂。然只能叹息“吾心甚累!”linux
网络在发生什么样的变化?咱们只能看到网络的变化,才能看到网络运维须要对应作什么变化。ios
从1974年TCP/IP协议的发布,到今天的SDN,网络技术一直在发展。在这期间产生了快速以太网、MPLS、SDN技术、Openflow 1.0以及后续的版本、Open Daylight的发布等,促进了网络的发展。程序员
20世纪60年代,不少大学和研究机构都在致力于新的通讯技术,其中有一家美国国防部最为突出,当时为实现迂回的通讯传输方式,分组交换方式便应运而生了。到20世纪60年代下半叶,已有大量的人员投入分组交换和分组通讯的研究中。后来为给互联计算机中提供可靠的通讯,到1982年全球性的组织提出了TCP/IP协规范,1990年左右不管是局域网仍是广域网,都开始倾向TCP/IP协议。web
互联网投入商用是从1995年开始,当时互联网服务供应商数目剧增,1996年IPv6规范出炉,载入RFC。编程
1995年开始作快速以太网标准,1997年IETF成立MPLS工做组。2005年中国出现了电信级以太网概念,同年,全球骨干网络基础建设大规模兴起。后端
2006年了SDN 诞生,从诞生至今,在中国商用落地的项目并很少。2009年的时候,Openflow1.0 正式发布,在全球掀起了一阵风潮,你们开始意识到网络要改变了。2011年开始 ONF 的成立又掀起另外一股浪潮。2012年谷歌B4全面运行,2013年 OpenDaylight 发布,2014年 ONOS 发布。各行各业的玩家开始进入SDN领域。安全
SDN是Software Defined Network的缩写,也就是软件定义网络。SDN是一种网络架构,将网络的控制平面与转发平面分离,并经过开放和可编程接口直接对控制平面进行编程。SDN的核心理念就是但愿经过应用程序来控制转发行为,彻底经过软件来定义整个网络。服务器
应用层包括各类不一样的业务和应用,负责各类网络资源的编排;
控制层也就是SDN的控制软件,负责处理各类数据转发资源,维护网络拓扑、状态信息,进行网络全局管理;
基础设施层包含了各类网络设备,负责数据的处理、转发和状态收集。
SDN是对现有网络架构从新构建的技术。传统网络架构是由交换器、路由器等网络基础设施定义的网络流量的传输,就像城市道路上的车流同样,在没有GPS导航前,每一个十字路口如何转向,基本是司机根据当前看到的状况走自认为最短最好的路径,但高峰时段每每塞成一锅粥。而SDN是从全城动态交通情况,根据每辆车的需求(如时间最短、费用最省、不走高速等)来安排调度每辆车如何到达目的地,从全局视角调度,也保证了每辆车的最优线路。
SDN技术因其架构的开放性和灵活部署及编程能力,成为下一代网络核心技术的首选。不管是Google对于其DC(数据中心)系统完成的SDN改造,仍是IT巨头微软和阿里巴巴分享的SDN云服务经验,无一例外都为此技术的应用描绘了美好的前景。基于SDN的网络虚拟化,可以将业务的逻辑网络拓扑与物理网络拓扑解耦,极大提高业务交付速度,简化网络运维,同时可以知足运营商、政企对于下降网络成本、提高业务创新速度的诉求。
传统网络由具备集成控制和数据转发平面的设备组成,所以每一个盒子都须要独立配置和管理。即便对网络进行简单更改也可能须要数周甚至数月才能完成,由于必须对每台设备进行更改。但随着物联网(IoT),云计算和移动性的兴起,SDN架构中控制和数据平面的分离使控制可以从设备中抽象出来并集中化,以便网络管理员能够集中控制管理底层复杂基础设施。从理论上讲,全部网络节点只须要转发或数据平面来推送数据包。SDN给运维带来的优点具体以下:
因为网络管理员再也不须要从一个设备到另外一个设备来更改网络配置,所以他们能够更有效地进行必要的更改。不只能够经过集中控制有效地控制网络配置,还能够自动化许多配置。
SDN方法的最大好处之一是能够经过单个设备控制全部网络组件。物理和虚拟设备均可以经过单个API进行控制,使得网络管理员的生活更加轻松。
SDN为网络带来的灵活性容许管理员“跳过”SNMP所施加的限制并尝试网络配置,而网络也不会受到影响。
虚拟化,云计算和移动设备为信息安全带来了重大挑战。SDN控制器提供单点控制,其中信息安全策略和规则能够在整个组织中分发。此外,SDN控制器还提供了一个附加点,能够放置安全策略来解决特定的软件和应用程序漏洞。
SDN经过为IT人员提供网络活动的实时可见性,帮助他们应对安全事件。您还能够对网络进行编程,以自动响应某些类型的事件,从而减轻人为依赖。例如,假设有一台笔记本电脑检测到有人正在发送恶意软件或攻击另外一个系统。SDN容许您对网络进行编程,以根据设备地址或应用程序等属性有选择地阻止特定流量。
总体提升组织网络的可见性是软件定义网络的最大好处之一。首先,集中控制能够识别网络安全性,性能和挑战。全部这些均可以在不干扰网络活动的状况下进行分析。经过找出带宽或安全挑战的源头,能够在网络中断以前防止中断和停机。
此外,这种集中化的灵活性容许包含更多选项,由于SDN容许程序员编写公共接口并管理多个设备,而无需了解网络上每一个设备的复杂功能。
在传统网络中,肯定数据如何传播的网络控制平面位于硬件中。在SDN基础设施中,控制平面是独立于网络硬件操做的软件功能。这种网络和数据控制平面的逻辑分离使SDN可以支持高级应用和服务,包括大数据分析,同时跟上不断增加的网络服务需求。
SDN程序内置的灵活性和冗余能够消除在部署网络期间可能发生的人为错误。此外,SDN支持大多数物理和虚拟网络设备的虚拟化,容许您在网络的一个组件上执行升级或替换,而无需使整个系统脱机。在发生停机时,SDN支持对配置进行快照,从而能够快速地从升级致使的中断中恢复。
网络的将来将愈来愈依赖于软件,SDN在应对传统网络方法所面临的许多挑战方面迈出了一大步。IT经过提升可见性和安全性,同时简化和自动化操做,将网络运营带到现代领域。
在传统网络运维中,运维规章制度定了那么多,运维人员能作到的其实也就那么多,针对不一样厂商的硬件设备敲不一样的命令行,出现问题查查日志,写写故障报告。SDN网络的主要特色是集群化、采虚拟的软件网络数据流,经过图形化的方式简易呈现,方便业务上线,以及后期内容的维护。那么SDN这么牛,难道就不须要运维工具了吗,答案固然是否认的!
在 SDN 系统里,有独立的中央控制器和上层应用层,转发层只是做为最底层的数据转发,业务编排在控制器作,控制器是纯软件系统,这套系统能够实现对外API对接,这时候 DevOps 就派上用场了。
DevOps促进开发人员,运营团队和基础架构专业人员之间的沟通和协做,以实现统一和自动化的IT开发,实施和管理。同时,SDN容许工程师将软件控制应用于网络元素,集中管理和配置大量虚拟和物理基础架构。
DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协做与整合。它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合做的文化、运动或惯例。透过自动化“软件交付”和“架构变动”的流程,来使得构建、测试、发布软件可以更加地快捷、频繁和可靠。它的出现使软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运营工做必须紧密合做。
DevOps利用小型applet(或微服务)中应用程序的组件化,这些applet 能够分布在一系列数据中心资源(即公共云或私有云)中。容器(例如,Docker)正在成为快速引入新微服务流行方式。
微服务和DevOps应用程序须要快速配置计算和存储网络资源,使其可以快速运行,根据须要进行扩展,以高可靠性执行并保证服务的安全性。网络须要管理工具来知足开发和自动化的需求——减小停机时间和处理时的复杂性,同时又不须要发送Opex的数据。。
网络负责为DevOps应用程序快速配置适当的资源,并在保护和管理这些快速迁移的应用程序方面发挥关键做用。然而,微服务的敏捷性和快速变化的要求挑战了传统网络的能力。应用程序的分解意味着手动网络的移动部件太多 - 所以网络自动化相当重要。使用DevOps预先测试网络资源的能力对于减小应用程序部署时间很是重要(例如,返回修复网络问题)。基本理想:开发人员没必要担忧网络资源,包括IP地址或防火墙规则。
软件定义的网络优化了开发和自动化的网络,使部署复杂应用程序的IT组织可以快速提供网络资源和服务(包括安全策略)。SDN支持对网络进行集中管理,并将(手动)配置的挑战从人员转移到技术上,下降运营成本。
基于SDN的网络能够自动检测流量变化,并根据应用类型,服务质量和安全规则等参数选择经过网络获取的路径数据。软件控制平面管理和隐藏网络复杂性,可以使10,000个交换机看起来像一个。SDN能够指示网络提供与其相关应用程序一致的服务,并支持快速部署大量新应用程序和微服务(例如,容器)。
SDN提供自动化网络流程的能力,以快速为DevOps应用程序提供网络/安全资源。它能够经过将(手动)配置的挑战从人员转移到技术来下降运营成本。许多超大规模的云提供商 - 包括谷歌,苹果,Facebook和微软 - 已经部署了SDN技术,以帮助自动化其网络的配置和管理。IT领导者应考虑部署SDN以知足其DevOps团队和相关应用程序不断变化的需求。
再谈SDN 运维工做,SDN有那么多优势,那么运维工做会不会很轻松呢?SDN运维工做主要包含两个方面,一个是平常运维、二是工程项目。平常运维工做和传统的网络运维相似,值班监控,一二线故障解决,以及和各部门沟通。
重点是跨部门沟通,传统的网络运维由于不少设备和功能都是相互捆绑的,相关的功能函数并不对外开放,只有设备供应商本身清楚,因此运维经常是一个封闭的部门,和开发并不会有太多的交集。可是进入SDN的时代之后,运维会涉及到不少部门,例如测试、研发等。这时运维已再也不是封闭的,须要从一个新的角度去看待这个岗位,须要提早与开发部门、测试部门的网络工程师作互动,这一点和DevOps的要求也是很符合的,即为了按时交付软件产品和服务,开发和运营工做必须紧密合做。
SDN运维用到的工具和传统网络运维相似,主要有 Cacti、Smokeping、Nagios、Zabbix。可是如今更加讲究开源,开源更能促进SDN和网络技术的发展,运维工程师能够从中学到更多关于网络的知识,对于网络会拥有更多的自主管理权,工程师还能够在开源的软件上根据本身需求作二次开发,较传统的封闭式运维大大减小网络运维成本和提升运维效率。
运维包括告警监控、变动、排障三个阶段。在介绍告警以前谈一下运维人员须要关心的SLO和SLI,其次会简要分析监控,分析,变动和排障。
在传统的网络运维中,网络工程师们都关注SLA,但做为运维的人都会关注SLO和SLI。咱们须要找到服务质量的指标是什么,根据指标制定目标。SLI是通过仔细定义的测量指标,它根据不一样系统特色肯定要测量什么,SLI的肯定是一个很是复杂的过程。SLI要回答要测量的指标是什么,测量时系统状态怎么样,如何汇总处理测量的指标,测量指标可否描述服务质量,测量指标的可信度。主要关注性能、可用性、质量、内部指标和因素人这几个方面。SLO(服务等级目标)指定了服务所提供功能的一种指望状态。SLO里面应该包含全部可以描述服务应该提供什么样功能的信息。服务提供者用它来指定系统的预期状态;开发人员编写代码来实现;客户依赖于SLO进行商业判断。SLO里没有提到,若是目标达不到会怎么样。网络时延、丢包率以及端到端均可以做为衡量的指标,咱们根据这个指标制定SLO。
SLA是一个涉及双方的合约,双方必须都要赞成并遵照这个合约。当须要对外提供服务时,SLA是很是重要的一个服务质量信号,须要产品和法务部门的同时介入。
SDN能更多的进行白盒监控,即经过对系统内部的性能指标进行监控了解系统的运行状态。从南向接口看,SDN只须要监控少数几种协议,监控相对简单,而面对业务变动时更是能够随着API变动而变动。主要复杂度集中在控制平面和业务编排,监控业主要集中在控制平面健壮性,用户业务情况以及控制转发的一致性等方面。在大型网络里因底层链路故障致使的大量路径计算和从新优化须要控制及时,反应要快。面向最终用户的web接口又会须要对各类请求和配置变动作出实时响应和分析。
运维系统中监控告警设计,一般从最底层的采集开始,自上而下设计,其次是存储、功能模块开发、上层告警通道、用户侧。从采集的方式上来讲要根据网络架构来选择是采用集中式的,仍是分散式的。若是网络中的转发节点较多,那么在这种状况下就没法采用集中式。须要根据本身的业务分布点,制定不一样区域性的分布采集,包括存储。部署中央存储和分布式存储,分布采集后实时同步到中央存储,同时须要在本地存储后作备份。
功能模块方面经过在底层采集原始数据,根据原有系统的规则,从监控告警到告警通道,作一个中间层,这网络管理人员能够根据本身网络状况作的自定义的规则。
拿到原始数据后,如何将数据更好的展示出来,将有用的信息实时同步。SDN中实时告警不像传统网络只在底层转发,如今它能够对业务系统和网元进行实时监控(操做系统的稳定性)。有了告警信息之后,对它进行分类,而后才能作接下来的告警分析。
日志统计分析,如今大可能是公司都使用ELK来分析。该软件能够根据本身的业务作不一样的开发。
日志包括整个SDN系统。从上层的控制系统,中层操做系统、存储、业务编排,底层转发网元,最后底层传输。这些在传统的网络中,运维人员是不会关心的,只会关心网络设备。
流量统计分析,如今网管系统和运维人员关注设备流量、端口流量,SDN 须要关注整条链路端口,更重要的是业务流量,SDN 最大的特色是可以跟业务系统作到关联,可以经过运维系统查看全部业务相关的流量信息。
在传统的网络中,因为时间还有业务对网络不一样的需求后,很难有统一的配置模板。各类临时的配置在不一样的设备上安家。如今的网络维护人员不敢删除上一个运维人员的设定。天长日久,人,设备、需求的变换会致使配置和实际情况脱节。SDN则基本摆脱了设备配置问题。基础架构数据经过自发现和初始定义能够在GUI上实现。业务数据经过GUI和API实现,软件升级时,控制平面的前端、后端、业务编排、底层控制器各组件既能够分开升级也能够统一升级,对转发也没有明显的影响。
SDN排障更多的是与Devops结合,经过软件化手段解决。一个好的故障处理系统可以自愈和关联分析。当出现多个警告时,如何让这些警告自动关联,而后生成一个真正一个有用的。故障自愈就是在关联之后,故障不须要人为的干预就能够自愈。
基于SDN技术的将来电信网络架构的演进对运维流程产生了深入的影响,电信技术与IT技术的融合对参与系统的运维团队也提出了技能方面的新要求。
对于SDN的运维人员除了要知道传统的运维技能和运维工具之外,还要了解SDN运维体系目前从SDN系统来说从最底层的资源,网络设备、转发网元、设备、服务器。采集部分主要涵盖 SNMP 的采集,对传统设备Netconf命令下发,对新设备 Openflow 的协议,对CLI的管理。
中间的存储是独立分开的,中间有日志、配置库、知识库,在存储部分独立分开。功能方面包括监控告警和数据采集,数据分析和统计,流程管理和项目管理,有很大一部分是资源管理,资源管理包括文档配置,这部分主要基于CMDB,功能很是强大,如何结合SDN系统用起来,要根据本身网络底层和控制器开发作制定。
SDN如今越被大多数公司采用,那对于企业来讲如何培养出一个合适的SDN运维小能手呢?通常公司会选择培训现有的员工,由于他们以为培训现有员工比寻找和招聘新员工更具经济效益。投资现有员工须要积极主动的自上而下战略,提供大量培训机会。其次从我的的角度来讲网络专业人士应该把握好本身的将来和职业生涯。并非每一个网工都须要成为程序员。相反,SDN须要更普遍的网络概念和基础知识。要理解软件系统是如何工做的,但并不意味着你必须编写代码,可须要了解整个生态系统是如何运做的,以及事情是在哪里完成的。除了这些基础知识,网络专业人员还应利用任何学习的机会,建议网络专业人士在制定计划后须要坚持下去。仔细规划并专一于本身的轨迹,不要被外界状况所影响。
本文转自:https://www.linuxprobe.com/sdn-network.html