阿里巴巴高可用架构建设实践笔记
极客时间编辑部
讲述:初明明大小:4.87M时长:05:19
来源:阿里技术
最近,“某 App 崩了”频上热搜。对此,阿里巴巴解决方案架构师燕顺总结称,出于高并发、高可用和高客户体验要求,导致应用崩溃的原因主要有两点:一是服务端复杂,二是企业没有对自己的服务能力进行提前规划。同时,燕顺公布了阿里巴巴在高可用架构建设过程中的实践笔记,期待帮助更多企业从容应对接下来的高流量场景。以下为重点内容。
1. 架构设计
首先要实现架构可视化,利用 AHAS 的架构感知可以全面了解云上系统架构,以可视化的方式直观呈现云资源、容器和应用间分层依赖关系。服务器、存储、网络是现代云平台的基础设施,随着上云战略的推进,越来越多的企业将业务、服务、系统构建在云平台上。
开源软件和云服务的多样性、开发语言的异构性以及企业 IT 团队的组织和能力差异,都提高了标准化的复杂性。架构感知功能应运而生,通过采集和分析操作系统及第三方标准接口,捕捉进程级的调用关系,并使用特征库算法识别进程所使用的技术组件,最后在服务器、容器和进程这三个维度上以可视化的方式展示应用架构。围绕这张基础的架构视图,会持续衍生出云资源、容器和应用架构多维度的架构视图,还有搬站、重构梳理和资产管理等场景化的视图,真正做到 CMDB 可视化,驱动问题发现助推业务增长,释放云上更多维度的红利。
而关于强弱依赖治理,因为强依赖本身意味着一荣俱荣,一损俱损。结合 AHAS SDK 的引入和预埋,一旦当平台最大吞吐能力到达瓶颈时,除了入口或者 Web 类应用的业务峰值流量限流可以起到第一层的保护作用外,还可以将预先标记为弱依赖的服务平滑下线,从而达到节省更多资源保障核心计算能力的目的,同时还可以去除非核心对核心服务的影响,最终通过合理高效的服务降级最大程度获得业务和成本的平衡。而使用了 AHAS SDK 之后,在编码时,只需要关心如何定义资源,即哪些方法 / 代码块需要保护,而不需要关注如何保护这个资源。然后通过添加规则来保护资源,规则的添加即时生效。
2. 容量规划
对于外网仿真压测,首先可以通过 PTS 高效快速构建同模型和量级的业务流量,对于开源主流的 JMeter 脚本可以直接 100% 兼容,对于没有现成脚本的情况可以使用 PTS 自研的可视化交互进行 0 编码编排,编排完成后从公网的各地域运营商发起,真实模拟特定业务场景下的外网流量,从而全面验证和探测云上或云下整体架构(从网络接入到应用服务内再到存储层和基础设施)的瓶颈和问题。
对于全链路压测,如果在生产环境下想直接精准衡量业务容量的情况,可以通过 PTS 相关解决方案使生产环境具备压测流量识别和路由到指定影子存储区域的能力,结合相关影子存储区域的准备,做到和同级规模基础数据上的业务流量压测同样的生产环境,最终达到精准衡量线上生产环境的能力。当然,由于压测流水数据已经隔离开,所以能方便、安全地清理和维护。
3. 业务监控
面对复杂的应用环境和高速增长的业务,ARMS 能快速构建各种环境下完整的监控体系,实现从页面到数据库、从应用性能到基础架构资源、从 IT 到业务的端到端监控。减少故障排查时间,降低跨部门沟通成本,最终降低因为故障和体验差给企业带来的损失。
4. 线上管控
对于运行态或已有应用可以通过 AHAS 探针形态(除 AHAS SDK 外更轻的方案)在不修改代码的情况下进行业务洪峰的流量强力控制、消息场景的削峰填谷。而对于结构复杂的应用,可以将系统内或外不稳定的因素迅速降级让业务保持稳定,同时还有单机过载保护(根据 RT 动态调节入口流量)的兜底能力。很多时候系统来不及压测或者不知道配置什么规则的时候,单机智能过载保护是个很好的功能和方法。
5. 常态化演练
AHAS 的故障演练模块遵循混沌工程实验原理,基于此建立流程完整、可视化程度高的故障演练体系,可方便对基础资源、应用服务、容器服务和云平台这 4 层进行超多维度的编排和定制,同时 AHAS 还提供了丰富的成熟故障经验库。故障演练在依赖治理、业务连续性提升和故障修复验证等场景中都有巨大作用。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论