华为云用户手册

  • COST06-03 跟踪并监控权益商品的使用情况 风险等级 低 关键策略 客户购买资源包等权益商品时,应定时跟踪资源包的使用情况,若资源包到期或用尽应及时续购,资源包覆盖不足应及时增购,资源包使用过少则应在资源包到期后续购合适大小的资源包,避免浪费。 相关服务和工具 华为云成本中心提供资源包的使用率/覆盖率分析,您可以通过该工具了解已购资源包的使用率和覆盖率情况,识别资源包购买过多(使用率低),还是过少(覆盖率低),从而优化下一阶段的购买。 华为云费用中心提供资源包剩余使用量预警功能,您可以根据实际需要,按照剩余使用量百分比、绝对值或自定义方式来设置阈值,及时获取提醒。 父主题: COST06 使用不同计费模式优化成本
  • 单Region方案 采用单Region时,前端以CCE为例,建议方案如下: 类别 实施方案 冗余 ELB、CCE、D CS 、Kafka、RDS、DDS等云服务实例均高可用部署。 备份 RDS、DDS数据库自动备份,在数据故障时使用最新备份数据恢复,可以满足可用性目标要求。 容灾 应用在两个AZ各部署一套,进行双向复制,双活容灾;AZ故障时自动恢复。 监控告警 进行站点运行状态检查,在发生故障时告警;针对CCE、DCS、kafka、RDS、DDS等实例负载状态进行监控,在资源过载时需要告警。 弹性扩缩容 CCE集群支持工作负载的自动弹性伸缩。 变更防差错 软件更新采用金丝雀或蓝绿部署,部署过程自动完成,在部署过程中出现问题时自动回滚。 应急恢复处理 制定应急处理机制,指定应急恢复人员,以便在突发事件后能快速决策和恢复;并提供常见应用、数据库问题以及升级部署失败的相关解决方案,以便在出现问题后可以及时恢复;定期进行演练,及时发现问题。 根据以上方案,典型部署架构如下: 该架构的主要特点包括: 应用系统采用无状态应用+有状态数据库的分层部署架构。 该应用系统在华为云一个Region两个AZ中各部署一套,提供同城容灾能力。 接入层(外部GSLB):通过外部GSLB进行 域名 解析与流量负载均衡,在单个AZ故障时自动将业务流量切换到另一AZ。 应用层(负载均衡器、应用软件及容器):对于无状态应用,通过负载均衡器进行故障检测与负载均衡,并可通过容器进行弹性伸缩。 中间件层:每个可用区各部署一套DCS、DMS Kafka集群。 数据层:每个可用区各部署一套RDS数据库,通过DRS 数据复制服务 实现跨AZ的双向数据库复制与容灾切换;并支持定期自动数据备份,在数据丢失时能快速恢复。OBS对象存储跨可用区高可用部署,单个AZ故障对业务没有影响。 为了保证数据的可靠性,RDS数据库的数据定期自动备份。 父主题: 电商类应用典型部署架构(99.99%)
  • PERF03-01 选择合适类型的计算云服务 风险等级 中 关键策略 根据应用的特征选择合适的计算云服务。选择计算云服务主要考虑以下两个因素: 应用本身的部署形态 上云时,业务的迁移方式(例如:业务是简单的迁移上云,还是本身要做改造) 如果业务本身在IDC部署模式是虚拟机部署,应用系统比较老旧,业务本身也没有改造的计划,建议按照原来IDC的部署模式,采用ECS或者BMS的形式进行应用部署,以满足应用和业务本身的性能诉求。 如果借助上云的机会业务侧也会做容器化和微服务的改造,上云时选择容器化(CCE/CCI)进行部署。 如果本身业务已经是微服务化的形式,建议上云时考虑容器服务(CCE/CCI)进行部署。 相关服务和工具 弹性云服务器 ECS 裸金属服务器 BMS 云容器引擎 CCE 云容器实例 CCI 父主题: 选择合适的计算资源
  • 概念表 概念 解释 机密性 确保只有授权的用户可以访问系统中的敏感信息,防止未经授权的访问和泄露。机密性通常通过加密技术来实现,包括对数据进行加密和解密的过程,确保只有授权用户能够访问和理解数据内容。 完整性 确保数据在传输和存储过程中不被篡改,保持数据的完整性,防止数据被恶意篡改或损坏。完整性通常通过哈希函数和数字签名等技术来实现,确保数据在传输或存储过程中没有被篡改或损坏。 可用性 确保系统和数据在需要时可用,防止因攻击、故障或其他原因导致系统不可用。从安全的角度,可用性可通过负载均衡、弹性计算、事件监控和告警、防暴力攻击如DDoS防护等手段来实现。 可审计 系统或数据处理过程能够被有效地监视、记录和审计的能力。可审计性通常通过审计日志、审计跟踪、监控系统和审计工具等技术来实现,记录系统操作和事件,以便后续审计和监控。 不可抵赖性 在通信或交易过程中,一方无法否认已经发出的消息或行为,也无法否认接收到的消息或行为。不可抵赖性通常通过数字签名、公钥基础设施(PKI)、审计日志和审计跟踪等技术来实现,确保通信双方无法否认其行为或消息。 账号 帐号是您的华为云资源归属、资源隔离、计费的主体,对其所拥有的资源及云服务具有完全的访问权限。每个账号具有独立的身份验证、访问控制和资源隔离,账号之间默认相互隔离。 IAM 统一身份认证 (Identity and Access Management,简称IAM)是华为云提供身份认证和权限管理的基础服务,可以帮助您安全地控制云服务和资源的访问权限。 IAM用户 由帐号在IAM中创建的用户,是云服务的使用人员,具有独立的身份凭证(密码和访问密钥),根据帐号授予的权限使用资源。 账号与IAM用户可以类比为父子关系,账号是资源归属以及计费的主体,对其拥有的资源具有所有权限。IAM用户由账号创建,只能拥有账号授予的资源使用权限,账号可以随时修改或者撤销IAM用户的使用权限。 多因素认证 多因素认证(Multi-Factor Authentication,简称MFA)是一种安全认证过程,需要用户提供两种及以上不同类型的认证因子来表明自己的身份,包括密码、指纹、短信验证码、智能卡、生物识别等多种因素组合,从而提高用户账户的安全性。 安全威胁 安全威胁指的是可能导致系统、网络或数据遭受损害、被破坏或被访问的潜在危险因素或事件。安全威胁可以是意外的,也可以是有意的,可能会导致系统遭受攻击或受到损害。安全威胁可以是外部的(如黑客攻击、恶意软件)或内部的(如员工疏忽、内部泄露)。 威胁建模 识别系统的潜在威胁以建立防护策略,构建安全的系统。 安全风险 安全风险是指在面临安全威胁的情况下,系统、网络或数据可能遭受损害或丧失机密性、完整性或可用性的概率和影响程度。安全风险通常由威胁的存在、系统漏洞、不恰当的安全措施或其他因素造成。安全风险通常通过风险评估来评估和管理,以确定风险的程度并采取相应的控制措施。 Playbook 处置剧本 安全响应中的处置剧本是一种预定义的操作指南,旨在帮助安全团队在面对特定的安全事件或威胁时,迅速且有序地采取行动。剧本通常包含详细的步骤、流程、工具和责任分配,以确保安全事件得到有效处理,减少潜在损失和影响。 数据主体 提供个人数据,可以通过个人数据识别或个人数据的组合识别的自然人,对个人数据有疑问时,有投诉或提出质询的权利。如:产品的最终用户,公司的雇员等。 数据控制者 单独或者与他人共同确定个人数据处理的目的和手段的自然人、法人、公共机构、政府部门或其他机构。对个人数据的处理有控制权,承担个人数据保护的主要责任。 数据处理者 代表数据控制者处理个人数据的自然人、法人、公共机构、政府部门或其他机构。数据处理者必须按照数据控制者的要求对个人数据进行充分的保护。 第三方(特指隐私保护中的第三方角色) 指数据主体、数据控制者、数据处理者以及根据数据控制者或者处理者的直接授权而处理数据的人之外的任何自然人或法人、公共权力机关、代理机构或其他机构。 个人数据 个人数据是指与一个身份已被识别或者身份可被识别的自然人(“数据主体”)相关的任何信息。身份可识别的自然人是指其身份可以通过诸如姓名、身份证号、位置数据等识别码或者通过一个或多个与自然人的身体、生理、精神、经济、文化或者社会身份相关的特定因素来直接或者间接地被识别。 敏感个人数据 高影响个人数据的一个子集。指在个人基本权利和自由方面极其敏感,一旦泄露可能会造成人身损害、财务损失、名誉损害、身份盗窃或欺诈、歧视性待遇等的个人数据。 父主题: 基本概念
  • RES01-02 应用组件多位置部署 应用组件需要部署在多个数据中心,以避免单个数据中心故障而导致业务中断。 风险等级 高 关键策略 可根据不同需求,将应用的数据和资源部署在多个位置: 应用多AZ部署:应用应尽可能部署在多个可用区,避免由于单个可用区故障而导致所有业务中断。 应用多Region部署:对于可用性要求高的应用系统,需要考虑多Region部署,避免由于单个Region故障而导致所有业务中断。 在多AZ部署能满足需求的情况下,应优先使用多AZ部署。大多数工作负载的可用性目标都可通过在单个Region内多 AZ 部署来实现,只有工作负载具有极高的可用性要求或者其他业务目标时,才考虑多Region架构。 父主题: RES01 冗余
  • SEC04-01 对网络划分区域 网络的分区是将网络划分为多个部分,以隔离不同敏感性要求的网络流量和资源,从而增加网络的安全性。 风险等级 高 关键策略 通过网络分区,可以实现以下目的: 隔离敏感数据:将敏感数据和应用程序隔离在独立的网络分区中,以减少未经授权访问的风险。 可扩展性:分区和分层可以帮助管理和扩展复杂的网络架构,使其更易于维护和扩展。 限制网络流量:控制不同网络分区之间的通信流量,以确保只有经过授权的流量可以流动。 提高性能和可用性:通过分区网络,可以优化网络性能和可用性,避免网络拥塞和单点故障的影响。 定义每个分区的边界,并按照方便管理和控制的原则为各网络区域分配地址。例如,对于一个Web工作负载,划分Web区、App区、Data区等。最重要的边界是公共网络(互联网)与应用程序之间的边界,这个边界是您的工作负载的第一道防线。华为云的VPC和子网都可以作为每个网络分区的边界。 VPC划分:为VPC指定合适的CIDR范围,以确定VPC的IP地址空间。 子网划分:在VPC中,创建多个子网,并将不同的资源部署在不同的子网中。 相关云服务和工具 虚拟私有云 VPC 父主题: SEC04 网络安全
  • RES06-03 支持亚健康检测 系统内组件有可能完全故障,也有可能处于亚健康状态;亚健康是指系统整体业务未超标,但系统中局部实例业务超标。亚健康更多是个相对概念,相对历史表现的统计,或相对系统整体。因此针对亚健康的检测和判断有所不同。当处于亚健康状态时,系统也需要及时进行隔离或恢复处理,避免对业务造成影响。 风险等级 高 关键策略 亚健康检测通常用于根据亚健康症状来预测系统故障,典型的例子是内存泄漏,内存泄漏往往不会立刻导致系统失效,系统首先会因为Swap Memory不足变得运行缓慢,消耗内存量持续增加,因此通过监控实例内的内存占用率,在超过阈值的情况下及时告警,人工介入迅速恢复,可避免造成业务中断。 典型的亚健康场景有:通信链路丢包/错包、硬盘性能下降、CPU/内存过载等,当应用系统内组件出现亚健康时,可能会导致应用系统对外业务成功率下降。 由于亚健康并非故障,因此针对亚健康的检测一般是针对业务监控指标设置阈值,当指标超过阈值时进行告警和恢复处理。 父主题: RES06 故障检测
  • PERF05-04 大数据场景资源优化 风险等级 中 关键策略 在大数据场景下,可以通过优化资源的使用和分配,提高系统的性能和效率。以下是一些常见的大数据场景资源优化方法: 分布式存储:使用分布式存储系统,如Hadoop HDFS、Apache Cassandra等,将数据分散存储在多个节点上,以提高数据的可靠性和可扩展性。 数据压缩:对于大量的数据,可以采用压缩算法进行压缩,以减少数据的存储空间和传输带宽。 并行计算:使用并行计算框架,如Apache Spark、Apache Flink等,将计算任务分配到多个节点上并行执行,以提高计算速度和效率。 内存优化:通过调整内存分配和使用策略,如使用内存缓存、内存映射等技术,以提高数据处理和计算的速度和效率。 负载均衡:通过负载均衡技术,将数据和计算任务均匀地分配到多个节点上,以避免单个节点过载,提高系统的可用性和性能。 数据分区:将数据按照一定的规则分成多个分区,以便更好地进行数据处理和计算。 网络优化:通过优化网络带宽、延迟等参数,以提高数据传输的速度和效率。 数据清洗和预处理:在进行大数据处理之前,对数据进行清洗和预处理,以提高数据的质量和准确性,减少后续计算的错误率和计算量。 父主题: 资源优化
  • 跨云容灾方案 当重要应用系统已经在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%)
  • SEC06-02 建立安全编码规范 应用安全涉及需求、设计、实现、部署多个环节,实现的安全是应用安全的重要一环。建立安全编码规范有助于团队编写更安全、更高质量的代码,减少甚至规避由于编码错误引入的安全风险。 风险等级 高 关键策略 发布团队常用编程语言的安全编码规范。通用的安全编码规范应包含程序输入校验、程序输出编码、身份验证、访问控制、安全加解密算法、异常处理、IO操作、文件上传、序列化、输出格式化等。 对于在Web应用场景使用的语言如Java、Python,还要考虑安全会话管理、防SQL注入、防跨站脚本攻击XSS、防跨站请求伪造CSRF等编码规范。 对于C/C++语言,要考虑缓冲区溢出漏洞、命令注入、危险函数、内存泄露、指针越界、数组读写越界等安全风险。 对于JavaScript语言,要考虑容易受到XSS攻击的安全风险。 父主题: SEC06 应用安全性
  • 卓越运营支柱简介 在华为公司,卓越运营代表着质量、效率和可持续的卓越客户体验。它帮助改进设计、开发、测试、部署、发布和运维活动,持续实现高质量的交付结果,推动了持续集成和持续交付(CI/CD)落地;同时助力打造确定性运维体系,让研发团队将更多时间用在构建让客户受益的新功能上,减少用于维护和处理突发事件的时间,从而带来运行良好的系统和平衡的工作负载,尤其是卓越的客户体验。卓越运营支柱融合了这些优秀实践,聚焦如何正确地构建软件,高效地运维软件,持续提供卓越的客户体验,包含:组织团队、设计工作负载、大规模运营工作负载和随时间变化改进工作负载的最佳实践。 父主题: 卓越运营支柱
  • OPS01-01 建立持续学习和改进的文化 风险等级 高 关键策略 由于系统的独特性和复杂性,没有放之四海皆准的方案,为了达到卓越运营,需要不断改进这些最佳实践,并建立自己的最佳实践。所以,在所有最佳实践的第一条,就是在您的团队中培养持续学习和改进的文化。 而持续学习和改进需要鼓励团队沟通和共享,例如,在您公司/组织中总结的最佳实践应该得到广泛地传播,对已有事故的分析,应该得到记录,确保相关根因都得到充分理解,尤其重要的是制定有效的标准化流程/自动化工具来降低事故再次发生的可能性和影响,这些流程和自动化工具,也需要广而告之,以向团队解释清楚缘由。 父主题: OPS01 建立持续改进的团队文化和标准化的运维体系
  • OPS04-03 基础设施即代码 基础设施即代码(IaC)是指使用代码而不是手动流程来管控基础设施的能力。 应用程序环境都需要许多基础设施组件,例如操作系统、数据库连接和存储。 开发人员必须定期设置、更新和维护基础设施,以开发、测试和部署应用程序。 手动管理基础设施既耗时又容易出错,尤其是在大规模管理应用程序时。 风险等级 高 关键策略 使用声明式工具:与命令式工具相比,声明式工具是部署和管理 IaC 的更好的整体选择。声明性工具对其定义文件使用更简单的语法,仅定义部署完成后所需的环境状态。命令式工具需定义达到所需最终状态所需的步骤,因此文件可能比声明性文件复杂得多。声明性定义文件还有助于减少维护命令式代码(例如部署脚本)的技术债务,这些技术债务会随着时间的推移而增加。 使用云平台工具和其他经过行业验证、集成到平台中的工具:云平台提供的工具可以使 IaC 的部署变得简单直接。利用这些工具而不是开发自己的解决方案。云平台包含满足您大多数需求的内置功能,并且由平台提供商不断更新,随着平台的发展而变得更加有用。 标准化模块化方案:模块可以使基础设施部署可重复,标准化有助于确保模块的构建能够满足特定目标。建议使用模块来封装复杂的配置或资源组合。此外,在开发新模块时非敏感场景可以适当使用开源模块。 标准化人工步骤:如果存在与部署和维护相关的人工步骤,要尽可能减少这类活动。在运维指南和标准操作程序中,清楚地记录人工步骤,并实现标准化,以确保安全、一致地执行任务。 回收闲置资源:由于配置管理工具及其限制等原因,有时 IaC 工具无法自动删除资源。例如,假设需要从虚拟机迁移到 PaaS 服务,而 IaC 工具没有删除闲置资源的逻辑。如果忘记手动删除这些资源,这些资源可能会成为孤立资源。为了处理这些场景,需要标准化扫描闲置资源并明确删除策略。 相关云服务和工具 资源编排 服务 RFS 父主题: OPS04 自动化构建和部署流程
  • RES08-02 依赖松耦合 系统内组件之间直接访问时,会产生紧耦合关系一个组件的状态变化会对其他组件产生直接影响,从而会导致所有组件的可用性均下降。而采用松耦合架构时,各个组件之间的依赖关系非常弱,它们可以独立地进行修改和扩展,而不影响其他组件;系统更加灵活,易于维护和升级,并且稳定性和可靠性也更强。 风险等级 中 关键策略 组件之间通过消息队列、消息缓存、负载均衡器等交互(即松耦合关系),可一定程度上屏蔽组件的状态变化,防止对其他组件造成影响 相关云服务和工具 弹性负载均衡服务 ELB 分布式缓存服务 DCS 分布式消息服务Kafka版 分布式消息服务RabbitMQ版 分布式消息服务RocketMQ版 事件网格 EG 父主题: RES08 依赖减少与降级
  • 数据持久度 数据持久度是指数据不丢失的概率,即存储在预计周期内不出现数据丢失的概率,可以用于度量一个存储系统的可靠性。其只表示数据是否丢失的概率,不体现数据丢失多少;数据持久度的预计周期,一般按一年进行预计。 影响存储数据持久度的主要因子有:冗余数、磁盘失效率与数据修复时间。其中每多一个冗余,数据持久度通常可增加2~3个9;云上常用的对象存储,一般采用3副本冗余,通常可提供11~12个9的数据持久度。 父主题: 可用性目标定义
  • PERF02-02 容量规划 风险等级 中 关键策略 容量规划指根据业务需求和系统性能,包括用户数量、并发请求量、响应时间要求等,以此规划和配置系统所需的资源。容量规划对于任何组织来说都非常重要,有效的容量规划可以确保有足够的资源来满足预期的需求,同时避免浪费资源。 收集容量数据 收集容量数据有助于将业务目标转化为技术要求,并且对于预测容量至关重要。为了满足工作负载需求,收集容量数据需要包括系统资源消耗数据以及业务关键数据。 资源消耗数据:包括CPU、内存、磁盘空间、网络带宽等,以便确定系统的瓶颈所在。 业务关键数据:包括用户数量、用户行为模式、业务类型、业务时段等,以便确定业务需求对工作负载的影响。 预测需求 有效的容量规划需要为未来的业务需求做好准备,通常使用工作负载的数据来预测未来需求。预测需求是一个复杂的过程,涉及到多种因素,包括市场趋势、消费者行为、竞争环境等。通过多种方法的组合,如历史数据分析、资源分析、趋势分析等,以此作为预测需求的基础,并结合人工智能机器学习算法,以便更准确地预测未来的需求,评估工作负载的资源需求。 使预测与工作负载目标保持一致 为了确保预测与工作负载目标保持一致,需要定期对预测进行评估,比较实际结果与预测结果,根据需要对容量预测模型进行调整。例如新的应用或服务添加到系统中,那么容量预测模型就需要考虑这些新的容量需求。预测与工作负载目标的一致性,可确保充分预配资源,防止资源浪费或工作负载过载。 确定资源需求 根据需求和预测分析的结果,进行容量评估和规划。确定系统所需的计算资源、存储资源和网络带宽等资源,以满足系统的性能要求。 计算资源:根据预测的需求,计算所需的CPU、GPU、内存等计算资源,并根据实际情况进行选择和配置。 存储资源:根据预测的需求,计算所需的存储空间,例如需要存储大量的数据,可能需要选择分布式存储系统。 网络带宽:根据预测的需求,计算所需的网络带宽,例如需要进行大规模的数据传输或者实时的网络通信,可能需要选择高速网络 了解资源限制 容量规划时了解和合理使用资源限制非常重要,常见的资源限制包括进程、线程、CPU使用率、内存使用量、磁盘空间等。资源限制的主要目的是保证系统的稳定性,防止某些进程或应用程序占用过多的系统资源,导致其他进程或应用程序无法正常运行,甚至导致系统崩溃。 父主题: 性能规划
  • RabbitMQ性能优化 保持尽可能短的队列长度 太多的消息堆积在队列中会造成内存负载过高,为了释放内存,RabbitMQ 会把消息转存到磁盘,转存过程会耗费大量时间,造成消息处理速度下降或直接阻塞生产流程。因此队列中堆积过多的消息容易对 broker 产生负面效应。除此之外,如果节点崩溃后重启,过多的数据会使得重建索引需要消耗大量时间,集群模式下的节点间同步数据也会非常耗时。 使用惰性队列提升稳定性 惰性队列(lazy queues)是 RabbitMQ 3.6 之后新增的特性。惰性队列的消息会自动存储到磁盘,因此减少了内存的使用率,但是会增加I/O开销,影响吞吐量。使用惰性队列能够更好的把控性能,并且使得集群更加的稳定。和非惰性队列不同,消息不会积累在内存中然后等到内存不足再一次性刷到磁盘,造成队列性能不稳定。如果你需要一次发送大量消息,或者消费速度长时间赶不上生产速度,那么我们推荐使用惰性队列。 请注意,以下情况不建议使用惰性队列: a. 追求高性能 b. 队列无明显积压 c. 队列设置了 max-length 策略 通过TTL或者max-length限制队列长度 可以通过设置消息 TTL、队列 TTL 和 max-length 来限制队列长度。如果队列长度达到 max-length 值,队列头部的消息会被丢弃或进入死信队列。消息的生存时间到期也会被丢弃或者进入死信队列。 关注队列个数 在 RabbitMQ 中,一条队列是由一个线程处理的。利用服务器的多核特性和分布式特性建立多条队列,将不同队列分布到不同 CPU 或不同节点,以此来获取高吞吐量。同时需要注意,过多的队列可能会对 CPU 和内存造成较高的负担,RabbitMQ management 接口的响应速度也会受到影响。 自动为临时队列分配队列名 如果使用临时队列(包括排他队列、自动删除队列、非持久化队列),可以调用不带参数的接口queueDeclare()让 RabbitMQ 自动为你分配一个队列名。 根据需要使用自动删除队列 如果不再使用的队列资源长期保存在服务端,可能对 RabbitMQ 性能造成影响,可以通过三种方法自动地删除队列:为队列设置 TTL 属性、为队列设置 auto-delete 属性、为队列设置 exclusive 属性。 控制优先级队列的使用 每一个优先级会在Erlang VM中使用一个内部队列,这会消耗一定的资源。大多数场景下,使用最多5个优先级就够了。 如何确定消息大小 如何选择发往RabbitMQ的消息长度是一个常见问题。记住,每秒钟发送的消息数比消息大小更容易达到瓶颈。虽然发送大消息不是一个好的做法,但是发送多条小的消息也可能不是一个好的选择。更好的方法是生产者把多条小消息封装成一条大消息,然后由消费者来拆开处理。然而,如果一条大消息封装了太多的子消息,处理速度将会受到影响。如果一条子消息处理失败,整个大消息都需要重传。因此,当选择消息大小时,需要考虑带宽和业务架构。 连接和通道 每条连接(connection)大约占用 100KB 内存(启动 TLS 则会占用更多)。数以千计的连接会对 RabbitMQ 服务端造成较大的负担,极端情况下会因为 OOM 而崩溃。AMQP 协议可以在单条 TCP 连接上进行多路复用。建议一个进程只创建一条 TCP 连接,每个线程复用这条连接创建各自的通道(channel)。连接应该保持长生命周期,因为 AMQP 建立连接需要一定的开销(至少 7 个 TCP 包)。相反,通道则允许较为频繁的开启和关闭,但在发布消息时复用通道也是一个好的习惯,不要每发送一条消息都开启一个新的通道。同时需要注意如下几点: 多线程不要共享通道,因为你很难实现线程安全。 不要频繁的开启或关闭连接和通道,否则会造成更高的延迟。 生产者和消费者使用独立的连接,来提高吞吐量。 大量的连接和通道可能会影响管理接口的性能,造成请求超时。 消息确认 消费者使用确认(Acknowledgment)机制避免消息因为连接问题而丢失,客户端可以在收到消息或者处理完消息后回给服务端一个 ack 消息。消费者确认机制会对性能造成影响,如果单纯追求高吞吐量,应该关闭手动确认功能。如果消息对于业务来说比较重要,那么应该在消息被处理完之后才确认该条消息。生产者使用 Confirm 机制来实现类似的功能,当服务端收到生产者发来的消息,它会返回一个 ack 消息,以此来实现最少一次(at-least-once)的投递语义。注意,Confirm 机制同样会影响性能。 控制未确认消息个数 所有未确认的消息都会暂存在内存中,太多的未确认消息可能造成服务 OOM。为了限制未确认消息的规模,你可以在消费者端开启prefetch功能来限制消息拉取上限。 持久化资源 为了防止因为服务宕机、重启、硬件问题等原因造成的消息丢失,请使用持久化队列和消息。持久化消息涉及到写磁盘操作,如果使用了惰性队列也会将所有消息写入磁盘,包括非持久化消息。如果单纯追求高性能,可以使用非持久化消息。 开启TLS连接 你可以在 AMQP 之上使用 TLS 连接 RabbitMQ。因为数据需要加解密,所以 TLS 对性能有一定的影响。 如何正确选择 QoS 值 如果只有单个或少量消费者,并且消费速度很快,那么建议 QoS 设置的大一点,使得客户端保持忙碌状态。 如果客户端的消息处理速度和带宽保持不变,简单的用公式RTT / 单条消息处理时间就可以估算出应该设置多大的 QoS 值。 如果消费者数量较多并且消息处理速度较快,那么建议 QoS 设置的小一点。 如果消费者数量较多并且消息处理速度较慢,那么建议 QoS 设置为 1,让消息平均的分发到所有消费者。 请注意,如果客户端使用拉模式或者开启了自动确认(auto-ack),预拉取功能将会失效。一个常见的错误是不限制预拉取消息个数,所有消息全部发送给一个消费者,造成消费者 OOM 崩溃和消息重复投递。更多关于 RabbitMQ 预拉取功能的信息可以参考这里。 观测性能指标 指标ID 指标名称 指标说明 channels 通道数 该指标用于统计RabbitMQ实例中的总通道数。 queues 队列数 该指标用于统计RabbitMQ实例中的总队列数。 connections 连接数 该指标用于统计RabbitMQ实例中的总连接数。 connections_usage 连接数使用率 当前节点实际连接数占最大连接数比率。 rabbitmq_disk_usage 磁盘容量使用率 统计Rabbitmq节点虚拟机的磁盘容量使用率。 rabbitmq_cpu_usage CPU使用率 统计Rabbitmq节点虚拟机的CPU使用率。 rabbitmq_memory_usage 内存使用率 统计Rabbitmq节点虚拟机的内存使用率。 rabbitmq_cpu_core_load CPU核均负载 统计Rabbitmq节点虚拟机CPU每个核的平均负载。 全量指标可参考RabbitMQ支持的监控指标。 父主题: 消息队列性能优化
  • SEC08-04 数据收集合规性 数据收集合规性是指数据控制者在收集个人数据时需遵守相关的法律法规和隐私保护准则,确保数据收集活动符合法律规定并尊重数据主体的权利。 风险等级 高 关键策略 收集个人数据必须获得数据主体授权。 收集敏感个人数据必须获得数据主体明示同意。 个人数据收集范围、使用目的、处理方式不得超出隐私声明,且遵循最小化原则。 收集到同意之后也需要向数据主体提供撤销或修改同意的途径。 父主题: SEC08 数据隐私保护
  • PERF04-05 应用性能数据采集 风险等级 中 关键策略 应用程序的性能数据(吞吐量、延迟和完成时间),通常需要通过代码采集,例如嵌入代码片段或将工具集成到应用程序代码中。通过应用的性能数据,可以识别性能瓶颈、评估系统行为、识别可用性风险、规划容量等指标。 常用应用性能监控策略有: APM 工具:可用使用云上APM 工具或者开源的APM工具和分析性能数据(指标、日志、调研链) 使用基于日志调用链框架:这些框架具备日志生成、日志格式化、日志上下文关联分析登能力。 通过框架引入到代码库中,可以在运行时采集相关的性能数据。 自定义检测:仅当平台指标不足时,才建议开发人员可以添加自定义代码采集独有的性能指标。 使用业界可观测的标准。请考虑使用围绕业界标准构建的工具,例如OpenTelemetry。 建议:使用分布式的调用链技术,可以识别多个服务和组件之间请求链路;通过收集调用链数据实现数据流端到端的分析,产品阻塞瓶颈点或者效率低下的请求片段,从而进行针对性的优化。 相关云服务和工具 应用运维管理 AOM 应用性能管理 APM 云日志服务LTS 父主题: 性能数据采集
  • COST05-01 分析业务趋势和优化收益 风险等级 高 关键策略 云成本是一个综合工程,也是一个定期审核、回顾和执行的流程,除了考虑优化带来的收益以外,还需要考虑相关成本,例如,因为优化带来的人员和时间成本。 为了降低整体成本,优化的工作量必须与潜在的节省额成比例。优化可以从应用占成本的比例考虑。 例如,与占总成本 5% 的应用相比,应更经常、更彻底地审核占总成本 50% 的应用。优化时要考虑的另一个因素是实施更改的工作量。如果测试和验证变更的成本很高,优化的频率应该降低。您应该反方向考虑是否可以通过替身自动化测试和验证能力,从而进一步降低人力成本。 此外,由于成本优化带来可能带来的资源冗余度的下降,故而也应该综合考虑业务的趋势。 比如一个快速增长的业务组织更多地可能会偏向于提升业务的速度,而设计一个比较宽松的云成本优化策略,而稳定的业务组织则可以以成本效率为主要考量,设计比较严格的云成本优化策略。如果应用服务于特定的地理位置或市场领域,并且您已预测出该领域会出现的对云业务使用量的降低,则提高优化频率可能会更有利于节省成本。 父主题: COST05 优化指定策略和目标
  • 问题和检查项 在迈向卓越运营的过程中,推荐使用如下问题寻找自身可以改进的点,并参考检查项/最佳实践进行改进,以下所有的检查项,也是最佳实践建议,将在下一章节进行详细描述。 问题 检查项/最佳实践 OPS01 您是否已经建立持续改进的团队文化和标准化运维体系? 1. 建立持续学习和改进的文化 2. 规划标准化的运维组织 3. 规划标准化的运维流程与运维工具 OPS02 您是否通过CI/CD实现高效的频繁可逆的小规模变更? 1. 进行需求管理与迭代开发 2. 关联源代码版本和部署的应用版本,使用代码质量最佳实践 OPS03 你是否有完备的测试验证体系? 1. 推行开发者测试 2. 使用多个环境进行集成测试,构建和生产环境相同的预生产环境 3. 性能压测 4. 生产环境拔测 5. 混沌测试和演练 OPS04 自动化构建和部署流程是否完备? 1. 有效落地持续集成 2. 采用持续部署模型 3. 基础设施即代码 4. 自动化工程运维任务 OPS05 是否有运维准备和变更管理体系? 1. 进行生产准备度评审 2. 进行变更风控 3. 定义变更流程 OPS06 是否建立了完备的可观测体系? 1.建立可观测体系 2.定义可观测对象 3.制定和实施可观测性指标 4. 规范化应用日志 5. 实施依赖项遥测 6. 实施分布式跟踪 7. 通过可观测性指标引入自动化措施 OPS07 是否进行故障分析与管理? 1. 创建可操作的告警 2. 创新监控看板 3. 支持事件管理 4. 支持故障恢复流程 OPS08 是否有运营状态度量和持续改进机制? 1. 使用度量指标衡量运营目标 2. 进行事故复盘和改进 3. 知识管理 父主题: 卓越运营支柱
  • PERF05-01 设计优化 风险等级 中 关键策略 快速通道模式 通过减少支配性工作量负载的处理量,只剩下必要的部分,来改进响应的时间。一个软件可以有多项功能,只有几个是被经常使用的,经常使用的功能构成支配性工作量负载。快速通道模式减少这些功能的处理量,或简化其处理过程。快速通道通过简化执行路径的方式来实现,简化路径即是快速通道。 快速通道的前提是识别出支配性工作量,可以根据某项功能的使用频率来选择。常见的快速通道如,页面快速导航键、DB的索引等。 重要事情优先 把资源优先用于或者集中在重要的任务处理上,确保重要任务的完成;如果不能在可用的时间内完成所有事情,被忽略的是最不重要的任务。主要用于处理瞬时突发负载导致超出系统处理的容量的情况,一般给重要任务赋予高优先级,最重要的行为优先得到处理。只适用于暂时超载的情况,如果超载不是暂时的,需要减少处理量,或者升级系统。如在性能过载场景下,按照功能优先级进行熔断间接,保证主要功能可用。 聚合 将大多数场合在一起使用的功能组合在一起,以减少调用的交互次数。 本模式要求将组合调用居多的一些子功能,合并起来使用。聚合这个模式要求尽量将相关或紧耦合的功能放到一个对象中,使用本地接口,避免在外部接口或重开销的接口(如CORBA接口),呈现小粒度对象。聚合模式使用更粗粒度的对象,经常被访问的数据应当组合成一个聚合物,以消除对少量信息的频繁请求。如,帐户类CustAcct可以提供访问函数getName(),getAddress(),getZip(),如果经常用到该类的任务是创建邮件标签,可以使用一个新函数genMailLableInfo(),以便调用一次取得所有信息,减少交互次数。 批处理 把经常性的服务请求合并到一起,节省请求的初始化、传输、终止的处理开销。当请求的任务初始化、传输、终止的开销较大时,系统的额外开销可能超过真正的处理时间。通过将请求合并为批处理,开销处理为一批请求所分摊,不再是单独分别执行一次,从而提高处理效率。如DB的批量保存、Redis的popeline方式都是常用的批处理操作 批处理过程模型 替代路由(Bypass) 从空间上分散对高使用率对象的请求,将请求分散到其他对象或者对象的其他位置,以降低争用延时.类似于通过一条替代路线,绕开交通瓶颈,到达目的地。具体方案一是对目标对象进行空间划分,划分成小粒度对象,操作分散到不同物理位置;二是增加单独线程,每个线程更新自身的数据区域。 比如进程必须与下游单个进程协作时,只有一个下游进程,在高负载的情况下跟不上,造成交通堵塞。可以使用多个下游进程,每个进程只更新其自身的数据区域。 弹性时间 在时间上分散对高使用率对象的要求,分散到不同的时间段上,减少对这些对象的争用延时。 很多请求在某一时刻同时发出,导致要求返回的结果激增,响应缓慢。而在其他时间,很少或者没有请求。当处理请求以特定频率出现,或者在一天中的某个特定时间出现,就会产生这种情况。识别那些定期的,以特定间隔反复处理的功能,然后修改他们的处理时间,在给定时间范围内,随机分散到不同时间,以解决这个问题。 空间换时间 通过使用更多的存储空间,以节省执行时间。 空间换时间包括简单地预先存储结果,或者存储经常被访问的数据以方便计算;另一种空间换时间则包括选择特定的算法,如HASH算法就是一种典型的空间换时间的算法。另一种是OLAP技术,在此技术中,数据被按照一定的层级关系预先汇总,这样会大辐降低后续查询的耗时。 比如在慢SQL优化的时候,常用收段是识别频繁访问的字段并且设置索引,通过索引来缩短访问时延。 处理有效负载 识别出必须要处理的数据,排除对其他数据的重复处理。在一项处理数据的操作中,并非所有的处理数据都是必须处理的,可以通过分析,识别出必须处理的数据。可以有多种方式,来减轻负载的方法,如增量处理、变化通知等。 增量处理 变化通知 有效减负的反模式是“负载过重”,是在处理过程中,处理了大量不必要的处理数据,大辐增加了处理负载。出现这种情况的原因,有时为了简化处理过程,有时候是没有做必要性分析。可以通过对待处理数据进行分析,筛选出必须处理的数据,重新设计处理方案。 串行同步衔接 给线程/进程间的串行衔接设计紧密的衔接和同步措施,减少同步等待延时。 将一个串行处理通过划分多个线程并行处理,但各线程的处理又有一定的顺序和同步关系,需要设计合适的衔接和同步措施。同步方式可以是定时查询,也可以选择消息同步,或Event关联,选择的原则是衔接时间缝隙满足性能目标要求。 这个方法最佳的效果只是让整体性能略等于处理环节中最差的一个环境的性能(忽略线程切换及信号量等切换时间)。 父主题: 设计优化
  • SEC01-04 分隔工作负载 分隔工作负载是一种架构上进行分治的思想,通过将整个系统的工作负载分割成更小的部分,每个部分独立运行和管理,从而提高系统的安全性和可维护性。 风险等级 高 关键策略 一个企业特别是大型企业往往有多个不同类型(如生产环境、开发环境、测试环境)或不同组织单元(OU)下的工作负载,多个组织单元之间或多个工作负载之间要进行隔离。 分隔工作负载在云环境中是非常重要的。从安全治理角度,主要基于以下几个理由: 安全性:分隔工作负载可以降低潜在的安全风险。通过将不同的工作负载隔离在独立的环境中,可以减少一种工作负载受到攻击或故障时对其他工作负载的影响。 合规性:在一些行业和法规中,对数据隔离和访问控制有严格要求。通过分隔工作负载,可以更容易地满足合规性要求,保护敏感数据和确保数据隐私。 管理性:通过分隔工作负载,可以更轻松地管理和维护系统。每个工作负载都有独立的配置和管理需求,分隔可以简化管理流程并降低操作风险。 灵活性:分隔工作负载可以提供更大的灵活性和可扩展性。组织可以根据需要调整和扩展不同工作负载的资源,而不会影响其他部分。 华为云提供了以下几种工作负载的分隔机制: 通过多VPC分隔工作负载:将不同的工作负载部署在不同的VPC中,每个VPC具有独立的网络空间,实现网络隔离。 通过企业项目分隔工作负载:企业项目是云服务资源的逻辑集合,将工作负载部署在不同的企业项目中,实现资源的分组管理和权限控制。 通过多账号分隔工作负载:将不同的工作负载部署在不同的华为云账号中,每个账号具有独立的身份验证、访问控制和资源隔离。这种方法可以实现更严格的隔离和安全性。为每个账号分配最小必要权限,避免权限过度赋予。这有助于减少潜在的安全风险和权限滥用。针对需要跨账号访问的情况,使用适当的身份验证和授权机制,如跨账号委托、资源共享等。 多者结合:同时使用以上的两种或多种方式分隔工作负载。 相关云服务和工具 虚拟私有云 VPC 企业项目 EPS 统一身份认证服务 IAM 华为云Landing Zone解决方案 组织 Organizations 资源治理中心 RGC 资源访问管理 RAM 父主题: SEC01 云安全 治理策略
  • 软件开发生产线(CodeArts) 软件开发生产线(CodeArts)是一站式、全流程、安全可信的DevSecOps平台,开箱即用,内置华为多年研发最佳实践,助力效能倍增和数字化转型。 CodeArts由以下几个主要服务构成: 需求管理:提供需求管理与团队协作服务,内置多种开箱即用的场景化需求模型和对象类型(需求/缺陷/任务等),可支撑IPD、DevOps、精益看板等多种研发模式,还包含跨项目协同、基线与变更管理、自定义报表、Wiki在线协作、文档管理等功能。 代码托管:基于Git提供分布式代码管理和协同开发能力,包括成员管理、权限控制、代码托管、代码检查、代码审核、代码追溯、持续集成等功能,助力不同规模企业的研发质量和效率提升。 流水线:提供可视化、可定制的持续交付流水线服务,实现缩短交付周期和提升交付质量的效果。 代码检查:为用户提供代码风格、通用质量与网络安全风险等丰富的检查能力,提供全面质量报告、便捷的问题闭环处理帮助企业有效管控代码质量,助力企业成功。 编译构建:基于云端大规模分布式加速,为客户提供高速、低成本、配置简单的混合语言构建能力,帮助客户缩短构建时间,提升构建效率。 部署:支持主机、容器等多种部署形态,部署能力覆盖Tomcat、Springboot等多种语言和技术栈。基于其对部署功能的插件化封装和编排能力,帮助您实现软件的快速、高效发布。 测试计划:覆盖测试计划、测试设计、测试用例、测试执行和测试评估等全流程,旨在帮助企业协同、高效、可信的开展测试活动,保障产品高质量上市。 制品仓库:用于管理源代码编译后的构建产物,支持Maven、Npm等常见制品包类型。可以与本地构建工具和云上的持续集成、持续部署无缝对接,同时支持制品包版本管理、细粒度权限控制、安全扫描等重要功能,实现软件包生命周期管理,提升发布质量和效率。 CodeArts IDE Online:基于云计算的轻量级WebIDE,通过浏览器即可实现环境快速获取和环境访问,完成编码、构建、调试、运行、访问代码仓库和命令执行等工作,支持第三方业务集成,支持插件扩展并提供独立插件市场。 开源镜像站:由华为云提供的开源组件、开源操作系统及开源DevOps工具镜像站,目前已提供Maven、NPM、NuGet、CentOS、Ubuntu、Debian等镜像下载服务。 父主题: 卓越运营云服务介绍
  • RES02-03 定期进行备份数据恢复 通过定期恢复测试,可以验证备份数据的完整性与恢复处理过程是否可用,且数据丢失时间以及恢复时间符合数据的RPO与RTO指标要求。 风险等级 高 关键策略 定期执行备份数据恢复,以验证备份的完整性。 为了避免备份恢复对生产业务造成影响,可以构建一个测试环境,并使用已有的备份数据进行恢复处理。 华为云云服务提供了手工恢复功能,用户可定期执行恢复操作,以进行恢复测试。 相关云服务和工具 云备份 CBR 云数据库 RDS 分布式缓存服务 DCS 父主题: RES02 备份
  • COST04-02 主动监控成本 风险等级 中 关键策略 不要只在出账后或收到异常通知时再查看成本和用量,应使用工具定期检查成本。定期监控和主动分析成本,有助于您及时识别成本趋势,避免异常发生。 相关服务和工具 创建预算提醒,将预算设置为提醒阈值,在预测或实际成本超出预算时,及时获取超预算通知,防止潜在成本超支。 创建成本监控,华为云成本中心的成本监控引入机器学习,对客户历史消费数据进行建模,对于不符合历史数据模型的成本增长,识别为异常成本记录,同时提供异常增长的Top潜在原因。客户可设置监控提醒,定期获取影响成本高的异常记录提醒,进而快速做出反应,维持预期的成本支出。 在费用中心设置可用额度监控,在可用额度余额低于阈值时预警,避免客户额度耗尽,业务中断。 使用资源包监控,在资源包剩余不足预警,避免资源包用尽自动转为按需计费。 使用成本分析预置报告或创建常用的成本分析报告,定期快速了解成本分布和趋势。 父主题: COST04 持续进行成本治理
  • RES03-04 支持容灾管理 提供容灾管理功能,实现容灾状态及RPO监控,及异常场景下的业务切换。 风险等级 高 关键策略 实时监控容灾状态,了解容灾运行状态。 支持应用级数据校验,比较AZ间数据同步差异,监控及PO指标。 典型确定性故障场景下自动容灾或切换,无需人工接入,业务不受影响,满足RPO/RTO指标。 典型亚健康故障场景,支持业务降级或主动切换,业务不持续受损。 相关云服务和工具 多活高可用服务 MAS 父主题: RES03 跨AZ容灾
  • OPS06-04 规范化应用日志 日志是随时间推移发生的不可变、记录时间戳的离散事件。系统需要记录关键事件和故障,以帮助诊断问题和解决故障。 风险等级 高 关键策略 对于一个系统来说,日志是非常重要的。它可以记录在系统中发生的一切,包括成功的操作、错误的操作、警告信息等等。因此,日志记录是可观测性设计中最基本的需求之一。通过将事件和错误信息记录到日志文件或数据库中,可以方便地进行故障排除和问题诊断。但是,仅仅记录日志并不足够,还需要对日志进行有效的管理和分析。如果日志太多,将会成为一个负担,因为它们需要占用存储空间,并且需要花费很长时间来查找有用的信息。因此,需要对日志进行过滤和归档,以便更好地管理它们。 设计建议 可参考LTS最佳实践 父主题: OPS06 可观测性体系
  • RES03-01 集群跨AZ部署 应用内所有组件均采用跨AZ容灾部署,以避免单AZ故障时业务中断。 风险等级 高 关键策略 云服务实例具备跨AZ高可用实例时,优先使用云服务实例自身的跨AZ高可用实例。 云服务实例只支持发放单AZ实例,不支持跨AZ高可用实例时,需要借助其他云服务或应用层实现跨AZ容灾;以ECS为例: 对于无状态ECS实例,可利用AS弹性伸缩服务的跨AZ伸缩能力,或ELB跨AZ负载均衡能力,实现跨AZ高可用,在一个可用区故障时能自动快速切换。 对于有状态ECS实例,或BMS实例,建议从应用层实现跨AZ容灾,支持跨AZ自动切换或通过容灾管理工具实现自动化容灾切换,减少灾难发生时的人工操作。 对于已部署的应用系统改造为跨AZ实例的实施步骤: 确定应用系统的关键组件;所谓关键组件是指一旦故障,会导致整个应用系统或其中的关键功能受损。 针对关键组件,检查其跨AZ高可用能力,即在一个AZ故障的情况下,是否能自动故障转移到另外一个AZ,进行业务恢复。 针对未支持跨AZ高可用的关键组件,可进行如下优化处理: 若云服务实例支持跨AZ高可用实例且支持由单AZ高可用实例改造为跨AZ高可用实例,如RDS、DDS、DCS实例,则直接原地由单AZ实例改造为跨AZ实例; 若云服务实例支持跨AZ高可用实例但不支持由单AZ高可用实例改造为跨AZ高可用实例,如独享ELB、CCE集群、DMS、OBS桶等,则需要新申请跨AZ高可用实例替换原来的单AZ高可用实例。 若云服务实例为单节点实例,如ECS,则通过申请多个AZ的多个实例承载相同业务,并利用跨AZ的ELB实现跨AZ的负载均衡和自动故障切换,或由应用层实现跨AZ多实例的自动故障切换能力,来实现跨AZ高可用。 相关云服务和工具 华为云大部分云服务支持创建多可用区实例,可实现在一个可用区故障时能自动快速切换,不影响实例对外提供服务,如 ELB负载均衡 、AS弹性伸缩、CCE容器集群、DCS实例、DMS消息服务、RDS数据库、 GaussDB数据库 等。 父主题: RES03 跨AZ容灾
  • PERF05 性能优化 性能优化工作中,需警惕“过早优化”的问题。我们的基本指导策略还是首先让系统运行起来,再考虑怎么让它变得更快。一般只有在我们证实某部分代码的确存在一个性能瓶颈的时候,才应进行优化。除非用专门的工具分析瓶颈,否则很有可能是在浪费自己的时间。另外,性能优化的隐含代价会使我们的代码变得难于理解和维护,这一点也是需要权衡和关注的。 设计优化 算法优化 资源优化 父主题: 性能效率支柱
共100000条