林超:小程序云服务的发展探索

12月15日,由腾讯云主办的首届“腾讯云+社区开发者大会”在北京举行。本届大会以“新趋势•新技术•新应用”为主题,汇聚了超40位技术专家,共同探索人工智能、大数据、物联网、小程序、运维开发等热门技术的最新发展成果,吸引超过1000名开发者的参与。

分享嘉宾:林超

微信小程序中心团队,负责小程序开发,包括小程序开发工具,小程序第三方平台,小程序编译,以及IoT系统,核心工作目标是降低小程序开发门槛,提高小程序开发效率。

今天的主题是小程序的云服务,想借这个机会和大家分享一下,在过去两年中我们在小程序的云服务上做了什么探索,以及我们推出了什么产品,在产品升级中我们的思路是怎样的,我们为什么这样做。

早在小程序正式对外发布的2017年1月份,腾讯推出了第一套解决方案,这套方案的核心思想,是去创建一个腾讯的帐号,为小程序定制的SDK,用比较便捷的方式搭建一个小程序服务。

2017年8月份随着小程序个人的开放,有越来越多的人加入,我们发现这个方案有一定的门槛,我们和腾讯云一起探讨我们是否能做什么工作,降低这个门槛。

我们思考小程序的开发者需要什么服务,推出了一个全新的产品,叫做小程序云开发,它是与之前的系统完全不同的,是一个全新的架构和全新的升级。

Wafer和小程序是完全不同的,通过授权的方式开通一个帐号,然后营造一个购买环境,再分配到云端。小程序的前端开发以及小程度的服务端开发,两部分都要引入SDK,包括相关的配制,提供一个安全运营的环境。

之后开发者需要在两端开发和调试,有一个接口进行相关的逻辑处理,完成所有的环节,我们才把这个小程序发布。Wafer帮助小程序提高了解决效率,它的门槛还是有点高,小程序的开发者需要理解基本服务端的支持,随着小程序对个人开发者的开放,比如说在前端开发和后端开发的加入,我们希望这个过程能够更简单一点,所以我们思考怎么把它变的更简单。

我们的核心思考方向是在这么多步骤中哪些是可以优化的,首先在开发的流程中,我们去掉了购买的环节,给大家一个免费的开发环境。在开发环节,我们希望更多的开发者加入,还没有马上发布的时候,如果你要购买一个主机,基础上是有压力的,这个压力是非常高昂的,所以我们优化了之前的购买选项。

在这个步骤完成以后,我们在想开发的过程中怎么让它变的更简单,想尽量不要有小程度服务端开放的概念,让服务端的开发和小程序的开发紧密结合在一起。我们把开发环境还有代码部署做了一个紧密的结合,小程序员在开发者数据方面完成了开发以后,这两个部分结合,直接在开发者平台上提交服务端代码的部署,然后完成服务端的演讲,他能在里面完成相关的日志,这对我们做了很好的支持。

我们结合了小程序前后端的开发和调试。开发者在完成小程序前后端的开发之后,需要在开发者工具上跳转到腾讯的控制台,从开发环境到生产环境,完成了小程序云端的部署,提交小程序的审核和发布。这个方案我们把它放在了小程序的文档上,有很多开发者加入进来,降低了一定的门槛。

Wafer2,一定程度上降低了小程序的开发门槛。今年我们在思考有一些什么样的优化时,可以降低门槛,开发者一定需要知道一个运维方式,小程度通过微信扫描就可以使用。

为什么小程序和云服务一定是两个割裂的东西,结合在一起怎么样?结合在一起,刚才的很多步骤都是不需要的。我们从两个方向思考,第一个怎么做,怎么融合小程度和云两个不一样的技术体系。第二个产品体系上怎么做,如何把两个产品融合在一起,变成一个产品。

首先技术上指导,传统的云服务、小程度前端请求,到了云服务,云服务需要发出一个校验的请求,微信服务器再根据这些信息提供什么样的服务。这个环节我们做的事情是要优化这个模型。

我们在技术上做了一个优化,调换了微信服务器和腾讯云的位置,因为经过了微信的服务器,所以我们知道上来的请求对应的用户是谁,他的ID是什么,那么就完成了Wafer1的通用用户信息平台。云服务这时候就可以进来的用户是谁,从而省去了将来的较验过程。同时我们在微信的服务器和云服务器做了很多的部署,我们搭建了一些IoT网络,使这两个之间的延时变的非常少。我们只要做到对所有的小程序都开放这个能力,技术上实际上就做到了。

技术上解决了微信和云的条件之后,在产品上,我们定了两个基本决策,第一个云能力应该是小程序的基础能力。开发、框架这些东西应该是在一起的,不是天然有的,我们经过授权,有一个腾讯的帐号才能使用,在开发者平台上,要用这个东西就可以了。

开发者不需要去理解过多的概念,过去开发者需要完成整套的小程序建成服务,然后再进行逻辑的开发,在我们的思路中这套东西是不应该有的。整套系统里面,我的云服务知道上来的人是谁,请求的IP,这些东西是存在的,云服务的开发经验以及运营经验应该怎么配制,这些东西我们都希望它是不存在的。

回头看Wafer2怎么做,云能力是小程序的基础能力,只要在一个地方开发就能做到前后端的部署。我们把这套方法定义为小程序云开发,我们解决了产品和技术上的问题,接下来要做的是在这套方案上丰富云开发的能力。

这是一个开发基础能力的表,在一个服务中,我们把Wafer分为这几个模块,第一个模块是数据处理和运效模块,消费者把信息传到我们的云服务平台上,然后把这些服务进行数据处理和拼接后,给小程度的前端,云函数,在云端运行的代码,微信私有协议天然鉴权,开发者只需编写自身业务逻辑代码,不需要做之前烦琐的云端服务。从目前的一些实践来看,这种开发方式是非常高效的。

第二个模块是数据库模块,任何模块都离不开数据存储,我们用数据库来完成这个模块,它可以在云端便捷获取。一些复杂的应用满足不了用户的需求,但它可以在云函数中进行完整的数据库凸显。

第三个部分,文件存储模块,在云开发端我们需要存储功能完成功能的。过去我们存储一个照片,可能我要在小程度的前端,去调取,在云开发中这一过程会变的非常简单,他只要在前端调用一个文件,这个文件的目录是什么,他就可以把这个文件存储到云端。

最后,在小程度开发中,我们提供了一个完整的云控制台,用户可以上传我的云函数,做到部署是非常快捷的。我们经常会遇到一些落点,在云开发中可以进行扩容,落点下去的时候,我们也可以避免资源的浪费。

在小程序的开发者程序中,我们结合了这一套能力,在传统的管理器、编辑器的基础上加了云开发的入口,把云开发的相关部署放到小程序开发者工具里面,提供完整的平台,包括监控、服务以及其它的信息,可以看到整个系统运行的情况。

我们现在在小程序的中心有一个非常好的标准,对于推出的官方小程序,我们会慢慢放上来。我们在不断开发一些新的小程序,比如我们向高校做了一个教学,通过一两周就会储量一个小程度后台的管理版本。我们内部,像相册这些东西都是完整地基于小程序的开发来做。最右侧的这个是游戏团队现在新做的游戏,这个游戏也是完整地搭建在小程序的开发上,对它的质量是有信心的。

最后,我们做的是让小程序的开发更简单,并且开发的后续有更多的能力和大家见面,希望大家能够开发出更好的小程序。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券