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

2020-04-16 17:36:31 浏览数 (2)

一、高可用的挑战

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 本身具有高可用监控,节点快速剔除故障节点。
  • HttpDns:客户通过嵌入SDK, 不经过传统 DNS 解析方式来使用 CDN 资源,比如HttpDns。
  • 自建CDN 质量监控,调度系统,自动切换。

3、外层-高防高可用

  • 自动为业务创建防护域名
  • 用户可以用CNAME方式使用防护域名接入高防
  • 防护域名可配置BGP优先解析,在攻击封堵后根据来源IP智能解析到归属线路

四、构建接入层高可用

1、接入层-构建多可用区多活

2、接入层-LB高可用

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

  • 多级容灾

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

机架容灾-> TGW集群容灾

  • 防攻击

流量攻击:过载保护

DDOS攻击:syn代理和LRU淘汰

  • 安全性

黑名单、域名封禁

五、构建服务端高可用

1、服务层框架-高可用

2、服务层-高可用思路

  • 服务的整体概览
  • 服务无状态
  • 拆分子服务
  • 通信协议和交互接口
  • 同步/异步
  • 超时管理,自动熔断,
  • 快速切换,慢服务隔离
  • 独立扩展,快速扩容
  • 服务单元条带化

六、数据层高可用

1、CDB-高可用

  • 故障一:数据库节点异常

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

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

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

  • 故障二:可用区异常

主库及只读从库无法访问

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

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

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

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

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

通过备份数据 binlog恢复数据

2、DB Proxy-高可用

通过DB Proxy实现:

  • 单机房快速HA切换
  • 跨机房容灾切换

3、对象存储-高可用

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

七、移动端高可用

  • 移动端 HttpDns/IP直连/长链接push推送优化
  • 移动端监控 响应时间/奔溃卡顿/启动时间/功耗/网络质量/CDN监控
  • 移动端报警平台
  • 移动端热修复
  • 故障演练

八、高可用演练验收

0 人点赞