亚搏体育app网站

GMTC《在线教育小程序云开发工程化实践》演讲全文

发布时间:2020-04-03

首先介绍下腾讯在线教育下的3个主要业务。

- 面向对成人职业化、兴趣化学习的腾讯课堂

- 面向小学、初高中K12领域的企鹅辅导

- 面向少儿英语学习的ABCmouse

这三块业务在各个端都有产品落地,来满足不同端用户的需求,当然也包括小程序。

我们的小程序有工具型的,主要对业务进行引流,比如腾讯课堂打卡小程序,企鹅速算小程序。也有平台内容型小程序来承载业务,如腾讯课堂小程序。

刚才介绍到了我们业务会有很多小程序,那么我们是如何进行小程序工程化实践的,又遇到了哪些问题呢。

首先看下我们小程序相关的需求场景。由于业务迭代快,我们单个小程序都是多需求并行的,同一个小程序会有多个需求同时开发。

这是大概的开发方式,开发同学各自开发,然后预览二维码,上传代码到小程序后台。大家可以看下,这样会有什么问题。其实对比我们平时的Web开发方式不难看出,这里开发环境不统一,除了操作系统、Nodejs版本,还有我们的小程序开发者工具。

我们曾经有一次在小程序发布后,就收到了反馈小程序某个页面打不开了。因为当次发布并不涉及打不开的页面,最后排查发现是上传代码同学更新了开发者工具后导致的,降级了开发者工具后重新构建上传得以解决。

除了开发环境不统一,在后面的流程中其实还有很多问题。

基于以上问题,我们做些思考,最终打造小程序的Devops工作流来解决这些问题。今天主要给大家介绍下后面的构建、测试、发布以及协作。

首先看下构建和发布。从图中可以看到,这两个环节里`构建Npm`和`上传代码`是依赖微信开发者工具的,微信开发者工具也提供了CLI调用和Http调用的能力。

为了更好的将这些能力和我们的需求进行整合,我们基于微信开发者工具的CLI,开发了我们小程序的构建工具Imweapp。这款工具的使用流程如图所示,包括了发布前主干分支合并的检查,依赖Npm包版本合法性的校验,以及构建Npm,自动获取上传需要版本号和描述机型上传。

有了这款工具后,我们上传小程序代码前就更有保障了。

为了更好的保障我们小程序的质量,我们也做了自动化测试的尝试。小程序的自动化测试分为UI测试和单元测试。

我们先来看下UI测试,我们使用`miniprogram-automator`和`jest`来进行UI测试。

图上是腾讯课堂小程序的课程详情页,这里需要测试验证的项包括点击播放,切换目录,播放状态检测,底部按钮状态检测等。

这是我们的测试示例,我们可以看到每条用例的执行情况

我们在进行UI测试的过程中也踩了不少坑,有很多需要注意的地方

再来说下小程序的单元测试,我们使用`miniprogram-simulate`和`jest`来进行单元测试。

这里主要对组件结构的渲染结果,以及组件的实例方法进行验证

我们在进行单元测试的时候也踩了不少坑

我们再回顾下前面开发流程里的另外两个问题,我们开发的构建工具只是做了发布前的Check以及构建工作,我们的构建环境其实还没有统一。

为了将我们的Devops流程做的更完善,彻底解决各个环节的问题,我们梳理了小程序Devops的架构,如图所以,分为三个部分:

左边使我们的发布平台,拥有完整的发布流程,包括了关联需求,发布前检查,CodeReview单据,发布评审单据,发布内容周知等。

右边是我们借助公司CI平台实现的小程序的CI与CD。我们部署了一台Mac机器,利用Imweapp自动化工具和小程序IDE来实现小程序的自动化构建和发布,并推送构建发布结果。

我们可以看到触发机制里有@机器人这种操作,那么具体是怎么做的呢,又有哪些效果。

我们触发机器人,给机器人发送对应指令,就可以实现需求和群的绑定,设置预览页面路径,在群里触发构建等操作,并且我们也做了登录重试的操作,如果构建机上微信开发者工具的登录态失效,我们会回传登录二维码,扫码登录后重试之前的构建流程。

目前小程序团队也在开发用于小程序CI的相关包,独立于微信开发者工具,能更方便的接入CI,可以期待一下。

我们的这套Devops流程也在公司内积极推广,公司内已有十多个团队,三十多个小程序接入使用。

解决了小程序工程化的问题,面对频繁的业务需求,特别是前端开发效率一直高于后端的场景下,我们能否有更多的发挥空间呢,小程序先入为主,我们打算尝试使用云开发。

云开发是腾讯云为移动开发者提供的

看一下我们实际的业务场景,因为我们是已有的业务,后台基础服务已经成熟,我们希望能在多个小程序间共用云函数等资源,包括和Web共用,但是小程序内置的SDK调用方式满足不了我们现有的需求。

既然使用不了云开发,我们重新梳理下目前前端业务和后台服务间的调用链路,我们的请求从前端到网关,在经过我们的CGI接口,再调用具体的底层服务,我们可以加入Node BFF层来承载部分CGI接口的能力。

如果自行搭建中间层,不免会面临下图这么多问题,这块工作量大,并且对于大部分前端同学来说可能也没有那么专业。

其实,最近很火的Serverless就能解决我们上面的问题

我们先看下Serverless

Serverless无服务器架构,包括了触发器,云函数平台,以及Bass服务。

当云函数平台接收到Event事件时,将会启动一个容器来运行函数代码,如果此时接收到了新的事件,并且也没有可用的空闲容器,则启动另一个函数实例来处理这个事件。

使用云函数,配合API网关,就能解决我们前面SDK调用的问题,满足我们的业务场景。

既然打算接入Serverless了,那么如何将我们现有的Nodejs服务迁移到Serverless,或者说怎样采用开发Nodejs应用的方式来进行Serverless开发呢。

我们看下两者的对比,网关入参结构不一致,这里我们需要进行代理层的适配,是否需要添加路由适配,以及迁移后是否涉及业务逻辑调整

从下图可以看到,我们除了要适配代理层,调用返回的Response也需要进行适配。云开发提供了serverlessplus包来解决这个问题

我们将serverlessplus和我们基于Koa开发的服务框架IMServer进行了结合,推出了imserve-serverless,用于业务的Serverless开发

我们可以看到当实例不存在时,将会走所谓的冷启动过程,冷启动涉及容器的启动,代码的下载,以及网络的打通等,会增加函数的执行时间。

首先我们可以添加预处理,将耗时的操作放在函数入口外,比如服务地址解析,数据库连接等,来减少函数执行耗时。

其次,我们在函数里对服务调用时,走VPC(Virtual Private Cloud)网络来减少网络层耗时,可以看到我们改进后函数执行耗时减少了近50%,稳定在100ms左右。

如果函数逻辑比较重,路由很多,可能导致代码体积较大,在冷启动过程中会导致下载代码耗时增加。这里我们可以将逻辑较重的Controller拆分到不同的云函数里,提供统一的(鉴权)入口进行调用,以此来优化函数加载的效率,减少冷启动时间。

不过这样多了一层函数代理层,可以根据实际效果来进行选择

如图,我们还是希望使用云开发,通过SDK调用,如何解决多端复用的问题

回顾下我们之前的问题,使用内置SDK不能实现多个小程序调用同一个云开发环境

我们和云开发团队深度合作,推出了用于小程序端的WebSDK,多小程序调用得以实现

由于我们已经采用API网关调用的方式将函数上线了,现在切换到SDK调用,需要进行一些适配。

在调用方需要封装headers以及带上路由参数,函数改动就比较小,对request解析调整下就好。

除了开发,云函数的部署我们也需要规范起来。小程序开发者工具提供了云函数的部署能力,右键菜单进行部署,不过采用这种方式也存在一些问题:

云开发提供了CLI工具来用户云函数的操作,包括登录、初始化、函数部署、函数触发等等。有了这款工具,我们的函数完全可以另起项目单独开发,和小程序项目分开管理。

CLI提供了非常灵活的配置,可以配置超时时间,私有网络,是否在线安装依赖等。我们将配置进行抽离,不同云开发环境使用不同的配置文件,并规范化云函数工程项目。

借助CLI,我们也打造一套云函数的发布流程,统一了函数的构建环境。在开发阶段,提交代码通过Git Hook触发部署到测试云开发环境,预发布和发布阶段也部署到对应的云开发环境,并且我们在发布阶段做了代码的归档,函数如需回滚,我们使用归档的代码重新发布就好。

团队在Serverless和云开发落地的两个小程序,腾讯课堂小程序的API网关调用已迁移到SDK调用,并在对应的H5上也有落地使用。

最后总结一下,这次主要给大家分享了我们团队是如何做小程序工程化的,以及目前非常火的Serverless,还有非常方便我们服务落地的云开发,云开发也是未来的开发趋势。

希望这次分享能给大家带来一些思考,对业务带来一些帮助。



声明:内容来自搜狐,该文观点仅代表作者本人,本站仅提供信息存储空间服务。如果需要删除请联系站长;

亚搏体育app网站
【趣味问答】文科男友好?还是理科男友好?! 新加坡硕士留学费用大起底,看你一年要花多少钱? 纳米盒:成为 K6 阶段孩子的一种生活方式 新加坡幼儿园体系黄金跳板的最佳选择? 留学为什么选择澳洲?澳洲留学十大福利一览 文艺!梦幻!浪漫!这样的大学寝室真的爱了! 90后、95后海归成就业创业主力,花百万留学,回国就业月入仅过万? 留学版“北京人在纽约”:刚到美国那几个月,我天天晚上哭 高中三年:从高一慢班的倒数到高考时冲到前三,网友:经历了什么 素质教育受人追捧,但其实“应试教育”才是寒门学子逆袭的出路 这是什么神仙学校! 垫底的商科学生:来自美国的反思 杜伦大学2020年秋季入学商科硕士即将截止申请 英国留学:本科背景不好、绩点不理想,如何弥补? 独家发布!高考评价体系考查内容 澳大利亚留学就业率高的五类专业 新的一年,给汉艺老学员的一封信

GMTC《在线教育小程序云开发工程化实践》演讲全文

ǚ关于爱读书的名人故事ǚ,ǚ空调通风设备厂家ǚ,ǚ抖音热门歌曲怎么找回ǚ,ǚ儿童环保垃圾桶图片ǚ,ǚ贵州省遵义卫生学校ǚ,ǚ阿玛尼机械手表报价ǚ,ǚ天津市职业技术学校ǚ,ǚ贵州室内儿童游乐场设备ǚ,ǚ嘉峪关到陇火车时刻表ǚ,ǚ淘宝安踏官网专卖店ǚ,ǚ喜爱夜蒲2dj开头曲ǚ,ǚ码职业女装ǚ,ǚ环保产品代理ǚ,ǚ一诺倾情手机电影下载ǚ,ǚ看电影用dlp还是lcdǚ,ǚ装修拆除报价清单ǚ,ǚ中国4大民间故事ǚ,ǚ阀门涂装设备ǚ,ǚ于睛小说全集ǚ,ǚ疯狂猜图经典电影ǚ,ǚ儿童故事大全蜘蛛侠ǚ,ǚ海尔集团利润表分析ǚ,ǚ有哪些好听的粤语djǚ,ǚ南宁如家快捷酒店ǚ,ǚ凯立信空气能中央热水器ǚ,ǚ抚州传统美食ǚ,ǚ儿童故事在线阅读大全ǚ,ǚ鬼故事短篇超吓人ǚ,ǚ焊接太阳能电池板ǚ,ǚ那里看小说可以免费ǚ,ǚ伦理电影种子网址ǚ,ǚ编神话故事ǚ,ǚ贵良飘香饭店特色菜ǚ,ǚ厨具设备工程公司ǚ,ǚ警察故事2国语高清版ǚ,ǚ有声小说吧ǚ,ǚ九月中旬成都天气是多少度ǚ,ǚ青岛即墨天气预报一周查询ǚ,ǚ电影捉迷藏好看吗ǚ,ǚ1岁能吃娃娃菜ǚ,ǚ17装修网ǚ,ǚ豆瓣电影购票失败ǚ,ǚ有诚信的人的故事ǚ,ǚ果然爱水果汤圆淘宝ǚ,ǚ科学太阳能热水器ǚ,ǚ装修风格暖色调有哪些ǚ,ǚ神马电影我不卡手机在线观看ǚ,ǚ羊肉卷加工设备ǚ,ǚ烟台外贸女装批发ǚ,ǚ北海舰队历任副政委李桦ǚ,ǚ淘宝投诉后果是什么ǚ,ǚ外国全英文dj网站ǚ,ǚ福建厦门天气情况ǚ,ǚ特种设备安全管理讲话ǚ,ǚ源于寓言历史故事的ǚ,ǚ长沙别墅装修案例价格ǚ,ǚ男朋友让我憋尿的故事ǚ,ǚ在线看香港电视剧ǚ,ǚ深港dj串烧中文2012ǚ,ǚ**小故事读后感400字ǚ,ǚ北京海淀云南菜ǚ,ǚ情感故事视频直播全集ǚ,ǚ极品家丁亲亲小说网ǚ,ǚ北海市人力市场ǚ,ǚ北海公园划船押金能微信么ǚ,ǚ私立学校读一年可以转公立吗ǚ,ǚ议论文素材细节ǚ,ǚ电视剧热播蒋雯丽主演ǚ,ǚ延安牌香烟价格表ǚ,ǚ工业环保网appǚ,ǚ数据透视表运用视频ǚ,ǚ韩国电视剧 水瓶座ǚ,ǚ泥土的故事议论文ǚ,ǚ皇明壁挂太阳能热水器ǚ,ǚ蜂蜜面粉自制美白面膜ǚ,ǚ电影爱情避风港ǚ,ǚ名人的刻苦读书的故事ǚ,ǚ内蒙厨房设备ǚ,ǚ有哪几个比较著名小说网站ǚ,ǚ2020秋冬女装礼服流行面料ǚ,ǚ姐雨后的小故事动态图ǚ,ǚ烟台天气8月ǚ,ǚ同德花园精装修小公寓ǚ,ǚ海贝 女装 新款2013ǚ,ǚ淘宝菜鸟驿站官网ǚ,ǚ南京天气网页ǚ,ǚ雨后小的故事1.2.3.ǚ,ǚ少儿电视剧九班的故事ǚ,ǚ北京朝阳惠中园小区天气ǚ,ǚ客厅地板装修效果图ǚ,ǚ御雅 空气能热水器ǚ,ǚ有趣的成长故事作文400ǚ,ǚ西安市卫生学校ǚ,ǚ关于书的名人故事200字ǚ,ǚ最新电音djǚ,ǚ2009年dj串烧歌曲深港ǚ,ǚ快手nzbz主题歌曲ǚ,ǚ女装库子ǚ,ǚ涠洲岛哪里卖海鲜干货ǚ,ǚ乡村小说网站免费阅读目录ǚ,ǚ哈尔滨电影院最新上映电影ǚ,ǚ玖姿女装小衫正品专卖店ǚ,ǚ相思渡口加快版djǚ,ǚ美食天下小吃分类ǚ,ǚ真实的动漫故事ǚ,ǚ淘宝上怎么挂东西卖ǚ,ǚ四川成都美食介绍ǚ,ǚ雍正熹妃传小说免费阅读ǚ,ǚ山东太阳能发电设备ǚ,ǚ宝马新能源车咋样ǚ,ǚ光阴的故事 钢琴版ǚ,ǚ童话故事渔夫和魔鬼ǚ,ǚ咕力学拼音韵母表ǚ,ǚ神话电影迅雷看看ǚ,ǚ美食广场收费系统ǚ,ǚ幼儿园装修报价表ǚ,ǚ2018江苏徐州环保督查ǚ,ǚ吉林至庆岭客车时刻表ǚ,ǚdj经典喊麦词ǚ,ǚ香港赌片 电视剧ǚ,ǚ批评名人名言ǚ,ǚ乡村爱情故事小说txtǚ,ǚ永康市职业技术学校招生网ǚ,ǚ电影录音用什么设备ǚ,ǚ高铁时刻表查询2011ǚ,ǚ太阳能沼气罐价格ǚ,ǚ选出5个动物编一个童话故事ǚ,ǚ南海幼师学校ǚ,ǚ素茶加蜂蜜能治咽炎嘛ǚ,ǚ安防视频监控系统设备ǚ,ǚ美人制造电视剧全集ǚ,ǚ讲故事比赛主持ǚ,ǚ留学生论文网合法吗ǚ,ǚ小学辅导中心签到表ǚ,ǚ电影票房吧 泰囧ǚ,ǚ西安航空技术高等专科学校招生ǚ,ǚ李凉最好看的小说ǚ,ǚ幼儿经典故事在线阅读ǚ,ǚ广西南宁宾阳图片ǚ,ǚ幼儿园环保知识讲座稿ǚ,ǚ资源与营运管理论文ǚ,ǚ成长的故事演讲开头ǚ,ǚ酒吧dj舞曲现场打碟ǚ,ǚ豆豉鱼炒油麦菜的做法ǚ,ǚ诺基亚手机火车时刻表查询软件ǚ,ǚ感人的经典故事ǚ,ǚ室内装修工程验收表格ǚ,ǚ签到表内容ǚ,ǚ谷歌不能翻译ǚ,ǚ哪里有学凉拌菜和卤菜ǚ,ǚ南宁市地铁运营时间表ǚ,ǚ美国老电影电影证人ǚ,ǚ中国化工设备反应釜网ǚ,ǚ娃娃菜烧肉圆ǚ,ǚ环保科技小标志图片大全ǚ,

亚搏体育app下载
我们的小程序有工具型的,主要对业务进行引流,比如腾讯课堂打卡小程序,企鹅速算小程序。 刚才介绍到了我们业务会有很多小程序,那么我们是如何进行小程序工程化实践的,又遇到了哪些问题呢。 我们曾经…
亚搏体育app网站为单机游戏玩家提供最新单机游戏业界动态、国内外单机游戏下载、单机游戏补丁、单机游戏攻略秘籍、单机游戏专题等内容。坚守单机阵地,弘扬单机文化!1号店(yhd.com)网上超市精选全球好货,各个品类的亚搏体育app下载。

最新发布

相关推荐

本周最热