搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 平安云 > 7张图读懂平安金融云负载均衡架构

7张图读懂平安金融云负载均衡架构

平安云 2017-12-01

相比于大众云,金融云对高可用和数据安全有着更高的需求,如何在底层架构实现?

本文根据平安金融云LVX负载均衡产品的相关实践经验,总结出一套负载均衡业务的架构,和大家分享。

负载均衡应用场景


我们先来聊一下应用场景。

为了满足应用的高可用性部署,平安云为租户提供了多可用区和异地机房的多活应用部署方案。

举个栗子,某个互联网应用想将应用部署在平安云中的不同可用区和不同的异地机房区域。此时,所有应用应同时为各地的互联网客户端提供应用服务,同时相互之间形成备份关系,达到应用服务在多地多数据中心的高可用部署。

如何满足?

对于某个可用区AZ(Availability Zone),我们提供两套异构的负载均衡集群,供所有租户的云主机使用。每个集群中存在LVX集群和LVS F-NAT集群,分别为租户提供7层负载均衡和4层负载均衡的功能。

如图1所示,互联网的客户端通过互联网区的负载均衡集群进入AZ内部的云主机,而其他的访问客户端通过VPC内部的负载均衡集群进入位于AZ内部的云主机。这种负载均衡集群的双集群异构主要是为了将互联网访问的流量与内部互访的流量进行异构区,保证互联网和内部业务对负载均衡集群的性能损耗互不影响。


图1 可用区负载均衡部署


图1中位于可用区外的客户端访问总共有三大类:互联网,租户本地局域网和云内其他可用区 。而位于可用区内部的客户端访问主要来自跨VPC访问和同VPC内部访问两种。图1中展示了这几类客户端的接入方式:

  • 互联网用户的接入方式是NAT网关和DNS服务器;

  • 云内跨AZ的接入方式是DCI;

  • 同AZ跨VPC访问的接入方式是VRF Importing;

  • 同VPC的Subnet属于同一VRF,本身路由可达。

每个区域的负载均衡模块分为LVS F-NAT和LVX两类。LVSF-NAT为租户提供4层负载均衡的功能,而LVX为租户提供7层负载均衡的功能。租户可以按需申请负载均衡资源,并关联Virtual IP和Real IP Pool,完成负载均衡的逻辑映射。


接下来将重点介绍互联网区和VPC区的负载均衡访问逻辑。


互联网负载均衡


我们来了解互联网业务的访问方式。

假设存在这样一个租户,在上海和深圳分别部署了某种互联网应用,每个地域又划分了两个可用区部署相同的应用,实现同地域的应用可靠性部署。同时,每个Region存在三大运营商(CU、CT和CM)的接入点,保证互联网出口链路的可靠性。

从图2来说,Region 1和Region 2分别对应了平安云在上海和深圳的两个数据中心,每个Region中存在了两个相互隔离的可用区AZ1和AZ2。四个可用区中分别部署了四套单独的应用服务器集群(Server 1~4)。


7张图读懂平安金融云负载均衡架构

图2  互联网区负载均衡详解


从访问顺序的角度,我们将负载均衡的过程划分为4个重要步骤,分别对应图B中的序号1至4:

1

发生在互联网客户端发起DNS请求时。

根据DNS服务器的GSLB功能,完成对不同地域、不同运营商客户端的DNS应答。GSLB(Global Server Load Balance)是基于DNS服务器开发的一种根据同一域名,通过解析客户端本地DNS服务器的地域和运营商属性,并配置负载均衡策略映射到服务端不同地域和运营商的互联网出口IP的服务。 

7张图读懂平安金融云负载均衡架构

图3  GSLB功能示意图

2

发生在客户端域名解析完成后,向确认的互联网IP发起互联网请求时

客户端访问互联网IP,进入某个Region区域的互联网出口防火墙(NAT Gateway)。 根据防火墙DNAT规则,将报文的目的IP修改为VIP。同一Region不同运营商的互联网IP会被映射为相同的VIP。也就是说租户申请某个Region的负载均衡业务时,仅仅需要申请一个内部负载均衡的VIP,但是需要同时申请多个运营商的互联网IP。

3

发生在互联网访问报文通过防火墙进入到AZ Link区的网络时。

AZ Link区域的网络与多个下级AZ的网络连通。在这个区域,我们可以使用等价路由(Equal Cost Multi Path,ECMP)的方式,将流量通过负载均衡算法引入到不同的AZ区域中。这里我们可以利用BGP或者OSPF等动态路由协议的特性,从AZ区发布VIP的等价路由到AZ Link区,形成ECMP链路。

4

互网访问进入某一个特定的AZ区时,使用具体的ELB模块完成负载均衡功能。

对于一个AZ中的LVX和LVS F-NAT集群,在设计上能够保证链路上的多活。如图4所示,LVX集群的设计本身就能够提供多链路HA和租户隔离的特性。

从上至下,我们可以看到LVX具有这些特性。LVS连接交换机时,使用了路由ECMP,保证了多台LVS同时处于工作状态。Nginx连接LVS集群时,LVS使用DR转发,将流量分发给不同物理服务器上的Nginx单元模块。每个Nginx单元模块,通过反向代理的方式,将互联网的报文转发给位于VPC内部实际提供应用服务的云主机。


7张图读懂平安金融云负载均衡架构

图4  LVX集群架构


总体来说,互联网应用的整体负载均衡框架由GSLB,防火墙NAT策略,AZ Link区ECMP和LVX/LVS F-NAT产品组成。通过这一整套的负载均衡机制,我们能够为租户提供高可用的负载均衡业务功能和租户隔离的用户体验。

图5展示了三个维度的ELB故障范围。当整个Region 1不可用时, GSLB的策略调整,把客户端的域名所对应的IP指向Region 2。当Region内某个运营商链路故障时,可以调整GSLB策略,将DNS应答映射到其他同Region的互联网IP。当Region 2的AZ 1故障时,由于存在ECMP,AZ 2能够立刻接替AZ 1的工作。


7张图读懂平安金融云负载均衡架构

图5  EELB高可用性示意图


如图6所示,在每个AZ内部的LVX集群中:

如果移动运营商的链路出现故障,属于其他运营商出口VRF的LVS虚拟模块能够继续工作;

如果某个LVS服务器出现了故障,其他LVS服务器能够立刻接替工作;

如果某台Nginx服务器出现故障,其他Nginx服务器能立刻接替工作。


7张图读懂平安金融云负载均衡架构

图6  LVX高可用性示意图


得益于Linux Container的虚拟化技术,每个租户可以拥有独立的Nginx负载均衡单元,不同负载均衡服务对应的Nginx单元会被均匀的分布在不同的物理服务器上,达到高可用部署的要求。

VPC区负载均衡

在互联网区申请ELB资源时,租户是在共享的资源池中申请独占的Nginx资源。然而所有的租户会共用连接运营商的LVS模块。但是,在VPC区的负载均衡集群,每个租户拥有单独的LVS和Nginx模块,完成4层和7层的负载均衡业务部署。如图7所示,VPC区的ELB集群在物理结构上与互联网区相同。通过虚拟化技术将LVS和Nginx划分为多个虚拟单元,为每个VPC构建LVX和LVS FullNAT的虚拟单元。也就是说在虚拟层的结构上,每个租户单独拥有负载均衡模块用于完成4层和7层的负载均衡转发功能


图7  VPC区ELB集群架构


作者简介

易仁杰:平安云网络服务组开发工程师,主要研究NFV产品的构建。一枚个性鲜明的90后鲜肉,平时喜欢和朋友打桌游、玩游戏、旅行。独处的时候也能弹吉他、练歌、思考人生。来平安云半年内申请专利11篇,受理8篇,后期我们会为大家做他的技术分享连载,欢迎大家点赞和分享。




平安金融云,专业服务金融行业的云平台!




版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《7张图读懂平安金融云负载均衡架构》的版权归原作者「平安云Fincloud」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注平安云Fincloud微信公众号

平安云Fincloud微信公众号:PingAn-Cloud

平安云Fincloud

手机扫描上方二维码即可关注平安云Fincloud微信公众号

平安云Fincloud最新文章

精品公众号随机推荐