【玩转腾讯云】如何构建云端高可用架构!

作者介绍

万守兵:腾讯云行业架构师,对云上双活架构、迁移方案有比较深的了解,现主要负责腾讯云泛互行业TOP级客户的解决方案架构工作。

【玩转腾讯云】如何构建云端高可用架构!

【玩转腾讯云】如何构建云端高可用架构!

【玩转腾讯云】如何构建云端高可用架构!

 高可用挑战 

1.  高可用挑战:时间要求 

【玩转腾讯云】如何构建云端高可用架构!

2.   高可用挑战:各种不稳定的原因 

常见事故及问题归类如下

【玩转腾讯云】如何构建云端高可用架构!

 互联网通用架构和分层 

典型互联网架构分层设计如下:

【玩转腾讯云】如何构建云端高可用架构!

系统正交分解如下:

 分类

     服务治理

        目标

     技术

     架构

     监控层

外层

客户端SLA、攻防/扫描/审计  CDN合理/稳定、DNS合理/稳定流量峰值

CDN  DNSPOD/Ip直连高防

客户端监控、CDN监控、DNSPOD监控安全

接入层

异地多活、服务SLA、负载均衡、流量调度、机房切换、限流/降级

F5自动化GW  nginx(etcd+confd)

机房整体监控服务监控  (响应延时链接)

服务层

分布式架构、定时调度管理、灰度发布、自动化灾备恢复、机房双活、大数据处理、一体化数据研发

应用架构

服务状态(服务响应)  性能监控(DB监控)  后端资源监控 

语义监控 调用链分析

数据层

服务监控和性能调节、高并发 水平扩容、快速自动灾备恢复、定期归档备份

分布式数据库、分布式事务消息组件

服务&业务级监控

资源层

硬件层

灾备恢复、资源回收、日志归档备份、部署初始化

SDN无人值守自动安装、硬件生命周期平台

硬件监控、网络监控

 构建外层高可用 

1.   外层DNS高可用方案 

  • 通过Dnspod D监控,线路/机房失效快速失效;

  • 腾讯Httpdns方案,就近接入+多点容灾;

  • 埋入客户端的IP直连方案;

【玩转腾讯云】如何构建云端高可用架构!

2.   外层CDN高可用性 

  • 自建CDN 质量监控,调度系统,自动切换;

  • 腾讯CDN 本身具有高可用监控,节点快速剔除故障节点;

  • HttpDns:客户通过嵌入SDK, 不经过传统 DNS 解析方式来使用 CDN 资源;

3.   外层高防高可用 


  • 自动为业务创建防护域名;

  • 用户可以用CNAME方式使用防护域名接入高防;

  • 防护域名可配置BGP优先解析,在攻击封堵后根据来源IP智能解析到归属线路;

【玩转腾讯云】如何构建云端高可用架构!

 构建接入层高可用 

1.   接入层构建多可用多活 

  • 接入层通过DNS做解析,接入腾讯云;

  • 业务跨可用区部署,利用CLB跨可用区分发流量的特性,将流量分发到多可用区;

  • 利用云上容器服务,跨可用区部署业务,增加集群容灾;

  • 容器Master服务跨可用区灾备,出现故障秒级切换;

  • 容器etcd多台服务器跨机房容灾;

  • 云下环境做测试和备份;

  • 充分利用腾讯云CLB、容器服务、CDB等跨可用区特性,构建高可用容灾系统;

【玩转腾讯云】如何构建云端高可用架构!

2.   接入层LB高可用 

腾讯云CLB底层是基于TGW,本身具有高可用,具体如下:

1)多级容灾

跨园区容灾 ->交换机容灾

机架容灾-> TGW集群容灾

2)防攻击

流量攻击:过载保护

DDOS攻击:syn代理和LRU淘汰

3)安全性

黑名单、域名封禁

【玩转腾讯云】如何构建云端高可用架构!

 构建服务端高可用 

3.   服务层框架高可用 

【玩转腾讯云】如何构建云端高可用架构!

2.   服务层高可用思路 

  • 服务的整体概览

  • 服务无状态

  • 拆分子服务

  • 通信协议和交互接口

  • 同步/异步

  • 超时管理,自动熔断,

  • 快速切换,慢服务隔离

  • 独立扩展,快速扩容

  • 服务单元条带化

【玩转腾讯云】如何构建云端高可用架构!

 数据层高可用 

1.   CBD高可用 



故障一:数据库节点异常

  • 只读从库、灾备实例数据正常;

  • 后台隐藏实例可快速恢复业务;

  • 后续动作需要后台新建隐藏从库实例;

故障二:可用区异常

  • 主库及只读从库无法访问;

  • 手动切换灾备实例为主实例;

  • 后续动作需要通过追加故障时间后灾备实例binlog;

故障三:异常操作导致数据库受损

  • 存在RTO,短时间无法快速恢复业务;

  • 通过备份数据+binlog恢复数据;

  • 主库、只读从库及灾备库数据连续性会导致全部数据受损;

【玩转腾讯云】如何构建云端高可用架构!

2.   DB Proxy高可用 



通过DB Proxy实现:

  • 跨机房容灾切换;

  • 单机房快速HA切换;

【玩转腾讯云】如何构建云端高可用架构!

3.   对象存储高可用 



腾讯云对象存储COS提供异地备份功能,可以实现数据的异地备份和恢复。

【玩转腾讯云】如何构建云端高可用架构!

 移动端高可用 

  • 故障演练;

  • 移动端报警平台;

  • 移动端热修复;

  • 移动端 HttpDns/IP直连/长链接push推送优化;

  • 移动端监控响应时间/奔溃卡顿/启动时间/功耗/网络质量/CDN监控;

 高可用演练验收  


【玩转腾讯云】如何构建云端高可用架构!

【玩转腾讯云】如何构建云端高可用架构!

没看过瘾?这里还有

【玩转腾讯云】如何构建云端高可用架构!

【玩转腾讯云】如何构建云端高可用架构! 点击阅读原文,领取 COS 限时1元礼包!