以双AZ容灾为例,用户业务上云后,将业务系统部署在云平台上,可将部署架构分为“网络层”、“应用层”、“中间层”、“数据库层”、“存储层” 5层,通过云平台上的云服务产品高可用/容灾复制特性来满足用户对业务连续性的需求,通过统一的容灾管理平台,来实现各层云服务产品的容灾复制关系配置、复制任务监控和容灾演练、故障切换。
业务系统的主要适配点
接入层
- 智能DNS:主备形态下如果是通过域名提供服务,建议保留统一域名,两个资源池内的主备服务对外暴露不同的IP(虚IP),因此在切换的时候需要修改DNS的域名解析(会有一些DNS缓存失效时间的问题)
应用层
- 弹性负载均衡 + 云主机/容器:应用集群优先建议无状态部署,状态数据下沉到数据持久层来实现。
- 云主机:如果应用集群有状态,可通过业务自身的同步能力工具,或者通过主机容灾服务、复制工具来实现
中间件层
- 缓存:可以通过标准的主从模式,或者引入哨兵模式来实现跨资源池的高可用和故障的自动切换。
- 中间件 MQ/Kafka:跨资源池主备部署,依赖zk做高可用。Zk(LFF形态)需要有第三机房,或者引入zk的observer角色在双机房做3+3部署,故障场景需要将Observer角色提升为LFF形态。
数据持久层
- 云数据库:优先建议跨资源池的多副本部署,这样就是在切换后,数据库的配置保持不变。如果部署成两个独立集群,集群间通过一些同步工具来是实现,那么在切换时,业务层需要适配(比如数据库的连接串的更新)等。
- 对象存储: 优先建议跨资源池集群部署,保证切换场景下的业务无感。
容灾管理:
- 容灾管理平台提供各层的统一容灾关系配置、任务监控、演练和切换控制,自身通过跨资源池主备部署,实现高可用。