现行的微信小程序开发新模式

现在即便 Wafer2 再次降低了小程序开发的门槛,但自小程序诞生以来,业界关注小程序前端的技术演进较多,前端开发效率大大提高,而开发者却一直面临着以下后端瓶颈:

第一,看似简单的用户界面背后有复杂的后台逻辑,需要调用各种微信平台的接口,开发难度大;

第二、人力成本,一个小程序开发团队至少前端、后端、运维的人力,同时涉及各人力的沟通协作;

第三、安全、性能优化等对于小团队来讲都是很高的门槛,并且由于微信社交传播的放大作用,很多小程序访问量会突然猛增,极容易导致服务崩溃。

为此,通过对 Wafer1 和 Wafer2 中的授权流程以及相关配置的不断优化,2018 年 9 月,小程序·云开发正式上线。

小程序·云开发是微信和腾讯云联合研发的原生 Serverless 云服务。一般来说, Serverless 包括了 Backend as a Service 和 Func as a Service,而云开发则结合微信提供的各种能力,实现了免登陆鉴权,以及无缝地调用微信开放的 API。通过简化复杂的后端和运维操作,让即便不具备一定后端知识的开发者,也能高效开发出一款高质量的小程序。

云开发系统主要分为三部分:终端层、接入层和资源层。

终端层:为开发者工具提供了完善的开发、测试和运营能力,可以满足大部分开发者的需求。而 HTTP API 则提供了小程序外访问云开发资源的能力,使用 HTTP API 开发者可在已有服务器上访问云资源,实现与云开发的互通;

接入层:云开发请求都经过微信后台,由微信来保障通信安全、提供身份鉴权;

资源层:由腾讯云来提供函数服务和后台服务,以及保障云资源数据安全。

如下图所示,可以看到云开发系统架构涉及到微信、腾讯云和开发者三方,但腾讯云在底层打通了微信自研网络和云网络,以及开发者在腾讯云上已有的服务,在这个基础上构建了一体化的云端网络,开发者可以方便的将云开发结合到已有的服务里。



为了保障云开发后台架构以及稳定性,云开发设计了容灾架构。小程序·云开发后台服务采用多 IDC 多园区部署,做到了跨园区的容灾,每个园区都冗余一定的服务能力,当某个园区发生故障时,请求会自动路由到另外的两个园区,由另外两个园区继续提供服务,不会对业务产生影响。

而在网络层面,微信对用户采取就近接入原则,提高了接入质量。在这个基础上,借助 newDNS 实现精细和实时的引导,通过识别用户客户端版本、网络环境等数据,下发 IP 列表,引导用户接入到最合适的接入点,进一步提高用户的接入质量。



在安全性方面,云开发通过全链路的票据系统来保障整个请求链路的安全。如下图所示,首先是用户请求从微信客户端到微信后台服务这部分,云开发请求借助了微信底层的私有协议 mmtls 和微信后台服务进行通信,当业务层数据加上 mmtls 后,即可做到防窃听、防篡改、防重放、防伪装等安全措施。

而当微信后台收到云开发请求后,会先校验用户的身份,并通过全程票据来保障数据的安全性。具体是如何保障的呢?用户登录后,后台会下发一个票据给客户端,客户端每次请求均会带上票据。在后台服务的整个处理链条中,所有对核心数据服务的访问,都会被校验票据是否合法,如若为非法请求则会被拒绝,以此保障用户隐私数据,只能通过用户的客户端发起的操作来进行访问。

由于云开放的整个链路都是经过鉴权的,云开发在执行云函数时,后台会自动校验请求票据,开发者可以无缝的使用微信的开放能力,无需再通过常规的 OAuth 授权并自行维护 AccessToken。而“小程序·云开发”对数据访问链路做的专门优化,也促使小程序更快的数据加载速度。



此外,对于小程序开发者普遍关心的性能问题,微信小程序团队相关负责人也在小程序·云开发技术峰会上进行了深入解读。以派迪科技为例,执行云函数需要经过创建容器、下载代码、部署执行三个部分。由于容器的启动是一个很费时的操作,所以通过函数实例复用、容器实例预创建,热点代码缓存等优化,将云函数容器的启动时间从秒级变成了毫秒级。而在容器冷启动的过程中,开发者可以做代码精简(缩短下载时间)、资源复用(缩短执行时间)、公共剥离(增加缓存效果)、保持活跃(避免资源回收)等工作。

同时,为了提高云函数的性能,云开发也在通信、业务和网络层做了一些优化。在通信层,改造私有协议,优化长连复用;在业务层,分不同段请求,优化内部调用链路;在网络层,压缩系统间网络开销,从纯异步的方式改造成多段同步的方式。

正因如此,自今年以来云函数请求性能已经提升了 60%。据了解,小程序端一次云函数的请求,在测试环境中也已降到 140 毫秒,其中的相关优化也将在下一个微信版本中进行发布。

返回观点列表
本文标签:

相关专题

  • 电商/商城开发
    电商/商城开发

    杭州派迪科技为高端客户提供商城开发建设咨询策划,商城官网设计,商城建设开发服务,以国际化视野和标准为基础,为各行业领军品牌提供高端商城开发定制、策划、设计、互动与制作

    查看详情
  • 微信公众号开发
    微信公众号开发

    杭州派迪科技微信公众号开发,为全国企业提供微信公众号商城、H5、功能系统开发,如您需要找专业的公众号开发团队,委托第三方公司开发公众号菜单及网页内容请联系派迪科技

    查看详情
  • 小程序开发
    小程序开发

    杭州派迪科技专业小程序开发,为企业提供微信小程序开发,包括小程序商城、小程序应用及其他平台,可根据客户需求进行定制开发,提供源代码,可二次开发,可申请软件著作权,欢迎咨询。我们以用户为中心的程序功能丰富、直观且性能极佳。我们以清晰的业务目标视图制作您的项目目的地,并确保它支持用户访问体验。可在跨设备上产生无缝的全渠道体验,应用程序具有丰富的 UI/UX、规范化的数据库和强大的框架,可提供更好性能。

    查看详情
  • 在线教育
  • APP/应用平台开发
    APP/应用平台开发

    杭州派迪科技专业的app开发平台,9年开发经验,专注app开发、app软件开发、手机app制作为教育行业、检修行业、商城电商系统等APP提供过全程策划及开发

    查看详情

体验从沟通开始,让我们聆听您的需求!

开始您的数字化品牌体验! 15158117070 期待您的来电!

[ 网站建设×品牌官网设计×大策略营销门户×微信小程序开发×微信公众号开发]

派迪业务总监微信号

派迪业务总监微信号

了解最新项目报价

派迪产品经理微信号

派迪产品经理微信号

免费获取项目策划

我们正使用 cookies 来改善您的访问体验

派迪科技非常重视您的个人隐私,当您访问我们的网站www.hzpady.com时,请同意使用所有cookies 。

如果您想详细了解我们如何使用cookies请访问我们的 《隐私政策》

Cookie 偏好

如果您想详细了解我们如何使用cookie请访问我们的 《隐私政策》

管理cookie偏好

基本 cookies

始终允许

这些 cookies 是网站运行所必需的,不能在我们的系统中关闭。它们通常仅针对您所做的相当于服务请求的操作而设置,例如设置您的隐私首选项、登录或填写表格。您可以将浏览器设置为阻止或提醒您有关这些 cookies 的信息,但网站的某些部分将无法运行。这些 cookies 不存储任何个人身份信息。

性能 cookies

始终允许
这些 cookies 使我们能够计算访问量和流量来源,以便我们可以衡量和改进我们网站的性能。它们帮助我们了解哪些页面受欢迎和不受欢迎,并了解访问者如何在网站上移动。这些 cookies 收集的所有信息都是汇总的,而且是匿名的。如果您不允许这些 cookies,我们将不知道您何时访问了我们的网站,也无法监控其性能。

功能性 cookies

这些 cookies 收集信息用于分析和个性化您的定向广告体验。您可以使用此拨动开关来行使选择不获取个人信息的权利。如果您选择关闭,我们将无法向您提供个性化广告,也不会将您的个人信息交给任何第三方。

定位 Cookies

这些 cookies 可能由我们的广告合作伙伴通过我们的网站设置。这些公司可能会使用它们来建立您的兴趣档案,并在其他网站上向您展示相关广告。它们不直接存储个人信息,而是基于唯一标识您的浏览器和互联网设备。如果您不允许使用这些 cookie,您将体验到较少针对性的广告。

我们正使用 cookies 来改善您的访问体验

派迪科技非常重视您的个人隐私,当您访问我们的网站www.hzpady.com时,请同意使用所有cookies 。

如果您想详细了解我们如何使用cookies请访问我们的 《隐私政策》