1. 首页>
  2. 腾讯云代理

数据库在小程序·云开发中的应用

腾讯云 2019年08月14日 浏览642

    腾讯云代理 腾讯云新闻 腾讯云代理 腾讯云直播申请 游戏上云

摘要:

    高效率数据库为小程序·云开发赋能,共同为客户提供更多优质解决方案。

小程序云开发介绍

“小程序·云开发”是微信团队和腾讯云联合打造的“应用服务中台”。秉承高效、易用、安全、低成本的服务理念,为开发者提供稳定高性能的服务。“小程序·云开发”整合了微信公众平台和腾讯云的核心技术,提供云数据库、云存储、云函数、日志和监控等开发运维能力。通过“小程序·云开发”,开发者可无缝安全调用小程序的开放服务,提升开发效率,快速试错和落地产品。

image

小程序·云开发发展时间线

相比传统开发模式,云开发免去了搭建、维护服务器等步骤,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,让开发更简单、效率更高、运维更省事。

云开发(蓝)与传统开发(蓝灰)路径对比

在开发过程中,只需要使用SDK访问云服务,就可以使用各种云资源,不需要面对服务搭建过程中会遇到的各种麻烦。

云开发核心产品能力

只使用SDK,就可以完成绝大部分功能,再完成部分云函数的编写工作,上传代码,就能在你的应用里直接调用。

这样在产品功能确定后,就可以立即开始上手编码并快速上线;上线后用户快速增长,客户仍然只需关注产品迭代。

小程序·云开发的数据库服务

对大多数应用来说数据库都是非常重要的基础服务。

小程序·云开发数据库服务拥有以下几个特点:

  • 文档型数据库

    灵活的类JSON文档,集合类似于JSON数组。

  • 简单易用的SDK

    简单易用的数据库SDK,控制台直接操作格式化的数据。

  • 权限控制

    用户级别的权限控制,拥有强大的安全规则。

SDK与控制台能力

SDK让开发者在小程序端、服务端及web端等以api的方式访问数据库服务,不需要管理数据库连接。


我们对数据库操作做了接口封装,开发者可以跟简单的写书写CRUD语句,学习成本远低于标准语法。

云控制台是云资源的管理平台,在这里开发者可以格式化的查看数据,可视化的修改数据,可以导入导出数据,管理索引。在控制台,数据库里的数据不再是黑乎乎的终端,而是实实在在看得到的。

高级数据类型

云开发的数据库同样支持flexdb的一些高级数据类型如服务端时间地理位置数组和列表等。


地理位置支持范围搜索,列表支持常见的队列操作。服务端时间是个非常有用的数据类型,如果在客户端直接操作数据库,可以以一个特定的参考时间为标准,避免客户端取的时间不统一。


性能与稳定性

每个数据库资源都会分配一个实例ID,每一个实例都是至少一主二从的三副本的分片集群,数据库底层会自动选择最优副本集。

背靠flexdb强大的底层支持,云开发可以提供稳定、安全、高效的数据库服务,我们会管理连接、保障在套餐内的访问高效运转。


数据实时推送


数据实时推送是我们研发中即将上线的一项服务,客户端使用我们的SDK发起socket连接建立对一个集合的监听,目标集合中如果有符合过滤条件的数据发生变更,将会直接推送到建立监听的客户端。

使用实时推送可以更有效率的拉取数据,把你的应用变成实时有状态的,有一些场景会非常有用,比如可以用来做弹幕,做实时排名更新,做实时刷新,或者实时推送一些通知给到用户。


保障数据安全

安全规则是针对非小程序终端非常重要的一项能力,在小程序里所有的数据交换都是通过微信私密协议来进行了,这种方式保证了数据交换过程的安全性,请求被篡改或者伪造的难度非常大。安全规则功能即将推出,敬请期待。

在非小程序端,客户单如果直接发起一个数据库操作,很有可能数据被用户擅自修改,进而非法看到或者是可以修改一些敏感数据。我们目前线上的数据库权限功能比较少,私有访问就限定是每个用户只能访问自己创建的数据。

这很明显是不够用的,在更复杂的场景,开发者需要更多的可以定制的安全规则,来满足业务需求的同时也能确保自己的数据是安全的。

安全规则运行在云开发服务端,运行开发者编写的规则代码,确保只有开发者允许的数据库操作才可以进行。


解决方案及客户成功案例库服务

解决方案·在线状态系统

以一个简单的场景来呈现以下数据库实时推送的应用:

假如我们在一个小游戏里,需要知道哪些游戏好友是在线的,我们可以这样来实现。

每个进入游戏的用户每隔一段时间更新自己的在线状态,如果一段时间没有更新则认为是离线的。

每个接入游戏的用户同样监听自己的好友列表的在线状态,一旦有用户的在线状态发生了变更或者是一段时间内没有更新为在线,则认为该好友是离线的。

我们可以很轻易的用几行代码来做到一个高效的实时状态更新服务。

解决方案·确保用户和组数据访问的安全性
在云开发的当前产品能力布局下,web端一个非常重要的使用场景就是为小程序开发内容管理系统,这也是很多开发者很期待的一个能力。

  • 小程序的内容管理系统(CMS)

    CMS一般是面向企业内人员的,不同的员工有不同的权限,比如超级管理员可以修改所有内容,产品部门的同事可能可以修改产品信息,市场部门的同事只能查看。


  • 调用服务端sdk更新auth信息

如果有了安全规则,可以很轻易在用几行类js代码类书写一个可靠的权限分组的规则。使用服务端sdk修改用户的认证信息后就生效了。


客户案例·腾讯相册

腾讯相册是在云开发内测期间就已经上线并大规模使用的小程序,腾讯相册已于去年拥有破亿用户量。

需求:

兼容并“旧”,快速上线新功能如评论点赞等。

痛点:

新增小程序评论及点赞等操作需要用户的鉴权信息,存储原有的后端服务架构太复杂,增加新功能成本很高。

解决方案:

云函数中访问客户自有服务鉴权服务,存储评论及点赞数据到云开发数据库(2天实现)


需求:

快速上线,实现好友助力功能。

痛点:

后台研发资源有限,调用微信开放平台认证逻辑复杂

解决方案:

前端使用cloudsdk直接调用数据库或云函数、云函数天然支持微信开放平台鉴权,借助云开发高效鉴权能力,快速实现好友助力功能。

此外,云开发还是在多种应有场景下为多个小程序提供解决方案,例如降低成本(唯品会小程序)、细粒度监控版本变化并更新小程序(转转交易小程序)、缩小小程序体积(腾讯乘车码)。

相关文章