微信小程序中心团队负责小程序开发,包括小程序开发工具、小程序第三方平台、小程序编译、IoT系统等,核心工作目标是降低小程序开发门槛,提高小程序开发效率。
今天的主题是小程序云服务,我想借这个机会跟大家分享一下我们在这两年在小程序云服务方面做了哪些探索,推出了哪些产品,在产品升级上的思考是什么,为什么要这么做。
早在2017年1月小程序正式对外发布时,腾讯就推出了第一套解决方案,这套解决方案的核心思想就是通过创建一个腾讯账号,定制小程序的SDK,以相对便捷的方式构建小程序服务。
2017年8月份,随着小程序开放给个人用户,越来越多的人加入,我们发现这个小程序有一定的门槛,我们跟腾讯云讨论,能不能把这个门槛降低一点。
我们思考小程序开发者需要什么服务,推出了小程序云开发这个新产品,跟之前的体系完全不一样,有全新的架构,全新的升级。
它和小程序完全不一样,通过授权开通一个账号,然后搭建一个购买环境,然后分发到云端,小程序的前端开发,以及小范围的服务端开发,都需要引入SDK,包括相关的配置,提供安全的运行环境。
之后开发者需要在两端进行开发和调试,有接口进行相关逻辑的处理,完成所有环节之后我们就可以发布小程序了。它帮助小程序提高解决问题的效率。它的门槛还是有点高的,小程序开发者需要了解基本的服务端支持。随着小程序对个人开发者的开放,比如增加了前后端开发,我们希望这个过程可以更简单,所以我们就想着怎么让它更简单。
我们的核心思考方向就是这几个步骤中哪些是可以优化的。首先在开发环节,我们去掉了购买环节,给大家提供了免费的开发环境。在开发环节,我们希望有更多的开发者加入。如果要在发布前购买主机,基本上是有压力的,而且这个压力非常大,所以我们优化了之前的购买选项。
这一步完成后,我们在思考在开发过程中,如何让它变得更简单。我们想尽量不要有小程度的服务端开放,让服务端的开发和小程序的开发紧密结合。我们把开发环境和代码部署做了紧密的结合,小程序员在开发者数据方面开发完成后,将这两部分结合起来,在开发者平台直接提交服务端代码部署,完成服务端的展现后,在里面完成相关的日志就可以了,这给我们提供了很好的支持。
我们把小程序前后端的开发调试结合起来,在完成小程序前后端的开发之后,开发者需要在开发者工具上跳转到腾讯控制台,完成小程序云从开发环境到生产环境的部署,提交小程序审核发布。我们把这个方案放到了小程序文档里,很多开发者加入进来,一定程度上降低了门槛。
这在一定程度上降低了小程序开发的门槛。今年我们在思考可以做哪些优化来降低门槛的时候,开发者一定要知道一个运维方法,用微信扫一扫就可以用。
为什么小程序和云服务一定要是两个独立的东西?那把它们结合起来怎么样?如果结合起来,刚才说的很多步骤都是不必要的。我们从两个方向去思考,第一是如何把小程序和云服务两个不同的技术体系整合起来。第二是如何把两个产品整合成一个产品。

首先是技术指导,传统的云服务,小规模的前端请求,到云服务,云服务需要发验证请求,微信服务器根据这个信息,提供什么样的服务,我们在这个环节做的事情,就是优化这个模型。
我们做了一个技术上的优化,把微信服务器和腾讯云服务器互换位置。因为请求经过微信服务器,我们知道用户是谁,他的ID是什么,所以我们完成了通用的用户信息平台。现在云服务可以知道进来的用户是谁,这样就省去了事后验证的麻烦。同时我们在微信服务器和云服务器上做了很多部署,也搭建了一些物联网网络,减少两者之间的延迟。只要把这个能力开放给所有的小程序,其实从技术上来说,我们已经实现了。
在解决了微信和云的技术需求之后,我们在产品上做了两个基本的决策,第一是云的能力应该是小程序的基础能力,开发和框架应该是在一起的,它们不是天然的,我们需要有腾讯账号授权之后才能使用,在开发者平台上,我们才能使用这些东西。
开发者不需要理解太多的概念,以前开发者需要把整套小程序搭建好,再去开发逻辑。在我们的思维里,这套东西是不应该存在的。整个体系里,我的云服务知道谁上来,请求的IP地址,这些东西是存在的。云服务的开发体验、运营体验应该如何准备?我们希望这些东西不存在。
回顾我们是怎么做的,云端能力是小程序的基础能力,只要在一个地方开发,就可以把前后端都部署上去,我们把这种方式定义为小程序云开发。产品和技术的问题我们已经解决了,下一步就是在这个方案的基础上丰富云端开发能力。
这是一张基础开发能力的表格。在一个服务里,我们把它分成几个模块。第一个模块是数据处理和运行效率模块。消费者把信息传输到我们的云服务平台,然后这些服务把数据处理、拼接起来,再交给云端运行的小前端、云函数、代码。微信私有协议天然就是经过认证的,开发者只需要写自己的业务逻辑代码,不需要去做之前繁琐的云服务。从目前的一些实践来看,这种开发方式非常高效。
第二个模块是数据库模块,任何一个模块都离不开数据存储,我们利用数据库来完成这个模块,在云端可以很方便的获取到,有些复杂的应用不能满足用户的需求,但在云端功能上可以充分凸显出来。
第三部分是文件存储模块。在云端开发这边,我们需要存储函数来完成功能。以前我们存储一张照片的时候,可能需要在一个小的前端去检索。在云端开发里,这个过程会变得非常简单。他只需要在前端去调用一个文件,找到这个文件的目录是什么,然后就可以把这个文件存储到云端了。
最后,在小规模开发中,我们提供了完整的云控制台,用户可以在里面上传自己的云函数,并且非常快速的部署。我们经常会遇到一些丢包点,在云开发中可以进行扩容,当丢包点达到一定程度的时候,也可以避免资源的浪费。
在小程序开发者计划里,我们结合了这套能力,在传统的管理器、编辑器基础上增加了云开发入口,把云开发的相关部署放到小程序开发者工具里,提供完整的平台,包括监控、服务等信息,让你可以看到整个系统的运行情况。
我们现在小程序中心化有非常好的标准,我们上线的官方小程序会逐步发布。我们也在不断开发一些新的小程序,比如我们给高校提供了一个教学程序,一两周之后会预留一个小规模的后台管理版本。内部像相册之类的东西,完全基于小程序的开发。最右边这个是游戏团队做的新游戏,这个游戏也是完全基于小程序的开发,我们对它的质量很有信心。
最后,我们做的是让小程序开发变得更简单,后续的开发中我们还会有更多的能力分享给大家,希望大家能够开发出更好的小程序。
3.林超小程序云服务的开发与探索--.pdf