Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >应对运营商网络故障高可用架构设计

应对运营商网络故障高可用架构设计

原创
作者头像
AIOPS
发布于 2021-09-13 06:32:42
发布于 2021-09-13 06:32:42
1.7K10
代码可运行
举报
文章被收录于专栏:高可用高可用
运行总次数:0
代码可运行

背景描述

腾讯云上部分客户,基于腾讯云云产品能力,在同地域不同可用区,快速构建了业务级别的同城双活架构(如下图)。具备了单产品/单链路的高可用能力,同时也具备同城单可用区异常时的容灾的能力。

下面是某客户的架构图,绿色背景部分,由于强依赖与公网通信,在以下两种场景下,相应线路的用户,将全部不能访问该客户的APP;该客户的业务程序,也不能访问它以来的公网接口(比如支付接口),对业务造成极大影响:

  1. 运营商的城域网故障,但该运营商与其他运营商间连通。
  2. 运营商与腾讯云单线路(如电信线路)故障。

问题分析

从上面架构图可以看出,clb、业务层、数据层间通信,都是通过内网的,这部分不受公网影响。

用户访问接入层公网CLB的入向流量以及业务服务通过NAT网关访问公网资源的出向流量,这两个环节就受网络连通质量影响。

所以,只要在故障发生时,我们能快速恢复上面提到的入向流量、出向流量,即可有效避免这两个故障场景。

本文主要讨论出向流量受损时的应对方法。

解决方案

在云下一般的解决方案是,改造业务支持异地容灾模式或两地三中心模式。这种方案,有以下几个问题:

  1. 业务改造成本巨大
  2. 运维、运营体系有大的改动
  3. 切换成本、时间消耗巨大

在云上,基于腾讯云的云联网(实现不同地域间VPC内网互通)能力,就可以极速、低成本解决这个问题。

出向流量

使用内网CLB+Nginx(部署在有公网IP的CVM上面)在异地构建正向代理集群。为了对业务程序零侵入,我们选择的是四层透明代理。

故障发生时,将需要访问的公网域名,进行内网解析劫持,劫持到异地CLB内网地址。即可实现内网服务出向流量异地容灾

最终方案的架构图如下:

云联网介绍参考:https://cloud.tencent.com/document/product/877/18675

故障时切换动作

  1. 通过听云和云拨测,监控入口CLB、NAT网关连通质量,发现质量异常时,触发下面动作
  2. 对于上海本地受损用户,通过dnspod解析,将受损域名调度到其它地域的CLB;该CLB通过云联网回源上海业务提供服务。见上图绿色线条
  3. 对于业务服务访问公网资源的情况,改内网dns解析,走正向代理集群。见上图红色线条

注意事项

出入口收敛

此方案的前置是,业务要进行改造,并实现出口、入口的收敛(见第一个架构图)。同时,业务服务访问核心公网域名,建议采用备案制,做好正向代理侧内网dns解析的预案。

IP选型

建议正向代理集群的EIP,选择与主地域的NAT网关EIP类型不一样。即主地域EIP为BGP IP,则灾备IP选择三网IP,来实现异构容灾。

假如两边的EIP类型选择为一样的,在腾讯云侧IP链路故障场景下,上述方案失效。

访问延迟

如选用三网IP,部分访问链路质量会受影响。见下面绿色背景部分说明:

延迟说明:

  1. 图中的"50ms内"非承诺值,是在国内广州到北京(距离最远)场景下,测试值。具体数值以你的客户经理反馈为准
  2. 如对延迟敏感,可以考虑上海/南京两个地域,延迟会下降不少

灾备组件管理

在上面描述的两种场景下,nginx正向代理使用的dns server也有可能受影响。所以dns建议配置为和nginx的公网IP选型一致的DNS。

假如nginx的公网IP选择的是电信IP而不是腾讯云bgp IP,则nginx配置文件中的resolver指令,可以选择为114.114.114.114。

由于代理服务配置简单,并且变更的机会很少,所以这里的管理成本较低。

具体实施案例

测试资源分布

实例名称

用途

地域/可用区

ID

IP

云联网

多VPC互通

——

ccn-j622dwcj

——

VPC

业务可用区

上海

vpc-hbeixq6k

10.100.0.0/16

VPC

灾备可用区

广州

vpc-0xoknyzt

10.11.0.0/22

CLB

正向代理集群CLB

广州内网CLB

lb-mpv2j1ym

10.11.0.17

CVM

正向代理

广州三区

ins-4ufdkjk6

10.11.0.4

构建云联网

说明:CLB跨地域绑定CVM,需要CLB和CVM在同一个云联网。

1、创建云联网

2、创建后视图

构建正向代理集群

说明:这里为了简化各个业务服务的配置,选择nginx构建四层透明代理,兼容https请求

1、登陆广州三区正向代理CVM 10.11.0.4,并安装配置nginx,然后启动nginx

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@VM-0-4-centos nginx]# rpm -q nginx
nginx-1.20.1-1.el7.ngx.x86_64
[root@VM-0-4-centos nginx]# cat /etc/nginx/nginx.conf
user  nginx;
worker_processes  auto;
.......
.......
stream {
    log_format proxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';

    access_log  /var/log/nginx/443.log proxy;
    open_log_file_cache off;
    resolver 114.114.114.114;
    server {
        listen 443;
        ssl_preread on;
        proxy_connect_timeout 5s;
        proxy_pass $ssl_preread_server_name:$server_port;

    }
}
[root@VM-0-4-centos nginx]# netstat -tunlp | grep 443
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      10751/nginx: master

2、将上述CVM加入广州正向代理集群CLB 10.11.0.17(注意是内网CLB)

3、在上海CVM 10.100.4.17访问地址,结果如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@VM-4-17-tlinux ~]# cat /etc/hosts
127.0.0.1 VM-4-17-tlinux VM-4-17-tlinux
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4

::1 VM-4-17-tlinux VM-4-17-tlinux
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

[root@VM-4-17-tlinux ~]# curl "https://zhidao.baidu.com/daily/view?id=239227" > /tmp/nat.html
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 65969    0 65969    0     0   141k      0 --:--:-- --:--:-- --:--:--  141k

4、在上海CVM 10.100.4.17,配置域名zhidao.baidu.com解析为正向代理集群CLB IP,获取结果如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@VM-4-17-tlinux ~]# cat /etc/hosts
127.0.0.1 VM-4-17-tlinux VM-4-17-tlinux
127.0.0.1 localhost.localdomain localhost
127.0.0.1 localhost4.localdomain4 localhost4

::1 VM-4-17-tlinux VM-4-17-tlinux
::1 localhost.localdomain localhost
::1 localhost6.localdomain6 localhost6

10.11.0.17 zhidao.baidu.com
[root@VM-4-17-tlinux ~]# curl "https://zhidao.baidu.com/daily/view?id=239227" > /tmp/proxy.html
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 65912    0 65912    0     0  83569      0 --:--:-- --:--:-- --:--:-- 83538

从3、4步结果来看,通过NAT和通过正向代理集群,访问相同的URL,结果是一样的。正向代理集群能力得到验证

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
1 条评论
热度
最新
tql
tql
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
腾讯云企业上云架构设计全攻略:从应用到性能的深度解析
上云已成为企业数字化转型的必由之路,而腾讯云凭借其丰富的产品矩阵和成熟的技术实践,为企业提供了全面的上云解决方案。本文将基于腾讯云产品体系,从应用上云、云上可扩展性、云上可用性、云上性能四个维度,深入剖析企业上云的架构设计方法论,帮助企业构建高效、稳定、弹性的云上架构。
徐关山
2025/07/03
1670
腾讯网关TGW架构演进之路
TGW全称Tencent Gateway,是一套实现多网统一接入,支持自动负载均衡的系统, 是公司有10+年历史的网关,因此TGW也被称为公司公网的桥头堡。它对外连接了各大运营商并支撑公有云上EIP、CLB等产品功能,对内提供了公网网络的接入功能,如为游戏、微信等业务提供公网接入服务。
腾讯技术工程官方号
2023/12/28
1.8K0
腾讯网关TGW架构演进之路
腾讯云高可用网络的修炼之道
当他睡眼惺忪、手拿红牛、嘴刁香烟迈着沉重的步伐从某网络核心机房走出来的时候,除了看门大爷简短问候之外,也只有刚刚过去的这个黑夜才真正懂得刚刚发生了什么,在外人眼里,这个夜晚再正常不过,和往常一样,刷刷微博、看看抖音,逛逛购物网站,即便是前一晚上有某些人觉得打开购物网站的页面有点卡慢,他们也可能不会放在心上,然而正是因为这样一个不一样的网络体验,网络工程师们已经是废寝忘食,鏖战了整整一夜,来修复引发这个网络卡慢的bug,在外人眼里一觉醒来,看似波澜不惊,但有时实则是暗流涌动;
abelbai
2020/10/31
12.5K2
腾讯云高可用网络的修炼之道
全面理解云上网络
作者:ronaldoliu,腾讯 IEG 后台开发工程师 公司一直在推动业务上云,同时越来越多的项目也要开始出海,对云的依赖会越来越多。但是云并不像它宣传的那么简单易用,尤其是云上网络,是大家理解云的一大阻碍。本文比较全面地梳理了云上网络的各种概念以及简要的原理,希望能够帮助大家建立一个知识索引,以备不时之需。由于本人不是云的专家,因此文章中有不对的地方也欢迎指正。 私有网络 VPC VPC 全称 Virtual Private Cloud,翻译成私有网络其实不太准确,但是它确实就是对网络资源的一种抽象。我
腾讯技术工程官方号
2022/06/20
12.5K1
全面理解云上网络
容灾系列(三)——云网络容灾建设
网络属于基础设施部分,网络容灾建设作为一个数据中心验收重要指标。试想一个数据中心的网络链路存在单点,就如一个城市道路都是单行道,一旦出现交通事故,小则导致道路拥堵,大则导致整个城市交通瘫痪。IDC时代,业务对网络容灾参与较少,主要依赖数据中心网络容灾建设程度;当到了云的时代,云服务商将底层网络能力产品化后,云上客户更多参与网络容灾建设,提升业务稳定性。本文从云网络概述,云网络容灾复杂度以及典型案例来介绍云网络容灾建设。
开元
2021/08/09
5.1K0
容灾系列(三)——云网络容灾建设
极光商城服务架构设计
我们先来看看这张图,首先我们可以思考一下,这个架构中,哪些地方可以做负载均衡,来承载更高的 QPS 呢?
Bess Croft
2021/07/23
9230
极光商城服务架构设计
腾讯云虚拟网络架构揭秘
腾讯云开发者社区
2017/12/12
9.7K0
玩转tke的混合网络模式
tke上腾讯云有提供2中网络模式,分别是Global Router(下面我们简称GR)和vpc-cni,这2种网络模式的优劣,如何选型可以参考https://cloud.tencent.com/document/product/457/44966,那么什么是tke的混合网络模式呢,首先我们看看tke的网络模式有哪几种。
聂伟星
2021/02/05
1.9K0
如何设计高可用的云业务架构?
容错(fault tolerance)指的是, 单个组件发生故障时,业务还能继续运行。
binwenli
2019/12/13
2.6K1
如何设计高可用的云业务架构?
【腾讯云负载均衡CLB】跨地域绑定2.0(新版)IDC-IP最佳实践!
负载均衡(CLB)支持通过云联网,跨地域绑定云服务器,允许客户选取多个后端云服务器的地域,跨 VPC、跨地域绑定后端云服务器,(支持IDC线下IP)。 目前该功能处于内测阶段,如果您需要体验该功能,境内跨地域绑定请通过 内测申请,境外跨地域绑定请进行 商务申请。 特别说明: 跨地域互联绑定云服务器暂不支持传统型负载均衡 该功能仅标准账户类型支持。若您无法确定账户类型,请参见 判断账户类型。 跨地域绑定2.0和混合云部署,不支持 安全组默认放通,请在后端服务器上放通 Client IP 和服务端口。 跨地域互
TCS-F
2021/11/01
3.6K0
【腾讯云负载均衡CLB】跨地域绑定2.0(新版)IDC-IP最佳实践!
企业云上网络服务规划全面指南:基于腾讯云产品的架构设计与实践
在数字化转型浪潮中,企业上云已成为提升业务敏捷性和竞争力的关键举措。然而,云上网络服务的规划与设计直接关系到企业业务的安全性、可用性和扩展性。本文将基于腾讯云产品体系,从网络架构设计原则、核心产品选型、安全防护策略、性能优化方法到运维管理实践,为企业提供一套完整的云上网络服务规划方案。通过深入分析腾讯云的网络基础设施、安全加速能力以及混合云解决方案,帮助企业构建高性能、高可用的云网络环境,同时实现成本优化与合规管理,为业务创新提供坚实的网络基础。
徐关山
2025/06/27
1370
网络产品使用场景及各种坑规避
子区:类似于广州一区、广州二区这种,一个地域含有多个子区,对应于aws就是zone;
用户7316624
2020/07/17
6.6K0
网络产品使用场景及各种坑规避
容灾系列(七)——混合云公网出口容灾建设
企业系统架构的形态为混合云模式,即IDC和云平台共同承载线上业务流量,来保证业务高可用。墨菲定律告诉我们,如果事情有变坏的可能,不管这种可能性有多小,它总会发生。如果IDC公网出口异常,IDC内业务要访问第三方服务,如何实现高可用呢?本文结合云平台公网能力,从网络平台角度来分析容灾建设可行性。
开元
2021/12/29
3.4K0
容灾系列(七)——混合云公网出口容灾建设
腾讯云公网负载均衡技术实现详解
朱彬峰
2017/04/23
23.7K4
腾讯云公网负载均衡技术实现详解
腾讯混合云网络设计白皮书
从1999年,公认的云计算先驱-Saleforce.com公司成立,到2006年,Amazon发布了名声大噪的EC2(Elastic Compute Cloud),首次面向公众提供基础架构的云服务产品-IaaS,中间经历了七年的时间。
abelbai
2023/04/26
4.4K1
腾讯混合云网络设计白皮书
架构设计 7-高可用架构设计之异地多活
导读:《架构设计》系列为极客时间李运华老师《从0开始学架构》课程笔记。本文为第七部分,主要介绍异地多活,异地多活缩短了时延,提高可用性,但是带来复杂度和成本无疑是巨大的,不是一般公司可以承受的,只有在对可用性要求特别高的业务场景才建议使用。
aneutron
2022/08/19
8100
腾讯云高可用和容灾解决方案
实现业务连续性的技术手段通常包括高可用性和灾备恢复两种,所以本文讲述的是在腾讯云上实现业务连续性的解决方案。
聊high云
2018/03/13
12.3K0
腾讯云高可用和容灾解决方案
从0开始使用腾讯云搭建全球热备站群(评论区免费抽奖送500JD卡)
1. 选择实例规格根据业务需求,选择合适的实例规格,比如计算优化型或者高IO型的云服务器:
Paulette
2023/08/15
6225
容器服务 TKE 上服务暴露的几种方式
作者刘飞鸿,腾讯游戏高级工程师,热衷于开源、云计算相关技术。目前主要负责腾讯游戏后台架构设计和运维工作。 预备知识 1. K8S 上 Service 类型 ClusterIP 通过集群的内部 IP 暴露服务,选择该值,服务只能够在集群内部可以访问,这也是默认的 ServiceType。 NodePort 通过每个 Node 上的 IP 和静态端口(NodePort)暴露服务。NodePort 服务会路由到 ClusterIP 服务,这个 ClusterIP 服务会自动创建。通过请求:,可以从集群的外部访问
腾讯云原生
2020/09/14
2.1K0
公有云产品NAT&EIP最佳实践指南
NAT 网关(NAT Gateway 简称NAT)是一种支持 IP 地址转换服务,提供 SNAT 和 DNAT 能力,为私有网络(VPC)内的资源提供安全、高性能的 Internet 访问服务。适用于云上主动访问公网及对外提供公务服务能力等场景。
张兴龙-leoxzhang
2021/05/27
5.5K0
推荐阅读
相关推荐
腾讯云企业上云架构设计全攻略:从应用到性能的深度解析
更多 >
交个朋友
加入HAI高性能应用服务器交流群
探索HAI应用新境界 共享实践心得
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档