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

  • 曹倩芸

2018 年 4 月 25 日

话题:AWSDevOps

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

从 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 机器学习进行深度分析。而所有的技术创新背后,都是为了向用户提供新一代个性化英语教育体验,提升学员的学习效率。

AWSDevOps