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

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

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

架构设计


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

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

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

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

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

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

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

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

容量规划


  • 外网仿真压测:

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

  • 全链路压测:

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

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

业务监控


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

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

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

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

线上管控


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

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

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

日常巡检


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

常态化演练

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

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

“宅”在家,做主播


远程办公,不孤单

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

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

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

居家开课

快来加入我们吧

本文缩略图:mountaingoatsoftware.com

Tips:

# 点下“在看”❤️

# 然后,公众号对话框内发送“公仔”,试试手气?????

# 本期奖品是正版淘公仔 。

#由于疫情原因,较多快递停发,本期抽奖礼品,将在大部分快递恢复后再寄出,请谅解。

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

  1. 超干货 | 在线教育增长实操者案例分享:如何玩转教育增长模型?

    从2012年开始,中国在线教育行业的市场就整体保持着高增长的趋势.随着"校外报课"逐渐成为中国家长的刚需,成人教育机构也一同进入了K12市场.在这场愈发激烈的市场竞争中,在线教育企 ...

  2. 跟谁学、有道营销费用大于营业收入,在线教育企业烧钱大战何时休?

    文/陈曦 来源/螳螂财经(ID:TanglangFin) 对于在线教育机构来说,暑假所在的第三季度的业绩至关重要. 近期,各在线教育上市公司第三季度财报密集披露期,"螳螂财经"想和 ...

  3. 在线教育如何应对流量洪峰?阿里云专家:上云+云数据库是最佳路径

    2月中下旬原本是全国各地春季学期开学的日子,但这场突如其来的疫情使得1.8亿中小学生只能纷纷在家开启"停课不停学"的学习生活,而线上教育也顺势成为了这一特殊时期首选的学习方式. 但 ...

  4. 即构推出微信引流方案,助力在线教育平台大幅降低获客成本

    随着互联网红利结束,线上流量贵.获客成本高.用户数量增长难成为在线教育的行业困境.为了增加品牌曝光度,在线教育平台习惯依赖高价明星代言.巨额综艺冠名.投放品牌广告等方式来进行引流. 当拉新成本越来越高 ...

  5. 在线教育火拼硬件,是炒概念还是真转型?

    来源 | 深燃(shenrancaijing) 作者 | 王敏 编辑 | 金玙璠 "大地震"终于还是来了. 7月24日,规范中小学校外培训机构的"双减"文件(& ...

  6. 在线教育如何延长用户生命周期?微丰这4个策略助你解开谜团

    对于互联网公司来说,用户为王是不变的铁律,而在线教育是这条原则最坚定的践行者.将用户的整个生命周期细致分解,再通过分段的精细化运营,最后实现售前-售中-售后的良性循环,是在线教育行业用户运营的典型流程 ...

  7. Cocos 人才在线教育专场招聘 | 12月岗位

    上周 Cocos 前往北京开启了「十周年系列沙龙」第一站,现场可谓座无虚席,热闹非凡.活动现场多位在线教育互联网行业的精英大咖.研发大拿一起,带来了干货满满的现场分享和探讨,同时插针见缝地现场互相挖人 ...

  8. 跟谁学市值赶超新东方,在线教育究竟哪家强?

    在线教育最近可能要变天了. 近日,一个让在线教育后浪们激动的事情发生了--上市仅1年的跟谁学,超过了上市15年的新东方.目前跟谁学的股价仍在上涨,截止美东时间8月6日收盘,跟谁学股价131.260美元 ...

  9. 是什么技术激活了在线教育“直播+”战略

    纵观当下这片直播红海,在游戏直播.秀场直播之外,逐渐开始出现以互动直播作为独立业务形态的应用领域,且在他们之中率先看到了流量变现的星火.直播+社交.直播+教育.直播+医疗.直播+短视频.直播+电商-- ...

最新文章

  1. Java项目:校园外卖点餐系统(java+SSM+JSP+maven+mysql)
  2. JS 中如何判断 undefined 和 null
  3. Script:Speed Up Large Index Create or Rebuild
  4. python单元测试之unittest框架使用
  5. boost::log模块实现logging旋转文本文件的示例
  6. 前端老弟第一次写后端,崩了!
  7. Visual Studio 2012 和.NET Framework 4.5 快速开始的5分钟视频
  8. JS核心基础数组的操作概述
  9. linux网络测试(必会)
  10. JVM 学习笔记(二)垃圾回收
  11. 深度学习:GCN(图卷积神经网络)理论学习总结
  12. ArcGIS Pro(ArcMap)中利用自带地理处理工具实现线图层批量裁剪面图层
  13. 【Hadoop】单机、伪分布式、完全分布式集群搭建
  14. 百度高级搜索指令大全
  15. 安装sql server 2000:以前的某个程序安装已在安装计算机上创建挂起的文件
  16. 什么是API网关, API 网关的作用
  17. Verilog HDL语言入门(二)
  18. bo JAVA是什么意思_entity、bo、vo、po、dto、pojo如何理解和区分?
  19. 微信小程序--嘟嘟会议--会议发布和我的会议查看
  20. Idea配置翻译插件

热门文章

  1. nginx配置apache服务器均衡负载出现400报错
  2. window 定时任务错误
  3. 【图像加密】Logistic+Tent+Kent+Henon图像加密与解密【含GUI Matlab源码 1745期】
  4. QUECTEL EC25/EG25/EC20 , 限制Band Frequency
  5. java实现毒app,[毒】APP体验一览
  6. screenfetch命令
  7. python求和add_快速求和numpy数组元素wis
  8. centos7 yum卸载和安装
  9. java实现layui分页_SSM项目layui分页实例
  10. Ubuntu20.04更换国内下载源和pip国内源+安装Anaconda+pycharm