容器下的两地三中心建设

1. 关于两地三中心

如上图,两地三中心的架构,是为了提高系统的容错、容灾的能力。当一个数据中心不可用时,能够将关键业务的流量切换到其他数据中心,可以抵御城市级的自然灾害。两地指的是,地理上不同的两座城市,而三中心指的是:

  • 生产中心
  • 同城灾备中心
  • 异地灾备中心
  • 机房间距离越短,容灾能力越差,但光纤会越短,延时会很低
  • 公有云的 ELB 会卸载 TLS 证书,并提供一定的安全防护功能。
  • 在机房中,使用虚拟机部署有一个 LB 服务,对流量进行切分,一部分流量被切分到了另外一个机房。两个机房的 LB 使用的是同一个存储后端。
  • 两个机房的服务,分别响应不同用户的请求
  • 3.1 为什么是异地机房承载流量

    • 镜像仓库

    相较于国外使用 PostgreSQL,国内使用 MySQL 特别多。MHA(Master High Availability)是一套成熟的 MySQL 解决方案。在 MySQL 发生故障时,MHA 能在 30 秒以内完成数据库的故障切换操作,同时最大程度的保障数据一致性。

    • Redis 多机房集群模式
    Redis 集群通过分片来实现数据共享,并提供复制和故障转移。相较于哨兵模式只有一个 master,集群模式有多个 master,具有高的可用性。

    5. 总结

    本篇主要是简单总结了一下两地三中心的架构。所写即所见的抽象,并不能完全尽述细节。主要内容如下:
    • 两地三中心的要点,是要构建一个环形的互联互通机房网络
    • 有状态应用采用虚拟机部署,无状态应用采用 Kubernetes 部署
    • 访问流量,先通过 DNS 切分到机房,在机房中再通过 LB 切分到各个集群