01、为什么需要一个新的网络架构-part1

曾几何时,那里已经拥有了一切;如果没有发生其他事情,那么就没有什么可以讲的了。
——查尔斯·德·林特

一、千七百怪的问题

问题:新型应用程序特征是什么?

应用程序架构演进
应用程序从单体架构演变成高度分布式的微服务架构,其演进历程分为四部分:

  • 单体主导的时代:应用通常作为一个整体运行在大型机上,因此此类型应用对网络需求最小。单体中应用网络互联和协议都是专有,对于网络的带宽基本忽略不计,主要进行的是设备本身的内部的计算。
  • 工作站和个人电脑普及时代:客户端-服务器(c/s)架构的兴起。随着局域网(LAN)网络开始变得更加复杂,应用程序的交换数据不局限于文本、图片,增加了音频和视频。同时随着技术发展,局域网技术和协议数量大大增加,以太网、令牌环网和FDDI等多种局域网技术,当然最后以太网和他的TCP/IP最终胜出,同时也是开放标准和开源代码取得的胜利,此时主要发展点再LAN技术,保证多机之间互联互通,应用程序也局限在LAN内部互访。
  • internet普及和TCP/IP协议栈的流行:应用跳出企业的围墙,并提供Web服务开始设计为可在全球范围内访问。此时客户端可以从任何地方连接到服务器,对于服务器需要处理的规模大大增加。针对这种规模下,大数企业单体服务器实例根本无法处理所有客户端的负载,同时也会带来单点故障问题。当时流行解决方案是,运行多个服务器并再前端放置负载均衡器。随着后续计算能力不断提高,大多数应用程序无法充分利用CPU性能,服务器虚拟化技术也被开发处理,服务器本身也被分为多个单元:web前端,应用程序,数据库,存储等。此时还有一个操作系统得竞争,windows,UNIX,Linux,当时企业主要应用程序开发为windows。
  • 搜索引擎之间战争开始,向云转变:Web技术得成功使得现在信息增多,Google后起之秀从中崛起,面对大规模得搜索,基于集群得应用程序架构尤为重要,此背景下服务器从客户端——服务器通信模式转变为服务器——服务器得通信模式,Linux也成为新应用程序得主要操作系统,应用同时也被拆分成多个服务,带来了“微服务",直接导致容器得兴起,比虚拟机更加轻量级。此时Linux发展和大规模应用发展也导致云计算得兴起,云解决了企业得构建网络、服务器生命周期管理的等多种烦恼。随着应用程序的演进,网络势必也会跟随着演进,从最初网络速率的几兆到现在800G的发行,网络也将彻底变革~

问题:虚拟化带来得什么好处?

产生背景:应用程序无法发挥CPU全部处理能力,服务器计算能力过剩,此时诞生服务器虚拟化以最大成都利用CPU得计算能力。

  • 不需要多个物理计算节点,就可运行多个服务器,充分利用CPU得多CPU多核。
  • 充分利用利旧设备,不需大费周章重写应用程序使其具有多线程和并发能力。
  • 针对利旧应用程序和新版本应用程序,再一台host上也可以不同得VM分别运行。

问题:什么是“接入-汇聚-核心”的的网络架构?

终端(计算节点)连接到接入交换机,汇聚交换机又依次连接到核心交换机(核心网络),从而将接入网络连接到世界其他地方。汇聚交换机之间流量通过桥接进行二层转发,南向(向下)提供桥接,北向(向上)提供路由。
接入—汇聚—核心网络架构
此时的网络架构严重依赖于桥接而不是使用路由主要有以下几个方面:

  • 硬件数据转发:网络设备从具有多个网络接口(NIC)高性能工作站转移到仅仅支持数据包转发的专用硬件上,当集成电路(ASIC)处理器被开发出来后,数据转发芯片出现允许更多的接口连接到单个设备,同时拥有比以前更低的延迟,但是再当时的场景下硬件交换机技术仅支持“桥接”。
  • 企业专用网络协议:再客户端——服务器时代,IP只是一种网络协议,除开IP协议还有很多同行竞争的协议IPX、VINES等,不过有趣点就是所有这些网络协议桥接的层面是相同的,区别都是在桥接层之上,这就导致了“接入—汇聚—核心"网络架构,可以使得不同网络协议构建一个相同的网络,而不是分开部署。
  • 零配置路由的承诺:要想设备路由功能功能开始工作,往往带来大量复杂的协议配置。网络设备的用户界面(UI/CLI)也被高度定制,而不是一个通用的shell。对于使用者当然希望简化复杂的完了过配置工作,具有自学习能力的网桥成为当时企业提供的最佳答案:一个原因是自身判断不了可以提交给上层协议裁决,另一个原因它简化了网络配置,因此自学习透明网桥是实现零配置的关键。

问题:为什么"接入-汇聚-核心"发展的这些久,而且没有被淘汰?

遇到问题当然是解决问题,而不是解决提出问题的人。感觉网络协议中也是如此,既然"接入-汇聚-核心"存在一些问题,那么试图一个一个去解决:

  • 广播风暴和生成树协议的影响:再一个二层网络中的环路那可是很恐怖,会直接导致一个小型网络所有可用带宽被耗尽,为此Radia Perlman发明了一种破环控制协议:STP,从而构建一棵五环树,打破环路防止广播风暴。但是再早期的STP中存在链路利用率不高的问题。
  • 泛洪带来的负担:解决了环路问题,但是再二层桥接域中通常也会伴随一个BUM帧的广播,此时如若该数据包不是转发给改设备,但是该设备还是会通过泛洪接收到,此时就需要进行ARP解析,不是自身丢弃。因此,在一个有100个主机的网络中,每个主机至少会额外收到100次ARP解析(99台主机+网关的查询),虚拟局域网(VLAN)就可以解决泛洪过多的问题,对广播域进行收缩,划分成多个逻辑网络,多个逻辑网络再二层网络上互不干扰。
  • VLAN生成树来增加带宽:STP存在链路利用率不高的问题,通过vlan与stp的结合,通过MSTP中不同的实例,来实现不同实例走不同链路,实现链路的综合利用。
  • IP层的冗余设计:再IP层有一个单点故障的问题,通常服务器的网关都在一台汇聚交换机上,此时如果汇聚交换机故障时,直接导致不通子网之间的不能进行通信。考虑到再一个广播域中,广播包泛洪任意设备都能收到(两台汇聚),那此时只需要保证汇聚交换机的ARP的网管地址和MAC地址保持不变了。此时另外一种协议也发明:VRRP,VRRP允许两台路由器同时监控对方的运行状态,确保任意时间只有一台路由器来相应查询网关ip地址的ARP包。
  • 降低失效风险,在服软件升级:双汇聚的情况下,任意一台故障都会影响可用带宽,此时应尽量避免该情况发生,因此诞生出主控板、备控板的形式,两张控制板工作在主—备模式下,防止设备发生故障。

二、云原生数据中心网络杂谈

谈到云原生,立马想起微服务、serverless,容器、devops等名词相关联,但是这些只是云原生的实现方法,所到底云原生是一个概念性的东西,具体到落实到的载体可能是容器,也可能是微服务,但是随着时间的改变,相信载体可能也会改变。
云原生得最终目的是构建健壮、敏捷、可扩展得应用程序,使企业能够和这个瞬息万变得世界保持同步。
云原生这个词强调将云原生理念应用于创建网络上时,即使你创建的网络规模达不到Amazon或Google的网络规模,再创建网络时你也需要考虑以下的一些特征:价格合理、高性能、易于管理、敏捷且可靠。云原生网络则意味着以健壮、灵活、可扩展和高效得操作方式来构建符合应用程序和业务需求的网络。

本文参考:《云原生数据中心网络》——Dinesh G. Dutt著,赵华冰 范彬 丁亮译

  • 18
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值