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

本文涉及的产品
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
注册配置 MSE Nacos/ZooKeeper,182元/月
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
简介: 在家运维不用慌系列文章,附赠系列直播,欢迎参与,文末有惊喜!

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

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

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

架构设计

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

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

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

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

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

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

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

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

容量规划

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

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

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

业务监控

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

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

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

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

线上管控

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

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

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

日常巡检

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

常态化演练

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

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

“宅”在家,做主播

远程办公,不孤单

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

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

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

居家开课

快来加入我们吧

IMG_0243

相关文章
|
消息中间件 编解码 Serverless
体验《告别资源瓶颈,函数计算驱动多媒体文件处理》
体验《告别资源瓶颈,函数计算驱动多媒体文件处理》
|
Kubernetes 负载均衡 容器
Kubernetes LoadBalancer使用场景例子及配置步骤
Kubernetes 的 LoadBalancer 类型的服务用于将流量从集群外部的负载均衡器路由到集群内的服务。它通常用于公共云提供商(如 AWS、GCP、Azure)或者其他支持这种负载均衡机制的环境中。 以下是一个使用场景的例子:假设你在 Kubernetes 集群中部署了一个 web 应用程序,并希望将该应用程序暴露给外部用户,以便他们可以通过公共网络访问这个应用程序。你可以使用 LoadBalancer 类型的服务来实现这一目标。 下面是配置步骤: 1. 创建一个 `Service` 对象,并设置 `type: LoadBalancer`。 ```yaml apiVersio
3713 0
|
Python
Python函数-lambda表达式
Python函数-lambda表达式
297 0
|
缓存 Java Spring
day30_java_基础巩固框架
自己所掌握的基础知识加以巩固和记录!希望大家点赞收藏并能给予鼓励和支持!有任何建议或者帮助也可以来哦!!!
|
安全 网络安全 数据安全/隐私保护
手机SSL证书错误有哪些
  在现在这个互联网信息化时代里,在大数据下,广大人民群众普及电子产品已经达到饱和,也就是说基本上每一个人都有受一个手机,或者每一个家庭里面都有一台电脑。所以出现了一个人们备受关注的话题,在使用电子产品的过程中,触及到个人隐私的问题,那么这些个人隐私要如何保证安全呢?  针对这个问题,出现了很多新兴公司,这些公司能够提供SSL证书,其中就包括了电脑版的证书以及手机SSL证书。
1630 0
|
9天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1197 4
|
8天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1114 87
|
6天前
|
机器学习/深度学习 物联网
Wan2.2再次开源数字人:Animate-14B!一键实现电影角色替换和动作驱动
今天,通义万相的视频生成模型又又又开源了!Wan2.2系列模型家族新增数字人成员Wan2.2-Animate-14B。
569 11

热门文章

最新文章