腾讯教育 Serverless 实践及探索_第1页
腾讯教育 Serverless 实践及探索_第2页
腾讯教育 Serverless 实践及探索_第3页
腾讯教育 Serverless 实践及探索_第4页
腾讯教育 Serverless 实践及探索_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、腾讯教育 Serverless 实践及探索,蒋林源,自我简介 / resume,蒋林源 (jaxjiang),2018年加入腾讯,IMWeb Team 团队成员,腾讯企鹅辅导核心开发、前就职于阿里巴巴菜鸟技术中台,Keywords: 复杂前端应用性能优化 多端 前端全栈 Serverless,目录 / contents,一、腾讯教育前端架构演变,二、初探 Serverless,三、腾讯教育 在 Serverless 的实践,四、未来及展望,腾讯教育前端架构演变,1,页面开发 + API 数据处理,JS + HTML + CSS + Restful API,腾讯教育前端架构演变,开天辟地时代,1

2、,教育前端,Server,ReactJS + Restful API,+ NodeJS,Latex-Render,SSR,RN2Web,腾讯教育前端架构演变,NodeJS 赋能,1,Server,NodeJS,教育前端,IMPush,管理后台,腾讯教育前端架构演变,日益增长的前端业务,1,Mobile BFF,PC BFF,H5 BFF,PUSH 通道,日志服务,Node BFF,教育大前端,Server,腾讯教育前端架构演变,BFF & Node 应用增长给前端带来的成本,1,流量预估,资源申请,域名申请,操作系统知识,资源利用率,告警和监控,内存泄露问题,机器扩容,环境搭建,备份容灾,腾讯

3、教育前端架构演变,Node 内存泄露,1,腾讯教育前端架构演变,服务运维流程多,1,应用上线,网关变更,NGINX 配置变更,现网验证,服务监控,日志检查,核心问题,1,大前端升级,广度问题,成本问题,前端领域范围需要扩宽、为产品提供更多的赋能,广度问题所带来的成本和效率、成本形成矛盾,腾讯教育前端架构演变,初探 Serverless,2,Serverless 逻辑架构,2,Serverless = FaaS + BaaS,触发器,API 网关 / 定时器 / 对象存储 / CMQ Topic / Kafka / CMQ ,FaaS,Function as a Service 函数即服务,Ba

4、aS,Backend As Service 后端即服务,如云服务商提供的文件存储、数据存储、推送服务等,初探 Serverless,Event Source,用户上传代码,配置触发器,事件发生时 自动触发,云函数平台 FaaS,Function,Function 实例,Function 实例,Function 实例,Function 实例,Function 实例,Function 实例,BaaS,对象存储,云DB,AI,IOT,CMQ,API GW,Credis,调用,腾讯云云函数 SCF (serverless cloud function) 架构逻辑,初探 Serverless,2,SCF

5、 架构剖析,SCF Business,Runtime,Container,Compute Substrate,初探 Serverless,2,SCF 执行过程,1,事件触发,3,创建启动 云函数实例,4,传入 Event 信息,5,执行云函数 返回结果,初探 Serverless,2,2,从云端存储 拉取代码运行,冷启动优化,6,Waiting,7,Waiting end 销毁容器实例,若有同类事件传入 继续执行云函数,超过阈值 未收到相同事件,初探 Serverless,2,1,事件触发,3,创建启动 云函数实例,4,传入 Event 信息,5,执行云函数 返回结果,2,从云端存储 拉取代码

6、运行,小 tips - 预连接,依赖加载,预处理逻辑 可以保证下次执行的时候复用,Main handler,1、只加载你需要的依赖,2、预处理逻辑可以用来做 相关 BaaS 服务的连接,3、主逻辑中一定要小心预连接 的资源,要做重试逻辑,入口文件,初探 Serverless,2,小 tips - 临时文件存储,4,执行云函数 返回结果,5,Waiting,6,Waiting end 销毁容器实例,若有同类事件传入 继续执行云函数,超过阈值 未收到相同事件,/tmp,512M,临时文件,数据缓存,Serverless 在腾讯教育上的探索,2,小 tips - 数据存储,4,执行云函数 返回结果,

7、5,Waiting,6,Waiting end 销毁容器实例,若有同类事件传入 继续执行云函数,超过阈值 未收到相同事件,/tmp,512M,临时文件,数据缓存,Serverless 在腾讯教育上的探索,2,高并发处理,初探 Serverless,2,Waiting,7,Waiting end 销毁容器实例,若有同类事件传入 继续执行云函数,超过阈值 未收到相同事件,1,事件触发,3,4,传入 Event 信息,5,执行云函数 返回结果,从云端存储 拉取代码运行,2,创建启动 云函数实例,高并发时 自动创建多容器,6,传统 BFF 应用开发流程,框架选型,机器申请,相关云资源,相关权限配置,环

8、境搭建,框架资料学习,云资源配置,编码开发,本地测试,构建部署,初探 Serverless,2,Serverless 赋能教育前端开发,框架选型,机器申请,相关云资源,PASS 平台 创建函数,环境搭建,云资源配置,编码开发,本地测试,云函数部署,框架资料学习,初探 Serverless,2,Serverless 能力,“零” 运维,秒级部署,自动触发,更聚焦业务,弹性计算能力,初探 Serverless,2,从 BFF 到 SFF,PC,H5,RN,小程序,管理后台,GSLB (域名解析),STGW (腾讯网关),NGINX,Mobile BFF,PC BFF,H5 BFF,Other BF

9、F,IMServer Framework (based on Koa),Container,业务层,接入层,代理层,应用层,容器层,API GATEWay,IS Proxy (IMWeb Serverless Proxy),SCF A,SCF B,SCF C,SCF D,SCF E,SCF G,BaaS,腾讯教育 BFF,腾讯教育 SFF,初探 Serverless,2,腾讯教育在 Serverless 上的实践,3,Serverless 在腾讯教育上的探索,3,新业务如何落地 Serverless ?,老业务如何迁移 ?,Serverless 在腾讯教育上的探索,老业务迁移 - NodeSe

10、rver VS SCF,3,NGINX,API GateWay,Node App Entry,main_handler,Router,SCF A,SCF B,SCF C,SCF D,Controller,BASS,SCF E,Middleware,Serverless 在腾讯教育上的探索,NGINX,API GateWay,Node Server Entry,main_handler,Router,SCF C,SCF D,Middleware,Controller,BASS,SCF E,SCF 兼容 Node Server (Koa or Express),代理层协议如何兼容?,路由层如何改造

11、?,3,Serverless 在腾讯教育上的探索,代理层兼容,3,Serverless 在腾讯教育上的探索,代理层兼容,API GateWay,Node Server,Proxy 模式,IMServer - Serverless,3,Serverless 在腾讯教育上的探索,代理层兼容,只需引用 tencent/serverless-imserver,3,Serverless 在腾讯教育上的探索,代理层兼容的优缺点,优点 :迁移成本非常低,缺点 :单个云函体积过大,逻辑都在一个函数里,3,Serverless 在腾讯教育上的探索,迁移优化方案 - 路由层改造,API GateWay,Node

12、App Entry,IMServer - Serverless,API GateWay,IMServer - Serverless,IMServer - Proxy,Roter,Controller A,Controller B,3,Serverless 在腾讯教育上的探索,3,迁移方案优化 - 路由层改造,API GateWay,IMServer - Serverless,IMServer - Proxy,HTTP RPC,Serverless 在腾讯教育上的探索,2,路由层改造 优缺点,优点:改动适中、逻辑拆分、云函数文件大小减少,缺点:需要加入一层 Proxy ,兼容Controller

13、,Serverless 在腾讯教育上的探索,3,新业务如何落地 Serverless ?,Serverless 在腾讯教育上的探索,2,小程序,运营活动,轻量级Server,自动化测试,管理后台,诊断能力,全链路 日志,全链路 检索,监控能力,流量,耗时,成功率,告警,云监控,业务代码,业务 A,业务 B,业务 C,基础组件,Imserver,监控,日志,CDN,Redis,Cos,服务组件,加锁,缓存,队列,安全,DAO,频率控制,业务组件,图片合成,语音合成,口语评测,登录,二维码,Service B,Service A,FAAS A,FAAS B,BASS 服务,后台服务,研发闭环,性能

14、压测 / 性能优化,本地开发套件CI,自动化测试,预发集成CD,线上发布和管控,线上切流、灰度,日志规范,监控规范,流程规范,目录规范,运行时,研发态,线上监控 / 诊断,Serverless 在腾讯教育上的探索,3,新业务落地场景,小程序,运营活动,服务端渲染,Serverless 在腾讯教育上的探索,3,新业务落地场景 - 小程序,企鹅背单词,腾讯课堂 - 新人专属礼包,Serverless 在腾讯教育上的探索,2,3 FE developers,2 Weeks,50k Users,240k max api call / day,320ms Time per request,Serverl

15、ess 在腾讯教育上的探索,3,新业务落地场景 - 小程序,STWG 接入层,业务接口,广州 云函数,上海 云函数,天津 云函数,BaaS 服务 微信 API,Serverless 在腾讯教育上的探索,2,小程序云开发 TCB,Serverless 在腾讯教育上的探索,3,新业务落地场景 - 运营活动,运营活动,Serverless 在腾讯教育上的探索,3,新业务落地场景 - 运营活动特性,可复用逻辑多,跟业务强关联,时间要求紧,Serverless 在腾讯教育上的探索,2,API GateWay,H5,APP,PC,Course Info SCF A,BASS,Course Info SCF

16、 B,MircoServices A,SCF ,MircoServicesB,运营活动 SCF 生态构建,Serverless 在腾讯教育上的探索,2,SFF for 运营活动,API GateWay,H5,APP,PC,IMSERVER - PROXY,BASS,Business A,Course Services,Flutter,小程序,Business B,Business C,Business D,Order Services,Teacher Services,Live Services,业务层,接入层,代理层,业务层,基础服务层,BASS 层,Serverless 在腾讯教育上的探索,3,新业务落地场景 - 服务端渲染,服务端渲染,Serverless 在腾讯教育上的探索,3,新业务落地场景 - 服务端渲染,页面 A,React / Vue 单页应用,页面 B,页面 C,CI,SCF A,SCF B,SCF C,Serverless 在腾讯教育上的探索,3,Serverless dev

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论