1 高可用架构介绍
高可用性(HighAvailability)指的是通过尽量缩短因日常维护操作(计划)和突发的系统崩溃(非计划)所导致的停机时间,以提高系统和应用的可用性。
mPaas的专有云体系在通过集群技术、双机热备、健康检查等高可用技术,实现在部分节点故障的情况下,仍能提供继续访问应用的能力。
1.1 硬件层面高可用
由于AntStack是纯软件输出,对于部署所需的服务器资源,基于推荐的款型,可实现硬件层面的高可用,能够抵御磁盘、硬件级别的故障。对于交换机、防火墙、存储等其他数据中心硬件设备的冗余,如图1-1所示,由用户自己保证。
图1-1 硬件设备高可用示意图
1.2 应用APP集群高可用
应用App集群高可用,主要体现在:
(1)采用负载均衡集群模式,将访问分担至多个实服务,当单个容器损坏时,不影响业务正常运行;
(2)核心应用的容器,强制互斥部署在不同的物理服务器上,保证当单个物理服务器宕机时,业务无影响;
(3)故障隔离,容器本身发生故障时,负载均衡的健康检查功能将故障容器隔离;
(4)故障的快速恢复,当一台物理服务器宕机时,之上的容器能够手动地在资源空闲的服务器上重启,容器恢复后,业务流量重新分配;
(5)对于磁盘、物理服务器的宕机,或者小规模的故障,不会影响业务的正常运行。
1.3 关键数据高可用
在AntStack中,提供数据存储能力的组件配置了数据备份策略或完整性保证;当单台容器或者单台物理机发生故障后,能够保证业务数据、关键管理数据不丢失,如表1-1所示。
表1-1 关键组件高可用说明表
序号 |
应用名称 |
类型 |
用途 |
数据完整性实现 |
1 |
OceanBase |
分布式关系型数据库 |
管理数据、业务数据 |
OB集群保证 |
2 |
HBase |
表格存储 |
监控数据 |
集群多副本保证 |
3 |
HDFS |
分布式文件系统 |
HBASE、Spark |
集群多副本保证 |
4 |
etcd |
分布式数据库 |
AKE集群元数据 |
集群多副本保证 |
5 |
zookeeper |
集群管理 |
ALB元数据 |
集群多副本保证 |
1.4 业务可监控、可恢复
1. 业务可监控
从核心态到业务应用监控全覆盖,包括一下4个方面:
(1)以日志、REST接口等作为数据采集来源;
(2)提供应用、业务等各种视角的监控能力;
(3)快速发现问题、定位问题、分析问题、解决问题;
(4)为线上系统可用率提供有效保障。
2. 应用可恢复
(1)在机房掉电的场景下,应用依赖满足后,可快速恢复;
(2)关键业务数据完整性保证;
(3)核心态中枢组件,通过容器宕机迁移实现恢复。
1.5 发布可灰度、可回滚
云游支持多种发布方式,可实现版本变更过程中先发一台,发布后进行灰度引流,确认功能无误后再进行下一组发布。发布过程满足变更三板斧:可灰度、可回滚、可监控,新版本如果不符合预期可快速回滚至升级前状态。
1.6 核心应用实现高可用
1. 云游高可用实现
如图1-2所示,云游的高可用主要体现下以下3个方面:
(1)云游应用采用负载均衡集群部署;通过VIP对外提供统一服务;
(2)数据库采用MySQL,主备方式进行数据同步;
(3)当主数据库宕机时,切换至备数据库,保证业务继续;
图1-2 云游高可用示意图
2. AKE管控高可用实现
如图1-3所示,AKE的高可用主要体现下以下2个方面:
(1) 管控容器集群部署;
(2) 管理元数据通过etcd三副本保存
图1-3 AKE高可用示意图
3. OceanBase高可用实现
如图1-4所示,OceanBase的高可用主要体现下以下3个方面:
(1) 所有应用数据库数据都存放于ob数据库;
(2) OB通过三副本保证数据高可用;
(3) 当一台机器损坏时,数据0丢失,业务无感知
图1-4 OceanBase高可用示意图
4.ALB高可用实现
如图1-5所示,ALB的高可用主要体现下以下4个方面:
(1) 四层负载均衡(F5)高可用由客户F5自身保证;
(2) 所有的ALB应用集群部署;
(3) ALBAPI / Manager等管理数据分别存在zookeeper和OB中;
(4) Spanner作为7层负载均衡冗余部署;当一个Spanner宕机时,流量自动切换到另一个Spanner上。
图1-5ALB高可用示意图
4.mPaa业务组件高可用实现
如图1-6所示,mPaaS业务组件的高可用主要体现下以下6个方面:
(1)负载均衡采用集群模式,将访问分担至多个实服务,当单个容器损坏时,不影响业务正常运行;
(2)核心应用的容器,强制互斥部署在不同的物理服务器上,保证当单个物理服务器宕机时,业务无影响;
(3)故障隔离,容器本身发生故障时,负载均衡的健康检查功能将故障容器隔离;
(4)故障的快速恢复,当一台物理服务器宕机时,之上的容器能够手动地在资源空闲的服务器上重启,容器恢复后,业务流量重新分配;
(5)关键数据存储于OB、HDFS、HBASE等存储组件,确保业务数据、关键管理数据不丢失;
(6)对于磁盘、容器、单台物理服务器的宕机,不会影响业务的正常运行。
图1-6 业务高可用示意图