全面上云这条路,洋葱学院已经走了近7年-阿里云开发者社区

开发者社区> 阿里云容器服务 ACK> 正文

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

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

洋葱学院在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%。

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

版权声明:本文首发在云栖社区,遵循云栖社区版权声明:本文内容由互联网用户自发贡献,版权归用户作者所有,云栖社区不为本文内容承担相关法律责任。云栖社区已升级为阿里云开发者社区。如果您发现本文中有涉嫌抄袭的内容,欢迎发送邮件至:developer2020@service.aliyun.com 进行举报,并提供相关证据,一经查实,阿里云开发者社区将协助删除涉嫌侵权内容。

分享:
阿里云容器服务 ACK
使用钉钉扫一扫加入圈子
+ 订阅

云端最佳容器应用运行环境,安全、稳定、极致弹性

官方博客
官网链接