如何做好大促稳定性保障

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
对象存储 OSS,20GB 3个月
云服务器 ECS,每月免费额度200元 3个月
简介: 本文从一个大客户云上稳定性保障入手,介绍这家企业是如何来做大促稳定性保障。接着会分析友商AWS在高可用保障这块的最佳实践及部分实现手段。最后介绍一下面向云时代,阿里云可以做哪些具体工作来提升客户稳定性保障工作效率。

本文从一个大客户云上稳定性保障入手,介绍这家企业是如何来做大促稳定性保障。接着会分析友商AWS在高可用保障这块的最佳实践及部分实现手段。最后介绍一下面向云时代,阿里云可以做哪些具体工作来提升客户稳定性保障工作效率。

背景介绍

相比于传统IDC,云时代企业对基础设施的稳定性保障手段会有比较大的差异。基于云平台的特有属性:敏捷的基础设施,真正做到即开即用,丰富的云组件极大降低企业自建SRE体系成本。

某企业大促稳定性保障

参考集团过往双11大促保障的一些经验。制订了如下的大促保障策略:

说明:

  • 以上列的技术点,有部分是企业内部提供了系统来完成。但还有很多操作都是依赖人工逐一巡检排查。

稳定性保障多角色多团队协同

AWS在资源稳定性方向的最佳实践

AWS介绍了一些原则帮助客户提升稳定性,包括:

  • 自动从故障中恢复:通过配置监控,当超过指定的监控阈值时触发自动化。典型的场景:主机磁盘报警,自动触发清理磁盘脚本。

  • 故障演练:在云环境可以模拟故障并进行故障演练,确保业务能够正常恢复。

  • 水平扩展原则:系统架构做到能水平扩展,才能有效避免瓶颈问题。

  • 容量管理:业务出问题一个常见原因就是容量过载。有两种容量保护手段:在云上可以通过监控工作负载利用率,并自动添加或删除资源应应对资源弹性。另外一个就是当外部的请求过载之后,资源也可以做到自我保护,常见:限流,降级等。

  • 基础设施变更自动化:推荐使用自动化的手段对基础设施进行更改,方便跟踪与审查,快速回滚等。

  • 隔离原则:应该提供控制具体功能是否可用的配置,在系统出现故障时能够快速下线功能。

AWS的well architected 在稳定性这块也提供了一些架构建议:

AWS基于Config实现高可用的合规包规则(部分规则)

Control ID

Control Description

ConfigRule

Guidance

REL-1

基于云原生架构,很多云服务是有配置服务限额,这些配额是为了防止意外的请求超过了资源上限。

lambda-concurrency-check

这条Config规则确保Lambda函数的并发上限和下限。有了这个上下限就可以确保你的函数在任何给定时间的请求数量。config会检查是否有配置,如果没配置则示为不合规。

REL-2

你会如何规划网络架构?企业的业务系统通常会部署在多套环境中。包括云环境(公网区互联区、私网等),客户IDC机房。稳定性需要考虑网络因素,如:系统内之间网络连通性,公网IP管理,私有IP管理和域名解析等。

ec2-instances-in-vpc

将EC2实例部署在VPC内能够确保主机跟其他服务安全通信,而无需走NAT、VPN连接。典型的就是EC2去连接数据库或MQ这些资源。

当出现EC2资源不是部署在VPC内,则示为不合规

REL-3

你会如何监控系统资源呢?日志和监控指标是非常有效的两个工具。对系统配置上合适的监控指标和日志采集,并在超过指定阈值时发送告警通知。通过监控也能够快速知道系统出现故障并为自动化修复做出响应。

securityhub-enabled

AWS Security Hub 有助于监控未授权的人员、连接、设备和软件。AWS Security Hub 能够汇总多个AWS服务的安全警报,发现并确定其优先级。

建议开启这个服务。

REL4

你会如何设计你的架构来满足快速的需求变化的?一个可扩展的架构提供了快速添加或删除资源,实现弹性。

autoscaling-launch-config-public-ip-disabled

如果直接给EC2配置公网IP,很容易被黑客扫描到,实施攻击。所以EC2资源不应该公开访问。当配置了autoscaling之后,也需要检查是否通过弹性出来的EC2会配上公网IP。如果有这个配置,则示为不合规

REL5

你是如何做变更的?变更一定是要受管控的,如果线上变更不受控制,那就很难预测这些变化对业务带来的影响。

rds-automatic-minor-version-upgrade-enabled

在RDS实例上启用自动次要版本升级,以确保安装RDBMS的最新次要版本更新。

REL6

你如何备份数据?备份数据、应用程序和配置以满足您对恢复时间目标 (RTO) 和恢复点目标 (RPO) 的要求。

db-instance-backup-enabled

RDS备份功能能够为您的数据库和事务日志创建备份。Amazon RDS 自动创建数据库实例的存储卷快照,备份整个数据库实例。该系统允许您设置特定的保留期以满足您的弹性要求。

建议开启这个备份功能

REL7

通过故障隔离可以有效保护你的系统。通过故障隔离将故障影响限制在有限数量的组件中。故障外的组件不受故障影响。

elb-deletion-protection-enabled

这条Config 规则确保ELB启用了删除保护。启用这个规则可以防止你的ELB设备被意外删除。

说明:

  • 通过Config的能力,让AWS的客户真正做到一键开启资源巡检规则包。快速发现潜在风险。

阿里云在基础设施层面稳定性

参考友商AWS及业界如CIS的最佳实践。结合阿里云产品能力,关于资源稳定性保障简化成如下示意图:

image.png

后续会从高可用基础架构、容量保护、变更管理等方面沉淀一套面向资源保障层面的合规规则包。部分审计规则如下:

场景

云产品

规则描述

Guidance

高可用基础架构

VPN

检测VPN网关配置是否存在Down状态,如果存在说明有VPN连接不可用。存在视为不合规。

如果网关配置出现Down状态(可能是对端网络异常或网络异常),则VPN网关异常,对业务有可能会带来影响。

ECS

检测是否存在ECS在VPC以外

建议将ECS部署在VPC内

ECS

ECS镜像OS版本提醒(例如windows2003 windows2008 centos5.*版本官方早已经停止维护,存在安全漏洞等风险)

建议采用最新版本OS镜像

ECS

ECS存在漏洞,对接云安全中心,获取主机安全漏洞,如果存在则视为不合规

主机一旦出现安全漏洞建议第一时间完成安全修复。

容量保护

RDS

监测RDS实例IOPS是否达到指定的IOPS上限,建议实例IOPS规格的80%,如果超过则视为不合规

RDS关键的一个指标IOPS值,建议做好容量管理

变更管理

RDS

必须配置RDS变更升级窗口期,如果没有配置则视为不合规

企业会有自己的变更窗口,RDS规格升级建议是放在特定的变更窗口进行。而不是采用默认的时间。

ECS

必须配置ECS磁盘快照窗口期,如果没有配置则视为不合规

因为打快照对磁盘性能影响大,建议在业务低峰进行。

ESS(弹性伸缩)

检测弹性伸缩组是否有配置独立的公网IP,如果配置了,则不合规

不应该直接给ECS配置公网IP,主机出公网建议走NAT统一出口

ESS(弹性伸缩)

检测弹性伸缩组跟LB设备关联,并且配置了LB到后端ECS的健康检测。

出于安全考虑,前端的LB设备会定期往弹性伸缩组中的ECS发送PING或尝试做连接,如果弹性伸缩组中的ECS无法接收到连接或发送响应,则流量会发往另外一台ECS。所以需要配置这个健康检测,否则会导致业务异常。

ESS(弹性伸缩)

检测ESS的伸缩配置,如果配置是单规格,选择单交换机的配置视为不合规

建议在容量规划做好的前提下,也要优先考虑新增资源合理性

监控管理

ECS

检测是否有配置云监控,并且在ECS的控制台上有展示

ECS必须要开启云监控

RDS/PolarDB

检测是否对RDS实例有配置云监控

建议开启云监控

备份管理

RDS

检测RDS实例是否有开启备份,另外这个规则支持特定的备份周期及窗口

依据备份原则,建议对RDS数据及binLog进行备份。

ECS

检测数据盘/云盘是否有开启备份

依据备份原则,建议对主机数据盘进行备份。

Redis

检测Redis集群是否有开启自动备份策略,另外这个规则可以支持特定备份窗口

依据备份原则,建议对缓存数据进行备份。

OSS

检测 OSS的Bucket是否有开启跨Region复制

跨区域复制功能满足Bucket跨区域容灾或用户数据复制的需求

OSS

检测OSS的Buckets是否开启版本化管理,如果没有打开则视为不合规

开启版本控制后,针对数据的覆盖和删除操作将会以历史版本的形式保存下来。您在错误覆盖或者删除对象(Object)后,能够将Bucket中存储的Object恢复至任意时刻的历史版本。

故障隔离

RDS/ALB/CLB

检测是否支持跨区容灾,如果是单可用区资源视为不合规

依据故障隔离原则,如果只有一个可用区,一旦这个可用区故障,则无法隔离出去,导致业务受影响。

ALB/CLB

检测ALB/CLB后端是否挂载了2台及2台以上ECS,否则就视为不合规

依据故障隔离原则,如果只有一台ECS当出现故障是无法切换,影响业务。

ALB/CLB

检测是否有开启删除保护

防止误操作导致实例被删除

RDS

检测实例是否有开启删除保护

ECS/RDS/CLB/ALB

ECS/RDS/CLB/ALB使用共享实例规格,当其他业务出故障之后,有可能会影响同一宿主机上面共享实例业务。所以检测出是共享实例的ECS/RDS则视为不合规。

依据故障隔离原则,生产系统最好是跟独享物理资源

借助Config的多账号能力一处配置规则,可以实现对多账号的统一监测。技术架构如下:

本文小结

面向更多的企业客户,在云上如何做好资源保障。不断迭代资源层面审计规则,可以不断丰富阿里云在面向大B客户稳定性保障的产品能力。企业可以在控制台一键开启,即可快速发现潜在资源风险,及时规避因资源问题导致业务故障。

相关实践学习
RocketMQ监控/告警一站式搭建应用
RocketMQ监控/告警一站式搭建演示
相关文章
|
2天前
|
消息中间件 监控 前端开发
研发人员如何做好日常工作的稳定性保障
本文介绍了一些研发人员如何做好稳定性建设的工作事项
40 0
|
2天前
|
SQL 运维 监控
性能场景之稳定性场景方案设计
今天想说说稳定性场景设计。经常在一些场合被问到性能场景的设计问题,但是大部分都是和容量相关的。为什么稳定性问的人少呢?稳定性是不是说在容量场景做好了之后就水到渠成了呢?首先稳定性场景的设计应该说比容量场景设计要简单一点。毕竟容量如果测试结果非常好的话,稳定性场景只要有一时间变长的动作就可以了。但是不要小看这个时间变长的动作,它会让你要准备和思考的内容多出不少。下面来庖丁解牛地细化一下
53 6
性能场景之稳定性场景方案设计
|
2天前
|
缓存 运维 监控
|
8月前
|
消息中间件 监控 Java
系统稳定性保障设计总结和思考
系统稳定性保障设计总结和思考
375 0
|
8月前
|
运维 监控 容灾
建设强大系统:提升高可用、可靠性和稳定性的秘诀
建设强大系统:提升高可用、可靠性和稳定性的秘诀
|
12月前
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.4故障演练与紧急预案设计
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.4故障演练与紧急预案设计
149 0
|
12月前
|
监控 测试技术 UED
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(1)
208 0
|
12月前
|
SQL 监控 关系型数据库
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(3)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(3)
145 0
|
12月前
|
域名解析 网络协议 数据可视化
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(2)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.3 平台网站业务稳定性保障——5.3.2 全链路压测与容量评估(2)
156 0
|
12月前
|
运维 监控 测试技术
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(4)
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(4)
107 0
《云上业务稳定性保障实践白皮书》——五.行业客户稳定性保障实践——5.1 游戏业务稳定性保障——5.1.1新游上线稳定性保障实践(4)