在线教育业务系统云上高可用部署架构设计

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云服务器 ECS,每月免费额度200元 3个月
云服务器ECS,u1 2核4GB 1个月
简介: 众所周知,云平台是一个及其复杂的综合系统,内外部的一些偶然因素可能导致其发生局部的故障,如果用户在高可用方面考虑的不够周全,云平台局部故障可能会对业务系统产生重要影响,造成用户的体验下降甚至用户流失。 领先的云服务商在云平台层面为了尽量减少故障发生,经过过多年的优化,已经在网络、云服务器、云数据库


从2010年开始,国内新兴的在线教育公司已经越来越多选用公共云计算做为IT基础设施平台。在线教育公司使用云计算,一方面可以减少在IT基础设施方面设备及人力的投入,另一方面可以轻松获得可扩展的计算能力以及更加可靠的安全防护能力。

通过对多家在线教育公司IT部门的交流,由于在线教育公司大多处于业务发展期,IT部门的精力主要投入到支撑新业务的拓展,在应用的部署架构上考虑的不多,在高可用架构方面更是欠缺。

众所周知,云平台是一个及其复杂的综合系统,内外部的一些偶然因素可能导致其发生局部的故障,如果用户在高可用方面考虑的不够周全,云平台局部故障可能会对业务系统产生重要影响,造成用户的体验下降甚至用户流失。

领先的云服务商在云平台层面为了尽量减少故障发生,经过过多年的优化,已经在网络、云服务器、云数据库等层面支持同城多机房高可用部署,在线教育公司在进行部署架构设计时使用本文介绍的部署方式,就可以快速构建起高可用的应用。

在介绍高可用部署架构之前,先介绍几个技术术语:

地域:地域指的是云资源及服务所在的地理位置。用户可以根据实际需要来选择不同地域的云服务,具体选择哪个地域一般由客户的地域分布来决定。以阿里云为例,目前可供选择的地域有华东 1、华东 2、华北 1、华北 2、华南 1、香港、新加坡、美西 1、美东 1。如果在线教育系统的客户主要分布在珠三角,选择华南1就比较好,如果客户覆盖全国,选择华东1或华东2就相对合适一些,因为这两个区域到全国的网络延时比较平均。

可用区:可用区是指在同一地域内,电力和网络互相独立的物理区域,可以理解不同的可用区是不同的物理机房。在同一地域内可用区与可用区之间内网互通,可用区之间可以做到故障隔离。

负载均衡服务:负载均衡是对多台云服务器进行流量分发的服务。负载均衡通过流量分发,可以横向扩展应用系统对外的服务能力,同时通过消除单点故障提升应用系统的可用性。

云服务器:云服务器是一种处理能力可弹性伸缩的计算服务,其管理方式比物理服务器更简单高效,能够快速构建业务系统,降低开发运维的难度和整体IT成本。云服务器整合了计算、存储与网络资源等IT基础设施能力。

云数据库:关系型云数据库服务为用户提供在线数据库服务。同时提供了数据库在线扩容、备份回滚、性能监测及分析等功能。

下图是目前在线教育公司常见的部署架构:

2b26deddd98ace4e1e24291ede41c64d324e4389

用户通过互联网访问部署在云上的资源,访问会通过负载均衡分发到后端多台云服务器上,云服务器上的部署的在线教育应用访问云数据库进行数据的存取。这个部署架构在一定程度上满足了应用的高可用性要求,比如,云服务器1出现故障时,云服务器2可接管全部请求,应用不至于停止服务。另外,由于云数据库具备主备容灾能力,在主数据库出现问题,可以切换到备份数据库,应用也不会受到长时间的影响。

但是由于所有的云资源都部署在同一个可用区,在极端情况出现时,比如该可用区的对外网络出现中断,或者该可用区的云服务器出现整体性故障时,应用还是会受到严重影响,甚至无法对外提供服务。虽然这种情况发生概率很低,但是对服务质量要求极高的在线教育系统,比如在线考试,在线授课等,还需要更高的可用性部署架构。

为了达到更高的可用性,建议进行多可用区的云上高可用部署架构,这种部署架构分为三个要点:

b6ce2e65fc9c47b26096e482a1509edde420b272  

第一,负载均衡层。利用了负载均衡服务跨可用区的高可用特性。目前领先的云计算平台已经具备了此项能力,以阿里云为例,在创建负载均衡服务时,可以根据需要选择负载均衡服务主备可用区,如下图所示:

e52f4bd107bc8b48a2ce3568a2d112b077363fda


该服务创建后将默认工作在主可用区,当主可用区发生故障时可切换到备可用区工作,对外的互联网IP不发生变化,不需要对DNS解析做任何调整。

第二,云服务器层。同时在两个可用区购买并部署云服务器,当可用区A出现整体故障时,可以由可用区B的云服务器支撑业务。

第三,数据库层。在数据库层选择云服务供应商提供的多可用区版本的云数据库,还是以阿里云为例,其提供的RDS mysql有多可用区版本,如下图所示:

c5516f94b097733ed1c675f2a55b4671e6f2aac2

选用了多可以区的RDS mysql,主备数据库被部署到不同的可用区,上图中的数据库主库部署在可用区B,备库部署在可用区C,主备之间的数据保持实时的同步。当主库的可用区发生严重故障时,位于另外一个可用区的备库提升为主库。

这个部署方案中需要注意,由于可用区往往位于一个地域的两个不同地点,相互间有几十公里的距离,因此难免会有一定的网络延时,通常在2ms以内,因此,从负载均衡到另一个可用区的云服务器,以及云服务器到另外一个可用区的云数据库之间的延时,会比同可用区的相互访问有一定的延时增加,在应用部署时要考虑这个延时对应用的影响。

按照上述的高可用架构进行部署后,当可用区A出现灾难故障时,应用整体不会受到影响,依旧可以对外提供服务,如下图所示:

843cf27b9d23c18f932798400486c3ea866cbbcb

        

       综上所述,在线教育公司可以借助云服务商提供的底层能力,快速的搭建基于多可用区的云上高可用部署架构,快速、低成本的实现应用系统的“同城双活”,极大的提高系统的容灾能力,持续的服务好用户。  

相关实践学习
一小时快速掌握 SQL 语法
本实验带您学习SQL的基础语法,快速入门SQL。
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7天前
|
存储 SQL 网络协议
C语言C/S架构PACS影像归档和通信系统源码 医院PACS系统源码
医院影像科PACS系统,意为影像归档和通信系统。它是应用在医院影像科室的系统,主要的任务是把日常产生的各种医学影像(包括核磁、CT、超声、各种X光机、各种红外仪、显微仪等设备产生的图像)通过各种接口(模拟、DICOM、网络)以数字化的方式海量保存起来,并在需要的时候在一定授权下能够快速地调回使用。同时,PACS系统还增加了一些辅助诊断管理功能。
41 11
|
7天前
|
传感器 存储 数据采集
04 深度解析物联网架构与技术应用于农业大棚系统
本文将深入探讨物联网架构在农业大棚系统中的应用,从设备接入、边缘网关、数据传输到云平台和应用平台,逐层解析其技术应用与通信协议,为读者全面呈现物联网在农业领域的实际运用场景。
|
7天前
|
存储
嵌入式微处理器的系统架构中指令系统
嵌入式微处理器的系统架构中指令系统
19 0
|
7天前
|
存储 前端开发 BI
基于云计算技术的B/S架构智能云HIS系统源码 集挂号、处方、收费、取药、病历于一体
云HIS是针对中小医院机构、乡镇卫生室推出的一套基于云端的云HIS服务平台,借助云HIS,将医院业务流程化,大大提高医院的服务效率和服务质量,为客户提供医院一体化的信息解决方案。云HIS主要功能:包含门诊收费管理,住院收费管理,门诊医生工作站,住院医生工作站,住院护士工作站,辅助检查科室管理,药房药品管理,药库药品管理,报表查询。满足诊所、中小医院业务中看诊、收费、发药、药库管理、经营分析等多环节的工作需要。
50 4
|
7天前
|
安全 数据管理 中间件
云LIS系统源码JavaScript+B/S架构MVC+SQLSugar医院版检验科云LIS系统源码 可提供演示
检验科云LIS系统源码是医疗机构信息化发展的重要趋势。通过云计算技术实现数据的集中管理和共享可以提高数据利用效率和安全性;通过高效灵活的系统设计和可扩展性可以满足不同医疗机构的需求;通过移动性和智能化可以提高医疗服务的精准度和效率;通过集成性可以实现医疗服务的协同性和效率。因此,多医院版检验科云LIS系统源码将成为未来医疗机构信息化发展的重要方向之一。
27 2
|
7天前
|
人工智能 运维 监控
构建高性能微服务架构:现代后端开发的挑战与策略构建高效自动化运维系统的关键策略
【2月更文挑战第30天】 随着企业应用的复杂性增加,传统的单体应用架构已经难以满足快速迭代和高可用性的需求。微服务架构作为解决方案,以其服务的细粒度、独立性和弹性而受到青睐。本文将深入探讨如何构建一个高性能的微服务系统,包括关键的设计原则、常用的技术栈选择以及性能优化的最佳实践。我们将分析微服务在处理分布式事务、数据一致性以及服务发现等方面的挑战,并提出相应的解决策略。通过实例分析和案例研究,我们的目标是为后端开发人员提供一套实用的指南,帮助他们构建出既能快速响应市场变化,又能保持高效率和稳定性的微服务系统。 【2月更文挑战第30天】随着信息技术的飞速发展,企业对于信息系统的稳定性和效率要求
|
5天前
|
边缘计算 负载均衡 网络协议
B站千万级长连接实时消息系统的架构设计与实践
本文将介绍B站基于golang实现的千万级长连接实时消息系统的架构设计与实践,包括长连接服务的框架设计,以及针对稳定性与高吞吐做的相关优化。
25 9
|
7天前
|
前端开发 Java 关系型数据库
Java医院绩效考核系统源码B/S架构+springboot三级公立医院绩效考核系统源码 医院综合绩效核算系统源码
作为医院用综合绩效核算系统,系统需要和his系统进行对接,按照设定周期,从his系统获取医院科室和医生、护士、其他人员工作量,对没有录入信息化系统的工作量,绩效考核系统设有手工录入功能(可以批量导入),对获取的数据系统按照设定的公式进行汇算,且设置审核机制,可以退回修正,系统功能强大,完全模拟医院实际绩效核算过程,且每步核算都可以进行调整和参数设置,能适应医院多种绩效核算方式。
32 2
|
7天前
|
API 开发者 UED
构建高效微服务架构:后端开发的新趋势移动应用与系统:开发与优化的艺术
【4月更文挑战第30天】 随着现代软件系统对可伸缩性、灵活性和敏捷性的日益需求,传统的单体应用架构正逐渐向微服务架构转变。本文将探讨微服务架构的核心概念,分析其优势,并着重讨论如何利用最新的后端技术栈实现一个高效的微服务系统。我们将涵盖设计模式、服务划分、数据一致性、服务发现与注册、API网关以及容器化等关键技术点,为后端开发者提供一份实操指南。 【4月更文挑战第30天】 在数字化时代的浪潮中,移动应用和操作系统的紧密交织已成为日常生活和商业活动的基石。本文将深入探讨移动应用开发的关键技术、跨平台开发工具的选择以及移动操作系统的架构和性能优化策略。通过分析当前移动应用开发的挑战与机遇,我们将
|
7天前
|
消息中间件 监控 中间件
探索微服务架构下的系统弹性设计
【4月更文挑战第26天】 在当今快速迭代和持续部署的软件发展环境中,系统的弹性设计成为维护高可用性和稳定性的关键因素。本文将深入探讨在微服务架构下如何实现系统弹性,包括识别潜在的故障点、设计容错机制、以及通过实践案例分析提升系统整体的韧性。我们将讨论一系列策略,如服务降级、超时管理、重试策略、断路器模式等,旨在为开发者提供一套实用的系统弹性设计方案。