0%

腾讯云TCP3-构建腾讯云上高可用架构

三、构建腾讯云上高可用架构(15%)#

1.云上高可用概述#

1.1 构建腾讯云上高可用架构相关概念#

可用性的含义,可用性的计算方法 ☆☆
同城灾备、异地灾备,消息队列:MQ、Kafka ☆☆

1.2 面临的挑战#

高可用面临的挑战 ☆

  • 高可用面临的挑战
    • 高可用的目标
      99.99%系统可用性年不可用时间-0.876小时
      基本可用: 99%
      较高可用性: 99.9%
      高可用性: 99.99%
      极高可用性: 99.999%
    • 事故及问题归类
      • 内部
        代码问题
        配置问题
        性能问题
      • 供应商
        通道/专线抖动
        运营商故障
        机房整体故障
      • 外部威胁
        攻击
        劫持
1.3 构建高可用的架构目的#

为什么需要高可用架构? ☆☆

  • 高可用的整体规划
    • 成本曲线 反比 业务中断影响(损失)
    • 不同阶段客户推荐容灾方案
      • 初创期
        1. 数据容灾
        2. 环境容灾
        3. 安全保障
      • 成长期
        1. 数据/环境容灾
        2. 安全保障
        3. 同机房多集群
        4. 同区域多机房
      • 稳定器
        1. 数据/环境容灾
        2. 安全保障
        3. 同机房多集群
        4. 同区域多机房
        5. 跨区域多机房
      • 总体规划
        • 分层设计思路
          接入和服务分层解耦
          服务和数据分层解耦
          分层高内聚 低耦合
          分层支持灵活扩展
          分层支持冗余容灾部署
          分层支持set化部署
      • 分层解析

2.构建外层高可用架构#

2.1 外层高可用架构的设计原则#

外层网络面临的问题 ☆
外层高可用的设计思路:DNS的解析过程、出现解析问题如何解决?为什么会出现访问慢的问题?应该如何解决? ☆

  • 外层网络面临的问题

    • 外层网络
      从用户发起请求到服务接入之间的网络
    • 用户外层访问, 面临的问题
      • 域名解析异常
      • 访问速度慢
  • 外层高可用的设计思路

    • 域名解析问题的解决方法
    • 针对访问速度慢的问题
2.2 设计外层的高可用架构#

外层设计相关产品 ☆☆
云解析、HttpDNS和CDN架构 ☆☆☆

3. 构建接入层高可用架构#

3.1 接入层高可用架构的设计原则#

接入层面临的问题、接入层高可用设计思路 ☆☆

  • 接入层面临的问题

    • 接入层
      指的是提供服务的负载均衡层
    • 接入层要考虑的问题
      负载均衡冗余
      负载均衡的安全问题
  • 接入层高可用设计思路

    • 2个解决方案
3.2 设计接入层的高可用架构#

接入层设计相关产品 ☆☆
云解析与CLB构建接入层高可用架构 ☆☆☆
CLB与Anycast IP构建接入层高可用架构 ☆☆
使用Anycast IP解决CLB冗余、接入层安全架构和BGP高防架构 ☆☆

  • 基于腾讯云产品的接入层设计
    • 接入层产品清单
      CLB, Anycast CLB, 云解析, BGP高防
    • 云解析
      云解析提高CLB的冗余[pic]
    • Anycast
      使用Anycast IP提高用户接入可用性[pic]
      使用Anycast IP解决CLB冗余[pic]
    • BGP高防
      • BGP高防使用建议
        • 平滑切换线上业务到BGP高防IP
          技术维度
          业务维度
        • 源站IP暴露的解决方法
          防止出现攻击绕过高防直接攻击源站IP的情况,强烈建议参考以下方法
        • BGP高防IP+源站[pic]
        • 业务系统压力测试

4. 构建应用层高可用架构#

4.1 应用层高可用架构的设计原则#

应用层设计面临的问题 ☆
应用层高可用设计思路 ☆☆☆

  • 应用层设计面临的问题

    • 软件架构如何选择
    • 应用部署容量如何规划
    • 应用部署落地平台如何选择
    • 如何考虑应用层的容灾
    • 应用层的安全如何保障
  • 应用层高可用设计思路

    • 软件架构选择
      传统应用和云原生应用
    • 应用扩展和容量规划
      传统应用: 云主机+负载均衡+弹性伸缩, 配置伸缩策略实现资源池容量的弹性
      云原生应用可考虑微服务+容器化部署
    • 应用的容灾问题
      多可用区 多地域容灾部署
      应用set化部署
    • 安全设计
      结合应用层安全防护产品, 加固应用层防护
4.2 设计应用层高可用架构#

应用层设计相关产品 ☆☆
传统应用高可用 ☆☆
云原生应用部署、应用的容灾设计 ☆☆

  • 应用层设计相关产品

  • 传统应用高可用

    • CLB+CVM+AS
      • 架构图 [pic]
      • 应用实践
  • 云原生应用部署

    • 涉及的产品
      • 微服务平台 TSF
      • API网关
      • TKE容器服务
    • 云原生应用部署方案[pic]
  • 应用的容灾设计[pic 要重新看]

    • 单区域容灾
    • 跨地域容灾
    • 跨地域多活
      业务拆分, 单元化部署
    • 混合云部署
      云上和IDC各部署一套完整的业务系统
    • 异地多活set化部署
      Unit由多个set组成
      建议单写多读的架构
      set不一定限制在一个机房,可跨机房、跨地域部署
  • 应用安全设计

    • web应用防火墙
    • 漏洞扫描
      saas服务
    • 移动应用安全
    • 应用级智能网关

5.构建中间件层的高可用架构#

5.1 中间件层高可用架构的设计原则#

中间件层面临的问题 ☆
中间件层高可用设计思路 ☆☆☆

5.2 设计中间件层高可用架构#

中间层设计相关产品 ☆☆
CMQ实现中间层高可用架构、Ckafka实现中间层高可用架构 ☆☆

6.构建数据层高可用架构#

6.1 数据层高可用架构的设计原则#

数据层高可用面临的问题 ☆☆
数据高可用的设计思路 ☆☆☆

6.2 设计数据层高可用架构#

数据层设计相关产品 ☆☆
CBS实现数据层高可用架构、CFS实现数据层高可用架构、 COS实现数据层高可用架构、CDB实现数据库层高可用架构 ☆☆☆