租户业务架构韧性提升 保障上云用云稳定可靠

举报
华为云确定性运维 发表于 2024/09/13 17:51:18 2024/09/13
【摘要】 本文围绕大客户业务架构韧性展开,聚焦 CRE(CRE:Customer Reliability Engineering ,客户稳定性工程师)团队通过高可用架构部署、弹性扩缩容、性能过载保护、故障可逃生、爆炸半径可控制等方式提升业务 SLA,以确定性方案解决不确定性风险,保障客户云上业务稳定可靠。

来源:华为云确定性运维专刊(第五期)

作者:晋彪

      随着华为云的快速发展以及企业深度上云和用云,客户云上系统架构面临着系统可用性差、监控能力不足、故障恢复慢、业务运行风险未知等诸多挑战。面对基础设施和软件不可知、过载异常等不确定问题,华为云CRE团队探索出业务架构韧性的关键技术,通过高可用架构部署、弹性扩缩容、性能过载保护、端到端全链路快速逃生、爆炸半径控制等方式提升业务SLA,切实保障客户上云,用云稳定可靠。

      1、租户架构高可用

      在不同的发展阶段,租户会根据成本以及环境属性对自身的业务架构进行不断迭代。衡量双活架构的3个关键指标为可应对的故障半径、系统恢复的时间、灾难发生时允许丢失的数据量。不同级别的可靠性架构,对成本的要求也是不同的,公有云客户需要基于业务发展现状,设计匹配自身业务的高可用架构模式。当前主流的租户架构形态演进态势为:①单AZ集群部署架构→②跨AZ高可用架构→③跨AZ双集群架构→④跨AZ双活架构→⑤两地三中心多活部署。

4.PNG

      租户的高可用业务架构能够防范大部分硬件及软件故障,租户业务可用性可达到99.99%。在华为云,大部分客户使用②跨AZ高可用架构,部分大型互联网客户使用跨③跨AZ多集群架构/④AZ双活架构/⑤跨region双活等部署模式。

      2、弹性伸缩

      公有云租户均有严格的成本管理要求,对系统的冗余容量需要做精准控制,不允许大量闲置资源存在。如若发生大型AZ级故障,双活切换后极可能引入容量和性能问题,而极限弹性扩缩容却能弥补容量性能风险。

      弹性伸缩根据客户的业务负载及策略,动态地增加或减少实例,从而实现云资源的最优使用,性能与成本的最优化。

      弹性伸缩有两种实现方式:①自动伸缩,提前配置若干规则,当规则满足时,自动执行规则中定义的伸缩策略;②手动伸缩,手动在界面上改变实例个数。
弹性伸缩支持三种策略:告警、定时、周期。

      ① 告警策略:配置CPU/内存/磁盘/网络多个维度监控告警指标,随时根据业务负载有序伸缩。适用于业务负荷变化无规律场景。

      ② 定时伸缩:定时伸缩计划精确至秒级,适用于每天有明确的波峰波谷,或者有定时负荷突变场景。

      ③ 周期伸缩:按天/按周/按月设定伸缩计划,适用于业务负荷波峰波谷存在较长周期的规律变化场景。

      弹性伸缩的两种模式:①垂直伸缩,升级配置/降低配置;②水平伸缩:增加节点/减少节点。

      弹性伸缩场景:EIP带宽弹性、ELB后端节点伸缩、CCE工作负载伸缩、AS弹性伸缩ECS、高阶服务集群弹性伸缩节点数等。

      弹性调度能力:管理,调度控制,规则编排;采集,监控指标收集,AOM/APM/CES;调度,容量/性能评估,弹性调度。

      1)容器弹性扩缩容实践-容器弹性伸缩

      【检测】检测条件:CPU/Mem、自定义指标、定时触发器、AI 触发器。

     【计算】每个扩缩容条件设置阈值,突破持续周期;弹性扩容:取组合条件的或结果,如:CPU升至达80%或内存升至85%;弹性缩容:取组合条件的与结果,如:CPU降至50%,且内存降至50%。

      【决策】控制扩缩容步长,即触发条件后,单次扩容的节点或pod数量。

      【执行】扩缩容要启用优雅上下线,确保业务无感知。

      2)故障场景下触发容器弹性扩缩容样例

      某租户的容器化部署方案为双AZ双集群部署,即AZ1一套CCE集群,AZ2一套CCE集群,容器之上部署了一个调度系统。新建连接从网络接入层均分至2个AZ。假设AZ1发生批量故障,AZ1-CCE集群node-4/ node-5发生故障,流量均分至AZ1+AZ2的其他正常node节点的pod上。CCE检测到双CCE集群的pod负荷上升,触发扩容2个node,并且均分于2个集群,由于AZ1故障,AZ1的node扩容失败,AZ2的node扩容成功。调度系统检测到2个集群的pod负荷仍然较高,继续触发扩容2个node,仍然均分于2个集群,此时继续AZ1扩容失败,AZ2扩容成功。连续2个扩容步长后,业务流量3:7分布于两个AZ,流量由CCE的上层调度系统控制分发,最终达到AZ1发生故障,流量通过弹性伸缩的方式转移到了AZ2。

      3)其他扩容能力分析

      ①  使用弹性伸缩组(AS)实现集群节点的弹性伸缩

      由于扩容过程中AS需要生成新的虚拟机实例,一般比较耗时(分钟级),适合流量趋势可预知的(如每天流量波峰波谷周期性弹缩)情况下的弹缩。

      ● 动态告警伸缩:CPU/内存/磁盘/网络多个维度监控告警指标,随时根据业务负载有序伸缩。

      ●  定时伸缩:精确至级定时伸缩秒计划。

      ●  周期伸缩:按天/按周/按月设定伸缩计划。

      ● CCE容器服务配置HPA,满足按需弹性。

      ②  公网带宽弹缩:ELB可以绑定弹性IP(EIP),基于弹性IP实现带宽的弹性伸缩,华为云支持实时修改EIP的带宽规格。

      ③  ELB规格弹性伸缩:ELB自身弹性伸缩通过变更ELB规格来实现。

      ④  DCS服务支持下面几种方式弹缩:

      副本扩缩:在主备部署、读写分离部署、Cluster部署模式下,均支持副本实例的扩缩。

      分片扩缩:在Proxy集群、Cluster集群部署模式下,支持分片实例数的弹性伸缩。

      ⑤  DMS(Kafka)服务支持下面几种方式弹缩:

       ● Broker实例扩容:DMS支持Broker实例扩容,但不支持缩容。

       ● Broker实例存储空间扩容:DMS服务支持Broker节点存储空间扩容,不支持缩容。

       ● 服务规格变更:可更改服务规格,支持升配或降配。

      ⑥  RDS服务支持下面的弹缩方式:

      ● 只读实例弹缩:RDS支持主从和读写分离,只读实例支持弹性伸缩。

      ● 数据库实例规格变更:支持实例节点的规格变更,如CPU升降配、内存升降配、磁盘升降配。

      ● 存储空间扩容:支持数据库存储空间自动扩容。

      3、性能过载保护

      实现目标:

      ①  可感知:可以通过监控系统查看全系统的负载情况,过载的时候有告警信息,找到哪些压力源流量异常。

      ②  压不死:服务流量超过性能规格值后,可以拒绝过载流量,保证本服务在大流量下不崩溃。先要确保压不死,把处理不了的流量堵在系统外。

      ③ 可干预:可以通过租户维度、功能维度、资源池/集群维度快速识别异常流量,具体包括各维度的Top流量和突变流量,并且支持对异常流进行手动或自动的干预。

      ④自愈恢复:服务压力流量恢复后,本服务功能可在快速自动恢复的问题。

      关键技术:

      ①过载限流:过载限流(ShedLoad)是通过对并发访问和请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统的可用。一旦达到限制速率就可以拒绝服务请求,一般通过客户端限流或服务端限流方式达成目的。

      ②过载降级:在业务发生性能过载时,对非核心业务做流控处理,保障核心业务资源充足。

      ③过载熔断:过载熔断即在服务性能过载时,为避免雪崩效应,采用中断服务的方式,优先恢复服务状态。当依赖故障时自动熔断,避免故障扩散,更多采用过载熔断。

      4、故障可逃生,爆炸半径可控制

      任何故障场景必须具备三板斧能力,即故障后直接绕开定位、直接启动预案恢复、缩短恢复时长来提升业务SLA。租户业务全链路底线故障场景可逃生,重点防范租户业务流上局部模块故障进而影响整体链路,导致整体业务宕机。

      链路上全部模块需要具备以下故障逃生能力:

      ①故障逃生能力:通常使用假设法,假设链路上各个模块发生了不可快速修复的故障,应该通过应急预案快速恢复,而不是现场修复。

      ②业务冲击导致的爆炸半径:从性能、隔离变化角度考虑将应用程序拆分。

      ③故障恢复需求:更短的业务中断时间,更低的人员技能要求,更确定性的操作处理手段。

      ④典型恢复手段:构建三板斧能力,提升应急预案价值,使其成为快速恢复的基石。

      ⑤应急预案:适配业务情况,量身定制应急流程;基于业务恢复目标,建立联合应急团队来提升快速响应能力;通过构建智能化应急恢复平台,提升执行便捷性。

      ⑥故障预防保障措施:提升可视化监控能力;完善流量控制策略;对应急预案演练有效性进行验证。

      5、总结

      CRE团队通过最佳实践和最优方法论,沉淀出客户业务架构韧性的关键技术,从租户架构高可用设计出发,适配用户不同业务场景。以高可用架构为底座,针对用户严格的成本管理需求,对系统容量做精准控制,为客户业务场景做性能保护,结合故障场景三板斧能力,助力客户提升业务SLA,以确定性方案解决不确定性风险,保障客户上云、用云安全可靠。 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。