华为云用户手册

  • RES08-02 依赖松耦合 系统内组件之间直接访问时,会产生紧耦合关系一个组件的状态变化会对其他组件产生直接影响,从而会导致所有组件的可用性均下降。而采用松耦合架构时,各个组件之间的依赖关系非常弱,它们可以独立地进行修改和扩展,而不影响其他组件;系统更加灵活,易于维护和升级,并且稳定性和可靠性也更强。 风险等级 中 关键策略 组件之间通过消息队列、消息缓存、负载均衡器等交互(即松耦合关系),可一定程度上屏蔽组件的状态变化,防止对其他组件造成影响 相关云服务和工具 弹性负载均衡服务 ELB 分布式缓存服务 D CS 分布式消息服务Kafka版 分布式消息服务RabbitMQ版 分布式消息服务RocketMQ版 事件网格 EG 父主题: RES08 依赖减少与降级
  • RES08-01 减少强依赖项 系统内组件之间强依赖时,一个组件故障会对其他组件造成直接影响,影响系统可用性。 风险等级 中 关键策略 可以通过以下技术将强依赖项转换为非强依赖项: 提高关键依赖项的冗余级别,降低该关键组件不可用的可能性。 与依赖项的通信采用异步消息并支持超时重试,或发布/订阅消息功能将请求与响应分离,以便依赖项从短时故障中恢复。 依赖项长时间无法访问时,应用程序应能继续执行其核心功能,以便将局部故障对整体系统功能的影响减到最小。如所依赖的数据丢失时,应用程序仍能运行,但可以提供稍微陈旧的数据、替代数据,甚至没有数据,应用仍处于可预测和可恢复的状态。 避免启动依赖及循环依赖。若应用系统由于某些原因导致重启时,若依赖于其他依赖项启动或加载关键配置数据,可能会导致应用系统长时间停在启动状态而无法响应外部消息。针对这种情况,应用系统应该先使用缺省配置启动,再检查依赖项的状态或加载最新配置数据,以恢复正常运行。 父主题: RES08 依赖减少与降级
  • RES04-01 定义应用系统的容灾目标RPO与RTO 在进行容灾设计前,需要根据应用系统的重要性,明确其容灾目标,通常以RPO和RTO指标来定义: RPO:允许的数据丢失量,与数据的周期性复制周期或连续性复制延时相关。 RTO:允许的业务恢复时长,即业务中断时长,与灾备端业务的部署与切换方式相关。 风险等级 高 关键策略 不同的业务系统重要性不一样,针对应用系统内的各种业务,需要明确其重要性及对应的RPO/RTO指标要求。比如对于核心业务,通常需要保障业务的连续性,允许业务中断的时间会比较少,从而需要保障故障场景下的业务快速恢复,可采用双活/多活容灾;对于重要业务,允许一定的业务中断时间,可采用主备容灾;对于一般业务,允许中断的业务时间可达到天级,则可采用远程备份;对于一些不重要的业务,其业务中断对外部客户没有影响,则不需要进行容灾。 父主题: RES04 跨Region/跨云容灾
  • RES05-01 网络连接高可用 应用系统对外提供服务时,需要确保对外网络连接的高可用,避免单个网络连接中断而导致业务不可用。 风险等级 高 关键策略 网络链路冗余:网络连接需要支持多路径,以实现高可用能力,以避免在一条网络路径中断的情况下,业务能切换到其他路径继续通信。 网络链路快速倒换:需要定期检查网络链路的连通性,但检测到失败时需要尽快切换到正常路径。 公有云组网场景可通过多EIP 弹性IP及DNS 域名 解析实现网络连接的高可用;对可用性要求较高的场景,需要支持智能DNS功能,能对EIP进行异常监控和自动切换;此外DNS自身也需要冗余容错,避免由于DNS故障而导致域名解析失败,业务中断。 混合云组网场景链路冗余与倒换方案: 双DC专线冗余:用户数据中心与华为云VPC之间采用两条DC专线互通;其中两条物理专线接入同区域的两个华为云专线接入点,并通过BGP路由协议接入同一个VPC,用户可设置虚拟接口的优先级以决定业务的主备链路。具体的方案参见“用户通过双专线双接入点BGP协议访问VPC”。 双VPN冗余:用户数据中心与华为云VPC之间采用两条VPN连接保证可靠性;当其中一条VPN链接故障时,系统可以切换到另一条VPN连接,保证网络不中断。两条VPN连接可以是双活或主备部署。具体的方案参见“通过VPN实现云上云下网络互通(双活模式)”与“通过VPN实现云上云下网络互通(主备模式)”。 DC专线/VPN主备:用户数据中心与华为云VPC之间同时部署DC专线和VPN两条网络链路,互为主备,并通过企业路由器,可以实现DC和VPN主备链路的自动切换,不需要手工切换双联路,不仅避免业务受损,同时降低维护成本。具体的方案参见“通过企业路由器构建DC/VPN双联路主备混合云组网”。 相关云服务和工具 云专线 DC 虚拟专用网络 VPN 父主题: RES05 网络高可用
  • RES02-01 识别和备份应用中所有需要备份的关键数据 不同数据的重要性不一样,针对应用系统内的所有数据,需要明确其重要性及对应的RPO/RTO指标要求。比如对于重要数据,通常允许数据丢失的时间会比较少,从而需要更频繁的备份;对于一般的数据,允许数据丢失的时间比较长,可以使用较低的备份频率;对于一些不重要的数据,其数据丢失对业务没有影响,则不需要进行备份。 风险等级 高 关键策略 识别应用系统中的所有数据。数据可以存储在多种资源中,如ECS/BMS中的卷、RDS/DDS等数据库、SFS文件系统、OBS对象存储等。 根据重要性对数据进行分类。应用系统内的不同数据具有不同的重要程度,对备份的要求也不同;如对一些重要数据,RPO要求接近0,需要实时备份;而对另外一些数据,重要性不高,可以容忍数据丢失,可以不做备份;此外还存在一些比较重要的数据,数据丢失的容忍程度各有不同,需要设计不同的备份策略。 针对需要备份的数据设计备份方案以满足其RPO/RTO指标要求。 父主题: RES02 备份
  • RES07-01 定义关键指标与阈值并监控 对资源进行监控时,需要先定义资源的关键指标以及对应的阈值,以便快速有效的发现业务表现和系统状态,以便在异常状态下尽早干预恢复,或定位改进系统缺陷。 风险等级 中 关键策略 关键指标需要与系统内工作负载的关键性能指标相关,并能确定为系统性能下降的早期警告信号,如系统处理的API数量及成功率,相比CPU利用率、内存利用率等基础指标,能更真实的指示系统性能问题。 从可用性保证出发,结合有效性和简化,建议应用系统至少从业务状态、服务状态、资源状态三个层面进行监控。根据业务规模,可以使用 CES 服务(侧重在I层服务)或 AOM / APM 服务(侧重在P层业务),也可以借助Prometheus、Zabbix、Zipkin等部件自行搭建,使用Grafana等部件进行界面展示和时序对齐。 1、业务监控 以下4个黄金指标,是针对大量分布式监控的经验总结,可以作为业务监控的参考,包括: 延迟:注意需要区分请求成功的延迟和请求失败的延迟。 流量:对系统业务负荷的监控。 错误率:注意区分显示失败(如HTTP 500错误)和隐式失败(如HTTP 200中包含了错误内容)。 饱和度:侧重在对系统中最为受限的瓶颈资源的监控。 对于基于Java的应用系统,华为云用户可使用APM服务实现基于调用链的业务延迟和错误率监控。函数服务FunctionGraph、 微服务引擎CSE 提供了流量、延迟和错误率监控能力。基于API网关暴露接口的应用,可使用APIG服务提供的流量、延迟和错误率监控能力。如果云服务现有能力不能满足系统要求,用户也可以自行埋点或基于Zipkin开源框架实现调用链跟踪、延迟和流量监控。 2、服务监控 由于服务实例的冗余配置和应用系统的容错保护,业务指标正常并不意味着服务实例状态一定正常。例如,在配置了ELB的虚拟机集群中,ELB会主动隔离异常节点,虽然业务会在正常节点上分担,但应用系统实际已损失了部分处理容量。因此,云服务状态监控必不可少。 云服务具体指标因功能特性而异。站在功能提供者的层面,通常同样需要重点关注延迟、流量、错误率、利用率等指标。此外,服务实例的动态伸缩、过负荷控制、故障自愈或迁移等可靠性关键事件也是服务健壮性的表征,如有异常需要预先干预。关键事件监控可以使用 CTS 服务,或自行搭建。 CES服务支持ECS、EVS、OBS、VPC、ELB、AS等IaaS服务,以及RDS数据库,DCS、DMS等高可用中间件的主要指标监控,支持用户上报自定义监控指标。如果用户自行搭建监控系统,也可以通过CES SDK获取指定服务的监控指标。 AOM服务提供了微服务应用和节点的关键指标监控能力。云容器工作负载关键指标在CSE服务中查看。函数服务关键指标在FunctionGraph控制台中查看。 3、资源监控 资源监控通常用于识别资源瓶颈分析系统性能问题。对应用系统资源进行监控时,需要先定义资源的关键指标以及对应的阈值,以便快速有效的发现业务表现和系统状态,以便在异常状态下尽早干预恢复,或定位改进系统缺陷。 关键指标需要与系统内工作负载的关键性能指标相关,并能确定为系统性能下降的早期警告信号,如系统处理的API数量及成功率,相比CPU利用率、内存利用率等基础指标,能更真实的指示系统性能问题。 常用USE方法(Utilization Saturation and Errors Method)对资源监控,包含: 使用率Utilization:覆盖系统资源,包括但不限于CPU、内存、网络、磁盘等。 饱和度Saturation:针对资源的饱和度,如CPU队列长度,注意与业务监控的黄金指标相区分。 错误Errors:资源处理错误,如网络丢包率等。 CES主动监控提供了虚机细粒度的监控能力,其他服务监控指标也不同程度涉及到资源使用率和错误监控。如果云服务现有能力不能满足系统要求,用户可使用CES或AOM服务的自定义指标监控能力。用户若自行搭建监控系统,需要覆盖主机资源、网络设备和Apache、Java、MySQL等第三方组件,开源的Zabbix是常见选择。 相关云服务和工具 云监控服务 CES 应用运维管理 AOM 应用性能管理 APM 父主题: RES07 监控告警
  • RES05-02 避免暴露不必要的网络地址 网络地址对外暴露时,可能会引入安全风险,需要避免暴露不必要的网络地址。 风险等级 高 关键策略 通常对外网络地址需要尽可能集中管控,避免分散暴露,如使用网络服务ELB弹性负载均衡、公网NAT网关、Web 云防火墙 等作为公网访问入口。 对外的IP地址需要通过安全组、NAT等限制网络端口访问,减少安全风险。 相关云服务和工具 虚拟私有云VPC :安全组 弹性负载均衡器 ELB NAT网关 NAT Web云防火墙 WAF 父主题: RES05 网络高可用
  • RES11 可靠性测试 可靠性测试是为了保证系统在规定的生命周期内,达到预期的可靠性目标;与通常的功能测试不同,可靠性测试需要在业务负荷叠加故障中进行,对测试环境和能力提出了更高要求。 可靠性测试和演练通过主动引入故障来充分验证软件质量的脆弱性,从而提前发现系统风险、提升测试质量、完善风险预案、加强监控告警、提升故障应急效率等方面做到故障发生前有效预防,故障发生时及时应对,故障恢复后回归验证。基于故障本身打造分布式系统韧性,持续提升软件质量,增强团队对软件生产运行的信心,减少业务运行中出现类似问题。 为了保证测试的有效性,测试环境需要与生产环境保持一致。 华为云提供了MAS-CAST故障注入服务、CodeArts PerfTest性能测试服务、MAS多活高可用服务,可用于故障注入测试、压力负荷测试、长稳测试以及灾难演练。 RES11-01 混沌测试 RES11-02 压力负载测试 RES11-03 长稳测试 RES11-04 灾难演练 RES11-05 红蓝攻防 父主题: 故障快速恢复
  • RES13-02 应用系统负载均衡,避免流量不均匀 针对无状态集群业务,通过负载均衡来保证业务均匀分发,可避免部分组件空闲,而部分组件过载而影响业务;同时还可以充分利用系统资源,提高系统性能,改善系统可靠性。 风险等级 高 关键策略 负载均衡分发业务粒度需避免过大,而导致部分组件过载。 负载均衡分发时需检查后端节点的负载状态,并根据各节点的负载进行业务分发。 在后端节点故障的情况下,需要自动将业务分发给其他健康节点处理,以避免业务失败。 相关云服务和工具 弹性负载均衡 ELB:支持业务负载均衡处理,还支持后端服务器健康状态检测,自动隔离异常状态的ECS。 父主题: RES13 过载保护
  • 金融类核心应用典型部署架构(99.999%) 金融类核心应用通常比较重要,要求非常短的恢复时间和数据丢失量,其可用性目标通常要求达到99.999%,即每年故障时间可以为5.26分钟。 假定故障中断与变更中断的时长分别如下: 故障中断:由于要求的故障中断时间很短,要求尽可能自动恢复,没有手动触发的恢复,假定每年故障中断4次,每次自动恢复时长为1分钟,则每年故障中断时长为4分钟。 变更中断:假定应用支持金丝雀部署或蓝绿部署,并自动完成,软件更新不中断业务。 按照以上评估,每年应用系统不可用的时长是4分钟,满足可用设计目标要求。 金融类应用典型架构为三层架构:前端Web集群+后台应用集群+后端数据库集群,其中前端无状态应用可采用ECS或CCE(以CCE为例),后端数据库通常采用RDS for MySQL提供更高性能与可靠性;为满足对应的可用性目标,建议方案如下: 类别 实施方案 冗余 ELB、CCE、DCS、Kafka、RDS、DDS等云服务实例均高可用部署。 备份 RDS、DDS数据库自动备份,在数据故障时使用最新备份数据恢复,可以满足可用性目标要求。 容灾 应用跨AZ部署,AZ故障时自动恢复;支持跨Region双活容灾,在出现Region级故障时可以自动切换在异地恢复业务。 监控告警 进行站点运行状态检查,在发生故障时告警;针对CCE、DCS、kafka、RDS、DDS等实例负载状态进行监控,在资源过载时需要告警。 弹性扩缩容 CCE集群支持工作负载的自动弹性伸缩。 变更防差错 软件更新采用金丝雀或蓝绿部署,部署过程自动完成,在部署过程中出现问题时自动回滚。 应急恢复处理 制定应急处理机制,指定应急恢复人员,以便在突发事件后能快速决策和恢复;并提供常见应用、数据库问题以及升级部署失败的相关解决方案,以便在出现问题后可以及时恢复;定期进行演练,及时发现问题。 根据以上方案,典型部署架构如下: 该架构的主要特点包括: 应用系统采用无状态应用+有状态数据库的分层部署架构。 应用系统在两个Region各部署一套完整系统,Region内跨AZ高可用部署,提供同城跨数据中心双活能力;Region间数据单元化部署,实现跨Region双活容灾,在任一Region故障的情况下能快速恢复业务。 接入层(外部GSLB、API网关):通过外部GSLB进行域名解析与流量负载均衡,两个Region同时提供服务,在单个Region故障时自动将业务流量切换到另一Region;API网关支持流量纠正,以便将业务路由到正确单元。 应用层(负载均衡器、应用软件及容器):对于无状态应用,通过 ELB负载均衡 器进行故障检测与负载均衡,并可通过容器进行弹性伸缩。 中间件层:Redis、Kafka集群跨可用区高可用部署。 数据层:MySQL数据库跨可用区高可用,通过DRS 数据复制服务 实现跨Region的双向数据库复制与容灾切换;并支持定期自动数据备份,在数据丢失时能快速恢复。OBS 对象存储服务 同样支持跨Region的双向复制能力。 为了保证数据的可靠性,RDS for MySQL、DDS数据库的数据定期自动备份。 父主题: 参考架构
  • RES12-04 出现问题后尽快恢复业务 应用系统出现故障后,需要能尽快发现,尽快响应。 风险等级 高 关键策略 可以通过以下途径实现故障的快速发现: 监控:应用系统需要提供业务监控信息,以便实时了解系统运行状态;维护团队需要有专人观测,并在发现故障发生时,需要及时响应。 告警:应用系统在检测到故障后需要及时告警,并能通过短消息、邮件等方式发送给所有相关人员,确保使相关人第一时间得知故障信息,以便快速组织应急响应。 预测:维护团队需要根据系统运行现状,通过数据分析、机器学习等方式,预测系统的风险情况,提前进行预防和处理。 在进行应急恢复处理时,通常需要尽快缓解或恢复业务,快速结束业务中断对客户的影响,然后再启动问题定位和修复处理流程,以减少业务中断时间。 组织协调:故障发生后,应急恢复主席需要迅速组织相关人员快速恢复业务。 应急恢复处理:系统发生故障后需要快速问题分析并按照事先制定的应急预案进行恢复处理。 父主题: RES12 应急恢复处理
  • RES12-02 制定应急预案 针对常见问题现象,提供标准化的应急恢复指导,以便在出现问题后,可以有序的完成恢复操作,避免操作失误。 风险等级 高 关键策略 需要覆盖常用典型场景。 应急恢复需要有标准的操作流程和动作,确保在事件发生时,相关干系人都能够明确自身职责和所需要采取的措施。 每个恢复操作动作必须明确无歧义,可指导操作人员。 相关云服务和工具 云运维中心 COC:支持应急预案管理。 父主题: RES12 应急恢复处理
  • 概述 本章节以典型Web应用为例,介绍不同可用性目标要求下部署的典型架构示例。针对每种场景,从以下几个维度进行设计,来达成可用性目标。 类别 应用可用性影响 冗余 应用内组件的高可用能力,在应用内部分节点故障时业务自动恢复能力 备份 应用数据被破坏的情况下的恢复能力 容灾 在Region/AZ/IDC或其他云站点发生灾难的情况下的恢复能力 监控告警 应用系统故障后的检测和告警能力 弹性扩缩容 应用容量不足时的自动恢复能力 变更防差错 变更对应用业务中断的影响 应急恢复处理 应用在故障情况下的应急恢复能力 父主题: 参考架构
  • 内部 知识管理 类应用典型部署架构(99.9%) 内部知识管理类应用通常用于内部操作,且在故障时只会对内部员工造成影响,可以承受较长的恢复时间和恢复点,其可用性目标通常要求达到99.9%,即每年中断时间可以为8.76小时。 导致业务中断的时间包含故障中断时间及由于升级配置维护等导致的中断时间,假定分别中断时间如下: 故障中断:假定每年故障中断4次,每次应急恢复决策时长为30分钟,恢复处理时长为30分钟,则每年故障中断时长为240分钟。 变更中断:假定应用离线更新,每年更新8次,每次更新时长30分钟,则每年更新时长为240分钟。 按照以上评估,每年应用系统不可用的时长是480分钟,满足可用设计目标要求。 内部知识管理类应用典型架构为前端无状态应用层+后端数据库,其中前端无状态应用采用ECS,后端数据库基于不同业务类型可采用不同数据库,通常为RDS for MySQL;基于业务需要,通常还会使用DCS、Kafka等中间件及DDS文档数据库;为满足对应的可用性目标,建议方案如下: 类别 实施方案 冗余 ELB、RDS、DCS、Kafka、DDS等云服务实例均采用高可用部署。 备份 RDS、DDS数据库自动备份,有状态ECS通过CBR自动备份,在数据故障时使用最新备份数据恢复,可以满足可用性目标要求。 容灾 应用使用支持跨AZ的服务进行跨AZ部署,ELB、RDS跨AZ部署,AZ故障时自动恢复。有状态ECS通过SDRS进行跨AZ容灾,在AZ故障时手工切换。 监控告警 进行站点运行状态检查,在发生故障时告警;针对ECS、RDS实例负载状态进行监控,在资源过载时需要告警。 弹性扩缩容 针对内部用户场景,资源足够,无需自动弹性伸缩;针对ECS,通过ELB实现ECS实例的故障检测与负载均衡,并可根据ECS监控情况随时添加和移除ECS实例来扩展应用系统的服务能力;针对RDS,可根据RDS负载监控情况,在维护时段更改实例类型或增加只读节点。 变更防差错 软件更新采用离线更新,在位替换,根据runbook进行应用的自动部署与回滚。每1~2个月更新一次软件。 应急恢复处理 制定应急处理机制,指定应急恢复人员,以便在突发事件后能快速决策和恢复;并提供常见应用、数据库问题以及升级部署失败的相关解决方案,以便在出现问题后可以及时恢复。 根据以上方案,典型部署架构如下: 该架构的主要特点包括: 应用系统采用有状态虚拟机+有状态数据库的分层部署架构。 该应用系统在华为云单个Region部署一套完整系统,采用跨AZ部署,其中有状态虚拟机采用跨AZ主备复制,可以实现云内应用层跨数据中心主备容灾。 接入层(外部DNS):通过外部DNS进行域名解析与流量负载均衡,单个AZ故障对业务没有影响。 应用层(负载均衡器、应用软件及虚拟机):对于有状态应用,通过SDRS服务实现跨AZ的虚拟机数据复制与容灾切换,并可通过CBR服务进行自动数据备份。 中间件层:Redis、Kafka集群跨可用区高可用部署,单个AZ故障对业务没有影响。 数据层:RDS与DDS数据库及OBS对象存储跨可用区高可用部署,单个AZ故障对业务没有影响。 为了保证数据的可靠性,RDS数据库的数据定期自动备份到OBS,在数据丢失时可以快速恢复。 父主题: 参考架构
  • 信息管理类应用典型部署架构(99.95%) 信息管理类应用通常用于内部操作,且在故障时只会对内部员工造成影响,可以承受一定的恢复时间和恢复点,其可用性目标通常要求达到99.95%,即每年故障时长可以为4.38小时。 假定故障中断与变更中断的时长分别如下: 故障中断:假定每年故障中断4次,每次应急恢复决策时长为20分钟,恢复处理时长为10分钟,则每年故障中断时长为120分钟。 变更中断:假定应用支持离线更新与在线补丁,每年离线更新4次,每次更新时长30分钟,则每年更新时长为120分钟;在线补丁不影响业务。 按照以上评估,每年应用系统不可用的时长是240分钟,满足可用设计目标要求。 信息管理类应用典型架构为前端无状态应用层+后端数据库,其中前端无状态应用可采用ECS或CCE(以CCE为例),通过ELB负载均衡;后端数据库基于不同业务类型可采用不同数据库,通常采用 GaussDB 提供更高性能与可靠性;基于业务需要,通常还会使用DCS、Kafka等中间件及DDS文档数据库;为满足对应的可用性目标,建议方案如下: 类别 实施方案 冗余 ELB、CCE、DCS、Kafka、GaussDB、DDS等云服务实例均高可用部署。 备份 GaussDB、DDS数据库自动备份,在数据故障时使用最新备份数据恢复,可以满足可用性目标要求。 容灾 应用跨3AZ部署,AZ故障时自动恢复。 监控告警 支持业务运行状况、成功指标的检查,在发生故障时告警;支持云服务实例负载状态及资源故障切换等的监控,在负载超过阈值或状态异常时告警。 弹性扩缩容 针对内部用户场景,资源足够,无需自动弹性伸缩;针对CCE容器,通过CCE进行负载均衡与弹性伸缩;针对GaussDB,可根据GaussDB负载监控情况,自动扩缩规格或增删只读节点。 变更防差错 软件更新采用离线更新与在线补丁,根据runbook进行应用的自动部署与回滚。每1~2个月更新一次软件。 应急恢复处理 制定应急处理机制,指定应急恢复人员,以便在突发事件后能快速决策和恢复;并提供常见应用、数据库问题以及升级部署失败的相关解决方案,以便在出现问题后可以及时恢复。 根据以上方案,典型部署架构如下: 该架构的主要特点包括: 应用系统采用无状态应用+有状态数据库的分层部署架构。 该应用系统在华为云单个Region部署一套完整系统,采用跨AZ部署,可以实现云内应用层跨数据中心双活。 接入层(外部DNS):通过外部DNS进行域名解析与流量负载均衡,单个AZ故障对业务没有影响。 应用层(ELB负载均衡器、应用软件及容器):对于无状态应用采用跨AZ高可用部署,通过ELB负载均衡器进行故障检测与负载均衡,并可通过CCE容器进行负载监控和弹性伸缩。 中间件层:Redis、Kafka集群跨可用区高可用部署,单个AZ故障对业务没有影响。 数据层:GaussDB与DDS数据库及OBS对象存储跨3AZ高可用部署,数据分布式强一致,单个AZ故障对业务没有影响,数据零丢失。 为了保证数据的可靠性,GaussDB与DDS数据库的数据定期自动备份。 父主题: 参考架构
  • 跨云双活方案 当重要应用系统已经在IDC或其他云上部署,并需在华为云上部署一套系统实现双活,以提供高可用的容灾方案。假定应用系统在IDC或其他云上可以达到99.9%的可用性,则在容灾到华为云后,能提供99.99%的可用性。 跨云应用典型架构为前端无状态应用层+后端数据库,其中前端无状态应用可采用虚拟机或容器(以容器为例,华为云采用CCE),后端数据库通常要求采用通用MySQL数据库(华为云采用RDS for MySQL),以实现跨云双活容灾。 华为云上的应用部署建议方案如下: 类别 实施方案 冗余 ELB、CCE、DCS、Kafka、RDS、DDS等云服务实例均高可用部署。 备份 RDS、DDS数据库自动备份,在数据故障时使用最新备份数据恢复,可以满足可用性目标要求。 容灾 应用跨AZ部署,AZ故障时自动恢复;支持跨云双活,在IDC或其他云出现故障时可以快速切换到华为云。 监控告警 进行站点运行状态检查,在发生故障时告警;针对CCE、DCS、kafka、RDS、DDS等实例负载状态进行监控,在资源过载时需要告警。 弹性扩缩容 CCE集群支持工作负载的自动弹性伸缩。 变更防差错 软件更新采用金丝雀或蓝绿部署,部署过程自动完成,在部署过程中出现问题时自动回滚。 应急恢复处理 制定应急处理机制,指定应急恢复人员,以便在突发事件后能快速决策和恢复;并提供常见应用、数据库问题以及升级部署失败的相关解决方案,以便在出现问题后可以及时恢复;定期进行演练,及时发现问题。 根据以上方案,典型部署架构如下: 该架构的主要特点包括: 应用系统采用无状态应用+有状态数据库的分层部署架构。 应用系统在其他云与华为云中各部署一套完整系统;华为与采用跨AZ部署,可以实现云内应用层跨数据中心双活;云间数据单元化部署,并支持将它云数据实时同步到华为云,实现双活容灾,在第三方云故障的情况下能快速容灾切换到华为云。 接入层(外部GSLB、API网关):通过外部GSLB进行域名解析与流量负载均衡,两朵云同时提供服务,在第三方云故障时自动将业务流量切换到华为云;API网关支持流量纠正,以便将业务路由到正确单元。 应用层(负载均衡器、应用软件及容器):对于无状态应用,通过负载均衡器进行故障检测与负载均衡,并可通过容器进行弹性伸缩。 中间件层:Redis、Kafka集群跨可用区高可用部署。 数据层:MySQL数据库跨可用区高可用,通过DRS数据复制服务实现跨云的数据库复制与容灾切换。 为了保证数据的可靠性,数据库的数据定期自动备份,在数据丢失时可以快速恢复。 父主题: 跨云场景典型部署架构(99.99%)
  • RES11-02 压力负载测试 通过施加超出系统容量的业务压力,验证云服务的过载保护、业务隔离和优雅降级等能力。为全面验证系统整体的容量规划和业务依赖,云服务应用通常采用全链路压测进行测试。 风险等级 高 关键策略 模拟大量接口消息进行压力测试。 模拟各种业务场景进行压力测试。 持续自动测试。 性能发生偏差时自动告警,以便及时定位和处理。 相关云服务和工具 性能测试 CodeArts PerfTest:针对HTTP/HTTPS/TCP/UDP/HLS/RTMP/ WEBSOCKET/HTTP-FLV等协议构建的云应用提供性能测试的服务,其支持快速模拟大规模并发用户的业务高峰场景,通过自定义报文内容、时序、多事务组合等复杂场景,帮助用户测试验证业务高峰下的服务表现。 父主题: RES11 可靠性测试
  • RES11-04 灾难演练 通过容灾演练,可以验证灾备系统是否可用,且数据丢失时间以及恢复时间符合数据的RPO与RTO指标要求。 风险等级 高 关键策略 灾难演练着重测试服务跨AZ或跨Region故障转移能力,验证系统的容灾能力以及面对灾难时的应对能力,涉及到多个团队间配合,通常作为专项开展。容灾演练可以帮助企业更好的验证RPO、RTO指标,及时发现和解决相关问题,提高系统的可用性和可靠性。 相关云服务和工具 MAS多活高可用服务灾难演练:支持同城跨AZ灾备/双活、两地三中心及异地多活等场景下的业务高可用容灾管理、工作流编排及演练切换功能。 父主题: RES11 可靠性测试
  • RES13-01 采用自动弹性扩缩容 当系统突发流量时,通过自动弹性扩容,可减少业务中断影响。 风险等级 高 关键策略 弹性扩缩容需要通过业务处理逻辑与数据分离、状态外置等技术手段支撑系统处理能力的快速增加或减少。 系统扩容和缩容的处理方式有两种,一种是改变单机的处理能力,包括CPU、内存、存储等,称之为纵向伸缩;另一种是单机节点处理能力不变,通过增加节点的数量来改变系统的处理能力,称之为横向伸缩。 系统设计时一般建议采用横向伸缩。采用横向伸缩时,要求业务与数据解耦,即将系统的业务处理逻辑与数据分离、数据(状态)外置,以实现业务节点(含资源)无状态,按需快速增加或减少,从而实现系统业务处理能力的伸缩。 当节点故障或资源不足时,系统需要自动检测和扩展节点,以实现自动横向扩缩容,自动增加资源容量,解决业务处理能力不足的问题,无需人工干预。 华为云提供AS弹性伸缩服务,可以根据伸缩组内的负载情况,及伸缩规则,自动调整ECS实例、带宽等资源。当业务需求增长时,AS自动增加弹性云服务器(ECS)实例或带宽资源,以保证业务能力;当业务需求下降时,AS自动缩减弹性云服务器(ECS)实例或带宽资源,以节约成本。 此外,华为云还提供了一些内嵌伸缩能力的云服务,对用户无感知或仅需简单配置: OBS、SFS、FunctionGraph等服务会根据请求量自动扩展业务处理能力,用户无感知。 RDS服务最多支持5个只读副本,可在线扩展只读负载;一键规格变更实现CPU、内存扩容/缩容;在线存储容量扩容。 CCE服务支持配置自动扩容集群节点和工作负载,伸缩策略支持告警(按CPU或内存使用率触发)、定时、周期多种方式。 相关云服务和工具 弹性伸缩 AS 云容器引擎 CCE 云数据库 RDS 对象存储服务 OBS 弹性文件服务 SFS 函数工作流 FunctionGraph 父主题: RES13 过载保护
  • RES11-01 混沌测试 混沌工程(Chaos Engineering)是通过故障注入的方式,触发或模拟实际故障,验证系统的稳定性和容错保护能力。 风险等级 高 关键策略 在真实环境中测试。 作为CI/CD管道的一部分例行执行。 主动注入故障,以便在问题发生前提前发现并解决问题。 以可控方式注入故障,减少对客户的影响。 混沌工程度量指标: 故障场景的覆盖率:分析故障场景的覆盖率,例如容灾场景覆盖 80%,过载场景覆盖 60%。 故障场景的命中率:分析故障场景中,真实发生的比率。 应急预案的质量:用于度量应急预案有效性和执行效率。 风险发现个数与等级:定期评估分析(季度或年度)主动发现的风险数量和级别。 风险消减个数、等级与类型:风险降级的数量,风险消减的数量,增加预案的数量,改进监控项的数量。 故障恢复时长提升率:对应故障场景经过混沌工程演练,平均恢复速度提升的比率。 故障数量相比上年减少数量:本年度故障数量相比上年度减少多少。 相关云服务和工具 MAS-CAST故障注入服务:针对云应用提供测试工具和注入手段,支持故障和业务流程编排的可靠性评估测试、压力负荷测试、CHAOS随机故障注入、生产环境故障演练等能力。 云运维中心 COC:支持混沌演练,为用户提供一站式的自动化演练能力,覆盖从风险识别、应急预案管理、故障注入到复盘改进的端到端的演练流程。 父主题: RES11 可靠性测试
  • RES10-04 健康检查与自动隔离 对应用组件进行健康检查,当发现故障后进行主动隔离,避免故障扩散。 风险等级 高 关键策略 对系统内组件需要定期进行健康检查,以判断其状态是否正常。 对于异常组件,需要能支持自动隔离,避免对整体业务造成影响。 相关云服务和工具 弹性负载均衡器 ELB:支持健康检查,会定期向后端服务器发送请求以测试其运行状态,并根据健康检查来判断后端服务器是否可用,当判断为异常后就不会将流量分发给该异常后端服务器。 云容器引擎 CCE:支持容器健康检查,容器运行过程中,可根据用户需要,定时检查容器健康状况。若不配置健康检查,如果容器内应用程序异常,Pod将无法感知,也不会自动重启去恢复。最终导致虽然Pod状态显示正常,但Pod中的应用程序异常的情况。 父主题: RES10 故障隔离
  • 双Region方案 采用双Region时,前端以ECS为例,建议方案如下: 类别 实施方案 冗余 ELB、ECS、DCS、Kafka、RDS、DDS等云服务实例均高可用部署。 备份 RDS、DDS数据库自动备份,在数据故障时使用最新备份数据恢复,可以满足可用性目标要求。 容灾 应用跨AZ部署,AZ故障时自动恢复;支持跨Region主备容灾,在出现Region级故障时可以快速在异地恢复业务。 监控告警 支持业务运行状况、成功指标的检查,在发生故障时告警;支持ECS、DCS、Kafka、RDS、DDS等实例负载状态及资源故障切换等的监控,在负载超过阈值或状态异常时告警。 弹性扩缩容 支持自动弹性伸缩;针对ECS,通过ELB实现ECS实例的故障检测与负载均衡,并可通过AS监控负载随时添加和移除ECS实例来扩展应用系统的服务能力;针对RDS for MySQL,可根据负载监控情况,自动扩缩规格或增删只读节点。 变更防差错 软件更新采用金丝雀或蓝绿部署,部署过程自动完成,在部署过程中出现问题时自动回滚。 应急恢复处理 制定应急处理机制,指定应急恢复人员,以便在突发事件后能快速决策和恢复;并提供常见应用、数据库问题以及升级部署失败的相关解决方案,以便在出现问题后可以及时恢复;定期进行演练,及时发现问题。 根据以上方案,典型部署架构如下: 该架构的主要特点包括: 应用系统采用无状态应用+有状态数据库/虚拟机的分层部署架构。 应用系统在主备Region各部署一套完整系统,主备Region间数据同步;Region内跨AZ高可用部署,提供同城跨数据中心双活能力;Region间数据支持数据异步实时同步,采用主备容灾,在一个Region故障的情况下能快速将业务恢复到另一个Region。 接入层(外部DNS、API网关):通过外部DNS进行域名解析,在一个Region故障时手工将业务流量切换到另一个Region。 应用层(负载均衡器、应用软件及虚拟机):对于无状态应用,通过ELB负载均衡器进行故障检测与负载均衡,并通过AS弹性伸缩服务监控负载进行弹性伸缩;对于有状态应用,通过SDRS服务实现跨云的虚拟机数据复制与容灾切换,并可通过CBR服务进行自动数据备份。 中间件层:Redis、Kafka集群跨可用区高可用部署。 数据层:MySQL数据库高可用,通过DRS数据复制服务实现跨云的数据库复制与容灾切换;并可定期自动备份数据,在数据丢失时快速恢复业务。OBS对象存储服务同样支持跨Region复制能力。 为了保证数据的可靠性,RDS数据库的数据定期自动备份到OBS,在数据丢失时可以快速恢复。 父主题: 电商类应用典型部署架构(99.99%)
  • RES13 过载保护 当系统流量超过一定阈值后,导致系统处于过载状态时,可能会导致部分请求失败,失败触发业务重试,会进一步增加系统的负荷,形成恶性循环,导致业务成功率远远低于系统的设计容量,甚至整体不可用。因此应用应该设计过载保护机制,使得在过载状态下依然可以保证一定比例设计容量的处理能力。 通过过载保护,可以缓解客户流量突增、泛洪攻击或重试风暴所造成的大量容量峰值情况,让工作负载能够继续正常处理支持的请求量,避免出现资源耗尽而导致所有请求都不能处理的情况。 RES13-01 采用自动弹性扩缩容 RES13-02 应用系统负载均衡,避免流量不均匀 RES13-03 过载检测与流量控制 RES13-04 支持主动扩容 RES13-05 资源自动扩容考虑了配额限制 RES13-06 压力负载测试 父主题: 过载控制
  • RES12-03 定期应急恢复演练 定期测试突发事件应急恢复处理,以便在出现问题后能进行高效的恢复处理。 风险等级 高 关键策略 每年至少进行一次应急恢复演练;通过演练可提升操作人员的熟练程度。 演练期间严格按照应急预案进行恢复,以检验应急预案的准确性。 演练结束后需要对恢复过程进行回溯,并优化应急预案。 相关云服务和工具 云运维中心 COC:支持混沌演练,为用户提供一站式的自动化演练能力,覆盖从风险识别、应急预案管理、故障注入到复盘改进的端到端的演练流程。 父主题: RES12 应急恢复处理
  • RES13-04 支持主动扩容 当由于计划性活动而导致资源需求增加时,需要支持主动扩容,避免由于资源不足而导致业务受影响。 风险等级 高 关键策略 当发现应用系统业务需要更多资源时,可主动扩展资源以满足需求,而避免影响可用性。典型场景如产品促销前预测会有突发大流量,则可手工进行扩容处理。 华为云服务实例支持主动横向或纵向扩容功能;如对于ECS实例可以通过创建多个ECS实例实现横向扩容,也可升级ECS规格实现纵向扩容;对于RDS实例可升级RDS实例规格实现纵向扩容。 父主题: RES13 过载保护
  • RES13-03 过载检测与流量控制 当应用系统发生过载时,可能会导致系统疲于处理请求而无法有效提供服务,因此需要进行过载检测并进行流量控制。 风险等级 高 关键策略 过载控制(也称流控)指系统处于过载时,通过限流、降级、熔断、弹性伸缩等手段,使系统保证部分或者全部额定容量业务成功处理的控制过程;典型过载控制方法定义如下: 限流:在系统过载时主动丢弃部分业务请求。 降级:在系统过载时提供有损服务,通过减少非核心业务,降低业务质量等措施降低系统负载。 熔断:在分布式系统中,应用调用第三方资源和服务时由于第三方资源和服务故障(包括过载)而失败,停止调用远程资源和服务,避免故障扩散。 相关云服务和工具 华为云提供了一些内嵌流控保护的云服务,用户可直接配置使用: API网关 APIG:支持配置流控策略,用户可指定单位时间内的单个API、单个用户或单个APP的请求次数上限。 微服务引擎 CSE:支持限流,用户可指定一定时间内可接受的请求次数上限。 父主题: RES13 过载保护
  • 跨云容灾方案 当重要应用系统已经在IDC或其他云上部署,并需要容灾到华为云,以提供高可用的容灾方案。假定应用系统在IDC或其他云上可以达到99.9%的可用性,则在容灾到华为云后,能提供99.99%的可用性。 跨云应用典型架构为前端无状态应用层+后端数据库,其中前端无状态应用可采用虚拟机或容器(以容器为例,华为云采用CCE),后端数据库通常要求采用通用MySQL数据库(华为云采用RDS for MySQL),以实现跨云容灾。 华为云上的应用部署建议方案如下: 类别 实施方案 冗余 ELB、CCE、DCS、Kafka、RDS、DDS等云服务实例均高可用部署。 备份 RDS、DDS数据库自动备份,在数据故障时使用最新备份数据恢复,可以满足可用性目标要求。 容灾 应用跨AZ部署,AZ故障时自动恢复;支持跨云容灾,在IDC或其他云出现故障时可以快速切换到华为云。 监控告警 进行站点运行状态检查,在发生故障时告警;针对CCE、DCS、kafka、RDS、DDS等实例负载状态进行监控,在资源过载时需要告警。 弹性扩缩容 CCE集群支持工作负载的自动弹性伸缩。 变更防差错 软件更新采用金丝雀或蓝绿部署,部署过程自动完成,在部署过程中出现问题时自动回滚。 应急恢复处理 制定应急处理机制,指定应急恢复人员,以便在突发事件后能快速决策和恢复;并提供常见应用、数据库问题以及升级部署失败的相关解决方案,以便在出现问题后可以及时恢复;定期进行演练,及时发现问题。 根据以上方案,典型部署架构如下: 该架构的主要特点包括: 应用系统采用无状态应用+有状态数据库/虚拟机的分层部署架构。 应用系统在IDC/其他云与华为云中各部署一套完整系统;华为云采用跨AZ部署,可以实现云内应用层跨数据中心双活;云间数据支持将它云数据实时同步到华为云,采用主备容灾,在IDC/其他云故障的情况下能快速容灾切换到华为云。 接入层(外部DNS、API网关):通过外部DNS进行域名解析,在IDC/其他云故障时手工将业务流量切换到华为云。 应用层(负载均衡器、应用软件及虚拟机或物理主机):对于无状态应用,通过负载均衡器进行故障检测与负载均衡,在华为云上可通过AS弹性伸缩服务监控负载进行弹性伸缩;对于有状态应用,通过SDRS服务实现跨云的虚拟机数据复制与容灾切换,并可通过CBR服务进行自动数据备份。 中间件层:Redis、Kafka集群跨可用区高可用部署。 数据层:MySQL数据库高可用,通过DRS数据复制服务实现跨云的数据库复制与容灾切换;并可定期自动备份数据,在数据丢失时快速恢复业务。 为了保证数据的可靠性,数据库的数据定期自动备份,在数据丢失时可以快速恢复。 父主题: 跨云场景典型部署架构(99.99%)
  • RES15-04 灰度部署和升级 原地升级和回滚时,升级和回滚过程中业务将会中断,中断时长受限于升级和回滚的时长,对业务影响比较大;而采用灰度部署和升级,可减少升级和回滚过程中的业务中断,提升系统可用性。 风险等级 高 关键策略 通过金丝雀部署、蓝绿部署等方式实现灰度升级或部署,逐步引入新版本部署范围或切换用户流量,配合自动回退以降低部署差错导致业务中断的风险。 金丝雀部署(灰度发布)是将少量客户引导到新版本的做法,通常在单个服务实例(Canary)上运行;当检查到任何行为更改或错误时,可以将Canary中的流量删除,并将用户发回到以前的版本。如果部署成功,则可以继续以期望的速度进行部署,同时监控更改以便发现错误,直到所有部署完成。 蓝绿部署与金丝雀部署类似,只是会并行部署一整套应用程序,形成两套生产环境:蓝环境和绿环境,蓝色是当前版本并拥有实时流量,绿色是包含更新代码的环境。当应用程序已经准备就绪,用户可以将所有流量都将路由到绿环境中,当出现问题时,可以快速将流量重新路由回蓝环境,进行故障恢复。 相关云服务和工具 部署 CodeArts Deploy:提供可视化、自动化部署能力,提供丰富的部署步骤,有助于用户制定标准的部署流程,降低部署成本,提升发布效率。 微服务引擎 CSE:支持灰度发布。 应用服务网格 ASM:支持灰度发布。 父主题: RES15 升级不中断业务
  • RES14-01 变更防呆检查 防呆是一种预防矫正的行为约束手段,运用防止错误发生的限制方法,让操作者不需要花费注意力、也不需要经验与专业知识,凭借直觉即可准确无误地完成的操作。 风险等级 高 关键策略 通过以下约束和检查,可减少配置差错: 角色约束:通过权限控制设计预防对不同角色的配置范围进行约束,避免越权配置导致错误。 查改分离:通过产品界面设计将配置界面分层分级,查看与修改分离等降低人为配置失误风险。 配置校验:通过配置生效机制设计确保在配置生效前进行必要的校验,避免错误配置生效。 删除保护:在删除资源时增加保护机制,防止误删,如:删除前运行状态检查保护,资源锁定防止误删除,回收站机制等。 父主题: RES14 配置防差错
  • 电商类应用典型部署架构(99.99%) 电子商务类应用用于外部客户,需要提供较高的可用性,并能承受组件故障,其可用性目标通常要求达到99.99%,即每年故障时间可以为52.56分钟。 假定故障中断与变更中断的时长分别如下: 故障中断:假定每年故障中断3次,每次应急恢复决策时长为10分钟,恢复处理时长为5分钟,则每年故障中断时长为45分钟。 变更中断:假定应用支持金丝雀部署或蓝绿部署,并自动完成,软件更新不中断业务。 按照以上评估,每年应用系统不可用的时长是45分钟,满足可用设计目标要求。 电子商务类应用典型架构为前端无状态应用层+后端数据库,其中前端无状态应用可采用ECS或CCE;后端数据库基于不同业务类型可采用不同数据库,通常采用RDS for MySQL;同时通常还会使用DCS、Kafka等中间件及DDS文档数据库;为满足对应的可用性目标,建议采用以下方案。 单Region方案 双Region方案 父主题: 参考架构
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全