全面上云这条路,洋葱学院已经走了近7年

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
简介: 延期开学的这段时间里,广大学生学习时间较为集中,面对大流量、高并发访问需求,洋葱学院需要确保业务稳定性,采用阿里云容器服务与云数据库融合解决方案,在应用不变的情况下,快速平稳实现扩容的问题。阿里云容器服务可以在几分钟内扩充底层资源,满足快速部署数千个应用实例的需求。

洋葱学院在2013年末成立,原名洋葱数学,是一家K12在线教育公司。课程里没有真人老师授课,而是采用100%人机交互学习方式,每节课5-8分钟动画视频的形式精讲一个知识点或解题思维,希望有趣生动的讲解方式让更多的孩子们爱上学习。

创新且锐意进取,是这个公司的基因。

洋葱学院由杨临风、朱若辰和李诺联合创办,团队希望通过技术方式促进教育均衡。在创立之初,团队就做出了一个意识超前的决定:整套业务系统均基于阿里云搭建。

_1

要知道,2013年,能选择全面上云的中国企业屈指可数。

上云先锋洋葱学院这一路走来,也是和阿里云一同携手成长的难忘历程。几年前,由于某个特殊使用场景,线上业务受到严重影响,洋葱学院和阿里云紧急沟通、快速排查问题,阿里云云数据库的专家同学进行了重启、备份等一系列工作。

早先,洋葱学院起步于初中数学、物理课程,但是随着不断发展,开始加入语文和英语等学科,这些课程特点不同、相应的学习流程不同。除了早先选用的ECS云服务、SLB负载均衡、阿里云云数据库等经典基础产品之外,洋葱学院也尝试将新的业务应用搭建于一些新兴阿里云产品,如ACK容器服务、RSS弹性伸缩、SLS日志服务、Blink实时计算、ARMS前端监控等,来满足日趋复杂和多样化的业务需求。

如今,从初中理科逐渐扩展到小初高全学段全学科,为130多万教师以及3600多万的中小学生提供24小时在线的“云课堂”。

疫情大考突如其来,IT架构稳如泰山

疫情期间(近一个月以来),有超过700万学生、35万教师使用洋葱学院APP在线学习或辅助授课,同时还将课程资源开放给学习强国、快手等第三方平台播放,帮助更广泛的学生远程学习。

能应对猝不及防的疫情流量洪峰,洋葱都做了怎样的努力、下足了哪些功夫呢?

在线教育业务的一个重要特点,就是波峰波谷比较规律,可预测。在学校下课或放假时期,业务会达到上升,洋葱学院便会在数分钟扩容云上资源,待学生返校上课之时,再根据业务情况释放资源,这样持续保持较高的资源利用率,既节省成本又确保业务响应。

3年前,洋葱学院开始尝试微服务改造,将复杂的单体架构进行拆分和解耦。同时采用容器技术,并也将swarm迁移至阿里云容器服务ACK之上,原本每个模块都对应一套ECS与SLB,但是随着微服务越拆越细,开始出现资源浪费的情况,而且调度复杂度都在迅速膨胀。容器服务可以根据不同模块的配置所需,资源分配更加合理,按照定义规则自动弹性伸缩避免了复杂的调度维护。

_2

容器的弹性

基本功夯实的基础上,洋葱学院还做了一些方案优化和升级。

延期开学的这段时间里,广大学生学习时间较为集中,面对大流量、高并发访问需求,洋葱学院需要确保业务稳定性,采用阿里云容器服务与云数据库融合解决方案,在应用不变的情况下,快速平稳实现扩容的问题。阿里云容器服务可以在几分钟内扩充底层资源,满足快速部署数千个应用实例的需求。阿里云容器服务团队的建议下,洋葱学院还进一步优化了整体的ECS服务器配置,将大量的小规格ECS服务器更换成30至50核大规格ECS,从容应对10倍扩容,同时运维管控更加便捷。

针对疫情延期开学,洋葱学院作为头部K12在线教育公司,免费向全国师生开放了平台的全部核心课程资源,这期间每天的学习访问人数持续飙升。使用云容器之后,系统在资源利用率上提升了约60%,出现问题后可快速隔离,当面对急剧增长的业务量,也可以在短时间内扩容进行业务支撑。 ——李诺 洋葱学院联合创始人&CTO

TB1dI1HfHH1gK0jSZFwXXc7aXXa_1530_1140_1_

数据库的升级

为了确保平台使用起来“丝般顺滑”,阿里云为洋葱学院提供了综合架构解决方案:数据库层将云数据库Redis数据库做高速缓存,RDS PostgreSQL+MongoDB做持久化存储;应用层对微服务进行改造,以及容器化部署。这是完成挑战的核心能力。

洋葱学院还对冷用户和冷热数据做了优化:冷用户,即第一次来的用户信息较少,此期间冷用户过多,亟需优化冷用户的流程处理,这需要提高高压下的数据快速处理能力,处理变得更快;老师和学生的作业数据,会有冷热数据之分,每隔一段时间进行数据迁移,但是热数据增长过快,此前方案逐渐应接不暇。在阿里云云数据专家的建议下,将冷用户缓存增加,升级数据库,对数据库进行了分库分表,还进行了一系列索引优化、语句改写以及业务改造等工作。

在此次疫情中,洋葱学院利用阿里云数据库的极致弹性、无缝升级扩容能力,一晚上便完成了几十个核心数据库的容量升级以及PG实例版本升级。单个云Redis集群可承载千万级访问的超高性能,确保了即使流量数十倍增长也不会有业务瓶颈。同时,持久化存储RDS PostgreSQL、MongoDB有更强的承载能力,不仅可以应对复杂查询,还可做到极致超强弹性水平扩展,全面保障了洋葱学院的运行,在业务量比历史同期翻了10倍的情况下仍然保持平稳。

故障检测

此外,原本只能依靠负载均衡的定时扫描错误节点,故障检测存在一定时延;而Kubernetes自带容灾和错误发现机制,容器内部pod之间自动实现切换,大大缩短问题发现时间,同时基于阿里云云监控、ARMS Prometheus、ARMS前端监控和日志服务,实现云资源、容器集群、容器节点、Pod等指标的完善监控,对集群变更状态、pod创建拉起删除、组件异常等信息,基本可以覆盖到各种监控报警问题,将重大故障‘扼杀于摇篮之中’。

AI辅助教学,学生老师个性化“Friday”

_2

看过复仇者联盟的朋友们,都记得钢铁侠的AI助手Friday,每次关键时刻都协助钢铁侠力挽狂澜。

洋葱学院的APP,其实早已经成为很多学生和老师的AI助手Friday。2017年,洋葱学院成立人工智能实验室,并尝试将AI赋能引入其教学体系。最主要的原因,是希望为学生们打造完整的学习闭环,产品能根据学生的学习现状和效果,动态规划学习路径,推送个性化学习内容。

而老师则可以通过数据后台实时充分掌握班上每名学生的学习能力和知识掌握情况,为同班同学一键布置不同的教学任务。

用心做产品,以诚待客

_jpeg

洋葱学院自成立之处,便决心搭建于云上。在他们看来,自己研究开源方案或重新搭建系统,是"事倍功半"的,意味着巨大的运维负担;因此,每当有新的业务需求时,洋葱学院都会首先考虑能否使用云上已有方案,他们相信阿里云服务的稳定性、专业性。

洋葱学院将更多的人力和精力投入到了课程研发之中,打磨课程。如今,洋葱的用户遍布全国,深受师生和家长的喜爱,多达3600万学生自发推荐,社科院白皮书显示其教师推荐度和家长满意度分别高达85%和90%。

洋葱学院以匠人之心打造“ 云 ”课堂,是一群践行教育初心的梦想家和冒险家。

相关实践学习
使用ACS算力快速搭建生成式会话应用
阿里云容器计算服务 ACS(Container Compute Service)以Kubernetes为使用界面,采用Serverless形态提供弹性的算力资源,使您轻松高效运行容器应用。本文将指导您如何通过ACS控制台及ACS集群证书在ACS集群中快速部署并公开一个容器化生成式AI会话应用,并监控应用的运行情况。
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
uView time 时间格式
uView time 时间格式
238 0
|
6月前
|
人工智能 自然语言处理 API
8.6K star!完全免费+本地运行+无需GPU,这款AI搜索聚合神器绝了!
FreeAskInternet是一款革命性的开源项目,它完美结合了多引擎搜索和智能语言模型,让你在不联网、不花钱、不暴露隐私的情况下,获得媲美ChatGPT的智能问答体验。这个项目最近在GitHub上狂揽8600+星,被开发者称为"本地版Perplexity"。
215 2
|
测试技术 项目管理 uml
「软件项目管理」软件项目范围计划——需求管理与任务分解
该文章详细介绍了软件项目范围计划中的需求管理与任务分解技术,包括需求获取、分析、编写、验证、变更管理的过程,以及任务分解的方法和实践,旨在帮助项目管理者有效地控制项目范围和推进项目进展。
「软件项目管理」软件项目范围计划——需求管理与任务分解
|
数据采集 Web App开发 测试技术
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
在网络爬虫领域,Selenium与WebDriver是实现跨浏览器自动化数据抓取的利器。本文详细介绍了如何利用Selenium和WebDriver结合代理IP技术提升数据抓取的稳定性和效率。通过设置user-agent和cookie来模拟真实用户行为,避免被网站检测和阻止。文章提供了具体的代码示例,展示了如何配置代理IP、设置user-agent和cookie,并实现了跨浏览器的数据抓取。合理的参数配置能有效减少爬虫被封禁的风险,提高数据抓取效率。
1162 6
使用Selenium与WebDriver实现跨浏览器自动化数据抓取
|
11月前
|
存储 弹性计算 固态存储
阿里云服务器ESSD Entry系统盘测评IOPS、IO读写和时延性能参数
ESSD Entry云盘是阿里云推出的新一代云盘,具备高IOPS、低延迟和企业级数据保护能力。适用于开发与测试场景,支持按量付费和包年包月计费模式。99元和199元的ECS经济型e实例和通用算力型u1实例均采用ESSD Entry系统盘,性价比高。详细性能参数和价格请参考阿里云官方页面。
439 0
|
人工智能 C++ Windows
[NextJs] 解决 Failed to load SWC binary for win32/64
快速解决 Next.js 在 Windows 下运行时 SWC Binary 报错的方法,包括安装 Microsoft Visual C++ Redistributable 和确认处理器架构。
|
关系型数据库 MySQL 数据挖掘
Mysql与StarRocks语法上的不同
Mysql与StarRocks语法上的不同
|
API PyTorch 算法框架/工具
PyTorch 2.2 中文官方教程(十三)(3)
PyTorch 2.2 中文官方教程(十三)
700 1
R语言 线性混合效应模型实战案例
R语言 线性混合效应模型实战案例
|
算法 机器人 API
使用 XZ Utils 获得更高的压缩率
关于 XZ Utils XZ Utils 是为 POSIX 平台开发具有高压缩率的工具。它使用 LZMA2 压缩算法,生成的压缩文件比 POSIX 平台传统使用的 gzip、bzip2 生成的压缩文件更小,而且解压缩速度也很快。
1196 0