速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

英孚教育全面上云与 Serverless 构建之路

  • 2018-04-25
  • 本文字数:3152 字

    阅读完需:约 10 分钟

从传统的纸质时代,到个人电脑及互联网桌面时代,再到如今的移动终端时代,教育与教学的触达模式在改变,由大数据、人工智能所支撑的平台技术及教育体验也在革新。

从 2016 年 8 月伊始,英孚教育就开始了全面向云上迁移的战略布局。其上云之路总体可分为四大阶段:

  • 第一阶段:截至 2017 年 3 月,将 70% 的数据中心(波士顿自建数据中心)工作负荷迁移至 AWS 新加坡区域进行云端处理;

  • 第二阶段:截至 2017 年 6 月,原波士顿数据中心全部工作负载全面上云;

  • 第三阶段:截至 2017 年 8 月,完成 MPLS 网络搭建,实现跨区域云服务网络互连,确保核心业务应用数据能顺利实现异地灾备;

  • 第四阶段:截至 2017 年 10 月,中国(上海)数据中心全部工作负荷全部迁移至 AWS 北京云服务。

在英孚教育的云迁移之路中,许多值得借鉴的架构设计经验和部署战略的发展理念可以作为典型案例用来分析。因而,InfoQ 也借此机会对英孚青少儿 CTO Andrew Tsui 进行了专访,与他探讨应用、数据迁移上云以及在 Serverless 架构实践中的相关思考。

全面云化带来的改变

大批跨国企业在走向本土化之初,往往将服务和数据部署在本地。但随着用户增长和用户数据量的几何级膨胀,以及企业对资源整合、个性解决方案的需求,云部署逐渐显露出在产品灵活性、数据安全、AI 等工具的应用和长期成本方面的优势。

全面上云之前,英孚教育并没有将 100% 的业务都在 AWS 云上对应用进行开发测试构建部署。

Andrew Tsui 解释说,“英孚的第一步是将所有新的应用系统放在云上开发,而原本在数据中心完成的开发维持不变。基于三到六个月左右实践,完成团队在云端开发的所必须积累的经验和技术之后才开始逐步制定 Migration Panel。”

此后,英孚教育也是分阶段式地完成对国外和国内数据中心的迁移。2016 年,其开始着手将自建数据中心中部署的客户关系管理系统、学校运营与管理系统、商业智能平台、媒体应用、销售管理及数字化内容管理等核心业务应用逐步迁移至 AWS 云平台之上。

英孚教育迁移上云路线图

而无论是对于已存在的需要上云的业务,还是新的应用系统,都要从硬件支撑改造、API 重构、模块化或标准化改造等维度对整个业务系统进行云化分析。此外,为了实现对异构存储设备的管理,存储虚拟化和分布式改造也至关重要。

在将应用迁移到公有云时,多数IT 组织会选择“直接迁移”(Lift-and-shift)方式,或对应用进行重构。前者主要选取内部应用复制到云中,并不对架构或设计进行修改;后者则设计到修改源代码、重写API 接口、解耦或耦合数据等。

Andrew Tsui 认为,如果企业从技术层面只做到了 Lift-and-shift,则意味着没有充分应用好云的功能和特性。他举例说,“现在的云服务已经有许多不同的数据库功能,集成了大数据、AI 等解决方案,你可以很快地利用这些功能予以创新开发。又比如 Serverless 架构的演进,让你不再需要考虑基础设施、配置或管理服务器就可以运行代码”。而这些,都可能需要 IT 组织对原有软件架构乃至底层架构做许多颠覆式的变革。

英孚教育基于AWS 云平台的系统架构示意图

英孚教育基于AWS 云平台的系统架构如上图所示,迁移上云之前,其更多是采用传统的技术构建应用,现在则可以直接使用Amazon DynamoDB、Amazon Elastic Compute Cloud (Amazon EC2)、Amazon EC2 Container Service (Amazon ECS)、Lambda 等丰富的服务和技术特性更加快速地构建系统并提供更创新的用户体验。

站在英孚教育自身的角度,全面云化带来的不仅是计算资源的弹性扩增,从稳定性、业务创新和技术更新等多个维度来说,可以最大程度使任何规模的部署应用变得更容易。在采访中,Andrew Tsui 举例了一项他们的实践——在目前英孚做的部分大数据和机器学习项目中,其对比使用了Cloudera 和AWS 的EMR(Elastic MapReduce)。传统的大数据Cloudera 集群,计算和存储功能都在一个Note 里,例如要加多少存储就要加多少Note。而EMR 可以高度优化成与S3 中的数据一起工作,所以使用EMR 则可以将计算和存储分开,这种方式可以实现大数据架构较高的弹性,并且能节省大笔开支。

英孚教育Serverless 架构实践

随着容器技术、IoT、区块链等技术落地开花,技术上对去中心化、轻量虚拟化、细粒度计算等需求会更加多样,此外,云计算从IaaS/PaaS 等发展到BaaS/FaaS,Serverless(去服务器化)将扮演越来越重要的角色。

大则如同云、小则如同微服务。Andrew Tsui 认为,Serverless 本身就是云计算进化中的一个重要阶段,也将会是技术的未来趋势。就如数据中心会经历向虚拟化、云计算的演进一般。为什么英孚教育要做Serverless,这和Andrew Tsui 领导技术团队的理念有着重要的关系。

Andrew Tsui 在采访中提到,要想做 Leader 的话就要去创新,或许收获和付出是相等的,但你想要收获更多,就要有更多的付出。对于“创新”一词,他的目标就是推动工程师团队永远走在技术的最前沿,Serverless 架构实践就是一项证明。

在传统的应用部署过程中,往往需要经历这样一套繁复的流程:安装操作系统 -> 安装应用程序 -> 配置环境并部署代码,而且往往还需要不定时地为操作系统和应用程序打补丁和进行维护。在给系统重要软件的更新和为系统打安全补丁等等这种情况下,偶尔也会产生重启服务器或者实例的需求,尤其是当 Web 服务要运行千上万项批处理计算任务时,因此,人为的监控及运维就会非常重要。Andrew Tsui 用了一个真实场景来佐证,“那时候我跟我的团队开会,速度要很快,时间也被压缩得很紧,不然系统随时会有风险。”

而 Serverless 架构的出现会极大简化其中的部分环节,例如执行时间受限、不需重启系统,安全补丁就被简化了。对于向 Serverless 架构的演进,AWS 目前提供的服务越来越丰富,从 AWS Lambda、Amazon API Gateway 到 Amazon Kinesis 等,多达十余种。而 AWS Lambda 作为 Serverless 最早的框架,被认为是 Serverless 的里程碑。下图简要地标注了几种 Lambda 事件驱动模式。从无需维护、高可用、自动扩展、按调用付费、安全等维度来说,都是英孚教育使用 Lambda 所获得的直接优势。

Lambda 事件驱动模式

但同样,Andrew Tsui 也谈到,Serverless 的采用一定不能“冒进”,在某些特殊的业务场景下依然需要从安全性、适用性等方面进行评估。例如,遇到不运行并行计算或需易于调试的场景时,Serverless 则不一定是最佳选择,所以不同场景需要从不同的角度重审。

另外,Serverless 应用程序是高度分布式、低耦合的,这就意味着延迟将始终是一个问题。英孚教育的实践中也同样遇到了此类状况,所以 Andrew Tsui 在问题中提到,单纯使用 Serverless 的应用程序是不太现实的。

不过每个公司在不同程度的使用中会遇到各种各样的问题,没有实践和摸索,更适宜自身软件云化的工具、架构或平台是什么,谁也不知道。所以 Andrew Tsui 很鼓励团队创新和试错,从弹性、高可用性、创新性到技术支持的完整性角度来说,AWS 可以很大程度上与 Andrew Tsui 团队的需求匹配,帮助其更好的实现向最先进的技术进行探索。这也是英孚教育在数字化转型中最高层次的一个目标。

未来的技术蓝图规划

当然,随着对 AWS 工具或平台使用的频次和范围扩增,势必会在一定程度上扩大对其的“依赖性”。对于如何更好实现自身的个性化创新,Andrew Tsui 谈到,基于云平台的开发不只是选择能提供硬件虚拟化的服务商,而是选择一位更强的战略性合作伙伴。在开发难度、兼容性等方面,英孚教育会有很多评估准则,确保系统可以从一个平台平滑迁移到另一个平台并不是易事,开发人员需要在两套系统中做权衡,去做更多的亲身试验和比对。

未来,英孚教育还将利用 DynamoDB 托管的 NoSQL 数据库服务、Amazon Redshift 数据仓库构建自己的大数据平台,并借助 AWS 机器学习进行深度分析。而所有的技术创新背后,都是为了向用户提供新一代个性化英语教育体验,提升学员的学习效率。

2018-04-25 20:061341
用户头像
Cherry倩芸 InfoQ高级策划编辑

发布了 51 篇内容, 共 21.5 次阅读, 收获喜欢 34 次。

关注

评论

发布
暂无评论
发现更多内容

AndroidStudio Gradle第三依赖统一管理,移动端开发技术

android 程序员 移动开发

Android—Dagger2-让你爱不释手--终结篇(附视频讲解(1)

android 程序员 移动开发

Android厂商推送冲突了。。,android中常见的面试题

android 程序员 移动开发

AndroidX,安卓framework开发

android 程序员 移动开发

Android之使用Assets目录中的xml布局、网页、音乐等资源

android 程序员 移动开发

Android从零开始搭建MVVM架构(4),Android开发进阶吃透这一篇必拿60W年薪

android 程序员 移动开发

Android学习攻略:手把手教你循序渐进地学习Android知识(1)

android 程序员 移动开发

Android常用adb命令,开源新作

android 程序员 移动开发

Android—Dagger2-让你爱不释手--终结篇(附视频讲解,Flutter全方位深入探索

android 程序员 移动开发

Android中级面筋:开发2年的程序员如何短期突击面试?跟着这几步去准备

android 程序员 移动开发

Android大牛是如何炼成的:郭霖的成长之路专访,2021最新Android高频精选面试题讲解

android 程序员 移动开发

Android小菜鸡2 个月的面试亲身经历告诉大家,如何进入 BAT 等大厂?

android 程序员 移动开发

Android常见原理性面试题,android高级开发面试题以及答案

android 程序员 移动开发

Android平台Camera开发实践指南,【大牛疯狂教学】

android 程序员 移动开发

Android10填坑适配指南,实际经验代码,拒绝翻译,android开发书籍pdf下载

android 程序员 移动开发

Android—案例分析解读:观察者模式,androidstudio社区

android 程序员 移动开发

Android动画之属性动画,2021Android开发面试解答之设计模式

android 程序员 移动开发

Android-黑科技保活实现原理揭秘,字节跳动Android内部学习资料泄露

android 程序员 移动开发

Android入门项目(六)Android的wifi开发,flutter旋转动画

android 程序员 移动开发

Android全面解析之Handler机制:常见问题汇总,三级缓存和二级缓存的区别

android 程序员 移动开发

Android冷启动优化解析,字节跳动8年老Android面试官经验谈

android 程序员 移动开发

Android基础到进阶四大组件之ContentProvider详解,安卓开发菜鸟教程

android 程序员 移动开发

Android修炼系列(八),2021年Android开发者跳槽指南

android 程序员 移动开发

Android前景怎么样、是不是要凉了、是不是应该考虑要转行

android 程序员 移动开发

Android学习路线总结,绝对干货,保洁阿姨看完都会了

android 程序员 移动开发

Android事件分发机制源码解析,最新Android通用流行框架大全

android 程序员 移动开发

Android四大组件之一(broadcast receiver),移动端开发语言

android 程序员 移动开发

Android基础都没学好就去面试,这不是挖坑给自己跳吗?字节跳动三面凉凉经

android 程序员 移动开发

Android学习攻略:手把手教你循序渐进地学习Android知识

android 程序员 移动开发

Android干货---丢掉你老旧的参数传递方式,投入Bracer的怀抱吧。

android 程序员 移动开发

Android常见原理性面试题(1),2021年阿里Android面试题精选

android 程序员 移动开发

英孚教育全面上云与Serverless构建之路_亚马逊云科技_Cherry倩芸_InfoQ精选文章