电子说
网络是云计算数据中心最重要的部分,这主要体现在:
网络的重要性:网络连接所有节点,各类服务都通过网络链接,用户通过网络远程操作。没有网络,一切都是空的。
网络的复杂性:不像一般的业务系统,要么是单服务器级别的或者集群级别的;网络系统基本上都是数据中心级别的,在整个数据中心的规模上,构建各种复杂的网络业务逻辑,整个系统复杂度非常高。
网络故障的严重性:计算服务器故障、存储服务器故障都是相对局部的故障,而网络故障则牵一发而动全身。任何一个微小的网络故障,都可能会引起整个数据中心不可用,网络故障一旦发生,必然是重大故障。
如果按照功能逻辑把网络分层,云计算数据中心网络可以分成三层:
第一层,物理网络。基础的物理承载网络,也就是我们通常所理解的Underlay底层承载网。物理网络跟用户没有直接关系,因此没有必要暴露给用户。
第二层,虚拟网络。基于基础的物理网络构建的虚拟网络,也就是我们通常理解的基于隧道的Overlay网络。虚拟网络主要用于租户隔离,典型服务如AWS的虚拟私有网络VPC;
第三层,应用网络。各种用户可见的应用级的网络服务,比如接入网关、负载均衡等,如AWS的弹性负载均衡ELB。
1 AWS网络相关服务概览
云计算快速发展,产生了很多网络相关的产品服务,如表 8.1所示,以AWS为例,介绍网络相关的产品服务。
表 1 AWS的网络和分发服务(或功能)
类别 | 服务 | 场景介绍 |
网络架构 | VPC (Virtual Private Cloud) | 虚拟私有网络,主机资源隔离,用于创建相互隔离的私有局域网。 |
ELB (Elastic Load Balancing) | 弹性负载均衡,支持用户业务应用的高可用性和高可扩展性。 | |
AWS Global Accelerator | 全球网络加速,加速网络的性能和交付,使用AWS全球网络提升全球应用程序的可用性和性能。 | |
AWS Transit Gateway | 扩展网络设计,将VPC、AWS账户和本地网络轻松连接到一个网关中,优化用户网络访问路径。 | |
网络连接 | Amazon Route 53 | 域名系统,提供可用性高、可扩展性强的云域名系统 (DNS) 服务。 |
AWS PrivateLink | 私有连接,在不同账号、不同VPC间轻松连接各种服务,不让数据暴露在公网中,从而提高与云应用程序共享的数据的安全性。 | |
AWS VPN (Virtual Private Network) | 加密的虚拟专网,可在本地网络、远程办公室、客户端设备和AWS全球网络之间建立安全的连接。 | |
AWS Direct Connect | 与 AWS 的直接连接,可以轻松建立从本地通往 AWS 的专用网络连接。与VPN的区别是,VPN通过虚拟的通道,实际上大部分时间还是在公网传输;而直接连接,则是通过AWS位于全球各地的直连站点连接到AWS数据中心网络。 | |
主机相关网络功能 | EIP(Elastic IP Addresses) | 弹性IP,专用于动态云计算的静态公网IP地址。 |
ENA(Elastic Network Adapter) | 增强型联网接口,显著提高PPS性能,降低网络抖动,并减少延迟。 | |
EFA(Elastic Fabric Adapter) | EFA 使用定制的操作系统旁路技术来增强实例间通信的性能,主要应用于HPC场景。EFA 支持行业标准的 libfabric API。 | |
应用程序交付 | Amazon CloudFront | 内容分发(CDN)服务。 |
AWS App Mesh | 监控微服务,对服务的通信方式进行了标准化,可提供端到端的可见性,确保应用程序的高可用性。 | |
AWS Cloud Map | 服务发现,可以为应用程序资源自定义名称,并且维护不断变化的资源更新位置,提高应用程序的可用性,因为Web 服务始终会发现资源的最新位置。 | |
Amazon API Gateway | 构建、部署和管理 API,一种完全托管的服务,帮助开发人员轻松创建、发布、维护、监控和保护任意规模的 API。 |
2 虚拟私有网络服务VPC
借助VPC,用户可以在AWS云中预置一个逻辑隔离的私有网,在自定义的这个虚拟网络中启动AWS资源。用户可以完全掌控自己的虚拟网络环境,包括选择自己的IP地址范围、创建子网以及配置路由表和网络网关。用户VPC中可以使用IPv4和IPv6,因此能够轻松安全地访问资源和应用程序。
用户可以轻松自定义VPC的网络配置。例如,可以为Web服务器创建一个能访问Internet的公有子网。此外,还可以将后端系统(如数据库或应用程序服务器)安置在无Internet访问的私有子网中。可以使用安全组和网络访问控制列表等多种安全层,对各个子网中的EC2实例的访问进行控制。
VPC的功能总结如下:
在AWS的可扩展基础设施中创建VPC,并可以选择任何的私有IP地址范围;
通过添加辅助IP范围来扩展VPC;
将VPC的私有IP地址范围分割成一个或多个公有或私有子网,以便在VPC中运行应用程序和服务;
使用网络控制列表控制进出各个子网的入站和出站访问;
在S3中存储数据并设置权限,以便仅可从VPC内部访问这些数据;
为VPC中的实例分配多个IP地址并连接多个弹性网络接口;
将一个或多个弹性IP地址连接到VPC中的某个实例,以便直接从Internet访问该实例;
将VPC与其他VPC相连接,可以跨VPC访问其他VPC中的资源;
通过VPC终端节点建立与AWS服务的私有连接,无需使用Internet网关、NAT或防火墙代理;
建立到私有服务或由AWS PrivateLink提供支持的SaaS解决方案的私有连接;
使用AWS站点到站点VPN桥接VPC和现场IT基础设施;
在EC2-Classic平台中启用EC2实例,以使用私有IP地址与VPC中的实例进行通信;
将VPC安全组与EC2-Classic中的实例进行关联;
使用VPC Flow Logs来记录有关进出VPC的网络接口的网络流量的信息;
支持VPC中的IPv4和IPv6;
使用VPC流量镜像,为EC2实例捕获和镜像网络流量;
使用网络和安全设备(包括第三方产品)来阻止或分析入口和出口流量。
3 弹性负载均衡ELB
ELB在多个目标(如EC2实例、容器、IP地址和Lambda函数)之间自动分配传入的应用程序流量。它可以在单个可用区内处理不断变化的应用程序流量负载,也可以跨多个可用区处理此类负载。
ELB提供三种负载均衡器,它们均能实现高可用性、自动扩展和可靠的安全性,因此能让用户的应用程序获得容错能力:
ALB(Application Load Balancer,应用负载均衡器):ALB最适合HTTP和HTTPS流量的负载均衡,面向包括微服务和容器在内的现代应用程序架构,提供高网络层级请求的路由功能。ALB运行于单独的请求级别(第7层),可根据请求的内容将流量路由至VPC内的不同目标。
NLB(Network Load Balancer, 网络负载均衡器):若要对需要极高性能的传输控制协议(TCP)、用户数据报协议(UDP)和传输层安全性(TLS)协议流量进行负载均衡,最适合使用网络负载均衡器。网络负载均衡器运行于连接层(第4层),可将流量路由至VPC内的不同目标,每秒能够处理数百万请求,同时能保持超低延迟。网络负载均衡器还针对处理突发和不稳定的流量模式进行了优化。
CLB(Classic Load Balancer,经典负载均衡器):CLB同时运行于请求级别和连接级别,可在多个EC2实例之间提供基本的负载均衡。CLB适用于在EC2-Classic网络内构建的应用程序。
ELB的主要功能:
高可用性:ELB在单个可用区或多个可用区内的多个目标(EC2实例、容器和IP地址)之间自动分配流量。
运行状况检查:ELB可以检测无法正常运行的目标、停止向它们发送流量,然后将负载分散到剩余的正常运行的目标上。
安全性功能:使用VPC创建和管理与负载均衡器关联的安全组,以提供更多网络和安全选项。还可以创建内部(非面向Internet的)负载均衡器。
TLS终止:ELB提供集成化证书管理和SSL/TLS解密,使用户可以灵活地集中管理负载均衡器的SSL设置,并从用户自己的应用程序上卸载CPU密集型工作。
第4层或第7层负载均衡:用户可以对HTTP/HTTPS应用程序执行负载均衡以实现特定于第7层的功能,或者对依赖于TCP和UDP协议的应用程序使用严格的第4层负载均衡。
运行监控:ELB提供与Amazon CloudWatch指标的集成和请求跟踪,以便实时监控应用程序的性能。
可以根据应用程序按需选择合适的负载均衡器。如果需要灵活管理应用程序,推荐使用ALB;如果应用程序需要实现极致性能和静态IP,推荐使用NLB。如果现有应用程序构建于EC2-Classic网络内,则应使用CLB。
4 云计算网络的特点
网络是数据中心最核心的功能,对网络来说,最关键的两个性能指标是带宽和延迟。云计算是多租户场景,多租户域间隔离和跨域访问,以及动态的网络变化也是数据中心网络非常重要的特点。
更大的带宽
前面我们讲了大数据的迅猛发展,数据量越来越大,网络传输的带宽也在快速升级。叠加数据中心东西向流量,英特尔估计,数据中心内部的流量每年以25%的速度增长。当前数据中心大规模商用的主流的数据带宽是25Gbps,预计未来两三年内,将逐步过渡到100Gbps。
带宽逐步增大,意味着许多现有的网络数据处理架构,会逐渐的无法满足如此高性能的处理要求。例如,传统的基于内核TCP/IP的网络处理逐渐被DPDK所取代,并且现在已经有完全硬件卸载的网络处理设备批量部署。
更低的延迟
Akami的一项研究表明,页面加载速度的延迟一秒会导致转化率平均下降7%,页面浏览量下降11%,用户满意度下降16% 。在金融业中,即使是一毫秒的延迟也会对高速交易算法的性能产生巨大影响。金融业对延迟的敏感性的一个案例是,某公司投资了4亿多美元,只是为了将纽约和伦敦之间的传输时间缩短5毫秒。
在线事务处理(OLTP)的工作负载主要由南北流量控制,客户端请求,然后服务器响应,通过相对简单的三层网络结构就能得到很好的服务。但是,随着社交媒体和移动应用程序的爆炸性增长,流量模式已从南北(在客户端和数据中心之间)转变为东西向(数据中心内的流量)。据估计,单个在线查询可以在数据中心内生成数百甚至数千个请求,然后才能响应来自客户端的请求。在这种环境下,即使数千个访问同时执行,需要花费较长响应时间的访问相对少见,但其仍然最终决定了服务的总体响应时间。
域间隔离和跨域访问
VPC是云服务商在数据中心内为用户提供的一个逻辑隔离的区域,用户可以在自己定义的的虚拟网络中创建云服务资源。底层的虚拟网络系统保证了不同用户网络区域的隔离。
但是,不同的私有网络区域并不是完全封闭的,有些场景是需要跨域访问的。比如,一些非实例型“独立服务”提供的服务,当用户从自己的VPC访问另外某个VPC中服务的时候,通常有两种做法,一种是使用公网IP通过公网访问,还有一种方法就是通过提供一些特定的满足安全机制情况下的跨域访问服务来走数据中心内部网络路径去访问,以此来提升访问效率,这种就是数据中心内部的跨域访问。再比如,数据中心按照区域和可用区进行划分,用户在不同的跨区域的数据中心多地容灾、或者特定的服务和数据通信,则需要跨数据中心访问。
通过VPC把不同用户或者系统的资源隔离,是为了安全的考虑;跨域访问,则是在保证安全基础上的性能和功能的考虑。
动态的网络变化
单个数据中心服务器规模可以达到数万台,如此大规模服务器集群需要数千台网络设备连接在一起。这种大规模的数据中心网络管理难度大,网络运行故障定位难,运维成本非常高。大规模数据中心动态网络变化主要体现在:
云计算是多租户模式,不同的租户业务之间是要完全隔离的,数据中心通过虚拟网络来实现不同租户网络域的隔离。租户以及租户的资源一直处在一个动态的变化中,这加剧了网络变化的频次和难度。
数据中心数万台服务器,不可避免会发生故障,而要保证用户服务的高可用,用户业务在不同的物理服务器之间迁移也会影响网络的变化。
并且,互联网上层业务日新月异的变化,也会影响网络的变化。
审核编辑:刘清
全部0条评论
快来发表一下你的评论吧 !