从一位在线教育客户的紧急咨询说起

简介: “我们在 1 月底的时候遇到第一波的流量突增,主要集中在上午和晚上,可能是全国的学校已经明确了延期开学的事情,并通知各学校师生以在线教育的方式渡过困难期,当时,我们在阿里云上进行了紧急扩容来应对这波流量的突增。

“我们在 1 月底的时候遇到第一波的流量突增,主要集中在上午和晚上,可能是全国的学校已经明确了延期开学的事情,并通知各学校师生以在线教育的方式渡过困难期,当时,我们在阿里云上进行了紧急扩容来应对这波流量的突增。但我们也清楚,等正式开学,还会有更多的流量进来,而且很可能高流量会成为一种常态,这使得我们开始重新审视当前的基础设施是否能支撑未来的业务发展。”

这段时间,遇到这类情况的客户不只这一家,我们接到了大量的来自在线教育客户的紧急咨询,需求均是是否有一些不影响现有架构的无侵入工具,能应对流量的激增情况,同时也会开始重新梳理架构和业务之间的关系。

本文整理了阿里在高可用架构建设过程中的一些实践,分为架构设计、容量规划、业务监控、线上管控、日常巡检和常态化演练。

架构设计

首先要实现架构的可视化。

通过架构感知可以全面了解云上系统架构,以可视化的方式直观呈现云上资源、容器和应用间分层依赖关系。

服务器、存储、网络是现代云平台的基础设施,随着上云战略的推进,越来越多的企业将业务、服务、系统构建在云平台上。但开源软件和云服务的多样性,开发语言的异构性,以及企业 IT 团队的组织和能力差异,都提高了标准化的复杂性。

因此,架构感知功能应运而生,通过采集和分析操作系统及第三方标准接口,捕捉进程级的调用关系,并使用特征库算法识别进程所使用的技术组件,最后在服务器、容器和进程这三个维度上以可视化的方式展示应用架构,给用户一张全面清晰的云上架构地图。

其次,对强弱依赖进行梳理和应对。

任何强依赖都要尽可能的转化成弱依赖,因为强依赖本身意味着一荣俱荣,一损俱损。有了弱依赖的引入,一旦当平台最大吞吐能力到达瓶颈时,除了入口或者 web 类应用的业务峰值流量限流可以起到第一层的保护作用外,还可以将预先标记为弱依赖的服务平滑下线,从而达到节省更多资源保障核心计算能力的目的。

同时,还可以去除非核心对核心服务的影响,最终通过合理高效的服务降级最大程度获得业务和成本的平衡。此外,如果还能实现只需要关心如何定义资源,即哪些方法/代码块需要保护,而不需要关注如何保护这个资源。然后通过添加规则来保护资源,规则添加即时生效。这类架构的设计会更加智能。

延伸阅读:《阿里巴巴在微服务系统下架构可视化方面的探索》

容量规划

外网仿真压测:
首先需要通过一些在线压测工具高效快速构建同模型和量级的业务流量,从而全面验证和探测云上或云下整体架构(从网络接入到应用服务内再到存储层和基础设施)的瓶颈和问题。

全链路压测:
更进一步的,如果在生产环境想直接精准衡量业务容量的情况,可以通过更场景化的压测解决方案,例如阿里云 PTS 的相关解决方案使生产环境具备压测流量识别和路由到指定影子存储区域的能力,结合相关影子存储区域的准备,然后做到同样规模基础数据上的业务流量压测同样的生产环境,最终达到精准衡量线上生产环境的能力,当然,对于压测流水数据由于已经隔离开,所以可以方便安全的清理和维护。

延伸阅读:《独家揭秘 | 阿里怎么做双11全链路压测?》

业务监控

监控的作用不言而喻,但如何通过开源的监控工具或者商业化的监控解决方案,来排查并解决各类复杂的线上问题是关键。我们很可能需要经过查看配置项、登录机器、扫描日志甚至去查离线日志等步骤,经过十几分钟才能定位到问题,有的时候甚至需要排查个大半天时间。

一些监控大多局限在应用整体 RT、QPS 的监控和部分业务日志的监控,报警发生时,大部分情况只知道这个应用有了问题,但很难快速定位是哪里出了问题,出了什么问题。

以阿里云的应用实时监控服务 ARMS 为例,可以能帮助用户快速构建各种环境下完整的监控体系,实现从页面到数据库、从应用性能到基础架构资源、从 IT 到业务的端到端监控。减少故障排查时间,降低跨部门沟通成本,最终降低因为故障和体验差给企业带来的损失。

延伸阅读:《10 人,2 个月 | 虾米音乐的监控体系升级之路》

线上管控

对于运行态或已有应用可以通过 AHAS 探针形态在不修改代码的情况下进行业务洪峰的流量强力控制、消息场景的削峰填谷,而对于结构复杂的可以将系统内或外不稳定的因素迅速降级让业务保持稳定,同时还有单机过载保护(根据RT动态调节入口流量)的兜底能力。以上都在运行态和运维侧即可完成引入和控制。

对于线上配置项和业务属性值通过 AHAS 开关模块的轻量级方案进行安全和统一管控,这部分能力即将开放,敬请期待。

延伸阅读:《“国货之光” 完美日记的微服务实践和优化思路》

日常巡检

风险的提前暴露:通过 Advisor 智能顾问对云上主要云资源进行全面的巡检和风险识别,规则都来自于 TAM 面向客户的技术体系积累及阿里生态内 SRE 最佳实践的融合。基于前述的架构地图和用户的输入,可进行更深层次的应用/业务架构层面的巡检和建议。

常态化演练

AHAS 的故障演练模块遵循混沌工程实验原理并融合了阿里巴巴内部实践的经验,基于此用户可以建立流程完整而且可视化程度很高的故障演练体系,可方便的对基础资源、应用服务、容器服务和云平台 4 层进行超多维度的编排和定制,同时产品还提供了丰富的成熟故障经验库。从而帮助用户实现包括架构、业务、人员的全面高可用提升。故障演练在依赖治理、业务连续性提升和故障修复验证等场景中都有巨大作用。

延伸阅读:《实践 | 混沌工程工具 ChaosBlade 构建高可用的分布式系统》

“宅”在家,做主播

远程办公,不孤单

除了视频会议,当然还要连麦玩直播

在家运维不用慌系列直播,火热进行中·····

阿里云程序员/中间件小姐姐/中间件小师妹

居家开课

快来加入我们吧

IMG_0243

相关文章
|
3月前
|
人工智能 弹性计算 异构计算
2026年阿里云gpu云服务器活动参考:T4、V100、A10卡包月5折起,包年4折起
2026年阿里云推出GPU云服务器优惠活动,涵盖T4、V100、A10等多规格实例,活动截止到3月31日。活动对象为阿里云实名认证用户,新用户首购可享包年包月4折起、按量付费最长100小时1折起的优惠。具体型号与价格如gn7i-c32g1.8xlarge(A10卡)3213.99元/月起,gn6v-c8g1.2xlarge(V100卡)3830元/月起。活动支持包年包月与按量付费两种模式,满足AI训练、图形渲染等多场景需求,助力用户低成本开启AIGC之旅。
1455 2
|
SQL 分布式计算 数据处理
图文详解:DataHub产品概述
阿里云流数据处理平台DataHub是流式数据(Streaming Data)的处理平台,提供对流式数据的发布 (Publish),订阅 (Subscribe)和分发功能,让您可以轻松构建基于流式数据的分析和应用。
3324 0
|
数据库
【自然框架】CMS之数据库设计
    在园子里也混了三年多,随笔200多,一开始只是想把自己的经验写一下,后来呢弄出来了一个“自然框架”,主要精力就放在了介绍自然框架的思路上面了。随笔多了就发现一个问题:有点乱。虽然博客有分组,但是只支持一级分组,不支持n级的。
1866 0
|
1月前
|
人工智能 JavaScript iOS开发
2026年OpenClaw必备Skill榜单:10000+技能精选,附阿里云/本地部署教程
OpenClaw(原Clawdbot、Moltbot)的核心魅力,在于其开放且丰富的Skill生态——截至2026年3月,ClawHub平台已汇聚超过10000个社区构建的技能插件,覆盖基础工具、生产力提升、知识管理、搜索研究、媒体创作等全场景需求。这些Skill如同给AI助手装上“功能翅膀”,让原本只能简单对话的工具,变身能处理邮件、管理项目、创作内容、控制智能家居的全能助手。
2335 8
|
Prometheus Kubernetes Cloud Native
Kruise Rollout:灵活可插拔的渐进式发布框架
Kruise Rollout 是 OpenKruise 社区开源的渐进式交付框架。Kruise Rollout 支持配合流量和实例灰度的金丝雀发布、蓝绿发布、A/B Testing 发布,以及发布过程能够基于 Prometheus Metrics 指标自动化分批与暂停,并提供旁路的无感对接、兼容已有的多种工作负载(Deployment、CloneSet、DaemonSet)。近期也在《2022 开放原子全球开源峰会》上面做了主题分享,以下是主要内容。
Kruise Rollout:灵活可插拔的渐进式发布框架
|
Windows
蓝易云 - 共享盘迁移记录robocopy常用参数mklink
在进行共享盘迁移时,可以使用 `robocopy`进行高效的文件复制,并通过 `mklink`创建指向新位置的链接,以保持原有的访问路径不变。
240 2
|
Shell Linux C语言
CentOS完美升级gcc方案
CentOS完美升级gcc方案
3489 0
|
Java Nacos 数据安全/隐私保护
nacos启动问题之启动时连接报错如何解决
Nacos是一个开源的、易于部署的动态服务发现、配置管理和服务管理平台,旨在帮助微服务架构下的应用进行快速配置更新和服务治理;在实际运用中,用户可能会遇到各种报错,本合集将常见的Nacos报错问题进行归纳和解答,以便使用者能够快速定位和解决这些问题。
5242 97
|
SQL 关系型数据库 数据库
手把手教你管理PostgreSQL数据库及其对象
手把手教你管理PostgreSQL数据库及其对象
1075 0
|
缓存 Linux
CentOS7系统配置国内yum源和epel源
1.首先进入/etc/yum.repos.d/目录下,新建一个repo_bak目录,用于保存系统中原来的repo文件 [root@bogon ~]# cd /etc/yum.repos.d/ [root@bogon yum.
12629 57

热门文章

最新文章