作者:phoenixxliu,腾讯 TEG 后台开发工程师
目录:
-
导语
一、背景
二、竞品分析
三、需求和挑战
四、架构和方案
五、总结和展望
导语
小程序云开发(Tencent CloudBase
)拥有易接入、高性能、高可用等特性,其中云数据库作为核心组件之一,可以有效降低运维成本,帮助开发者实现业务快速上线与迭代。本文将简要介绍如何通过 TEG 云架构平台部的高性能分布式 NoSQL 数据库,为近百万小程序云开发用户提供完整的原生云端数据库能力支持。
一、背景
要理解小程序云开发,不妨将之从字面上拆解为小程序和云开发两个部分。本节部分我们也将尝试从这两个方面带大家一起简要梳理下相关的背景知识。
1.1 云开发
从软件工程的角度来看,软件开发经历了如下三个阶段:传统开发-->敏捷迭代-->serverless。传统的开发模式和敏捷开发模式除了需要开发者编写核心的业务逻辑外,都不可避免地需要对后端的基础设施进行管控和优化。比如,一个应用的逻辑可以很简单,可一旦涉及到应用的发布部署,就需要开发者花费大量精力进行服务器、数据库、网络等基础设施的申请和搭建,还要考虑这些后端基础设施的稳定性、可用性和监控指标。这一切耗时耗力又与产品的核心功能无关,对于需要快速开发和试错的产品,传统的模式开发速度慢、部署和运维成本较高。

随着 serverless 概念的火热,越来越多的开发开始转向 serverless 架构发展。“serverless”并不是指后端没有服务器,而是将后端服务器及相关运维操作变得对上层应用开发者不可见和透明。用户无需关心后端的基础设施,直接通过云 API 一键接入云函数、云数据库和云存储来获取算力、数据库、存储等基础的后端能力。这种随用随取的开发模式,不但可以让开发者能更专注于自身的业务逻辑,还具有低成本、开发速度快以及免运维等诸多优势。
1.2 小程序
小程序应该不用过多介绍,相信现在每一个使用智能手机的人都已经在日常生活中或多或少地使用到了各种各样的小程序:点餐、外卖、打车、购物等等。为了严谨起见,还是按张小龙朋友圈的介绍给出一个简单的定义:小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。也体现了“用完即走”的理念,用户不用关心是否安装太多应用的问题。应用将无处不在,随时可用,但又无需安装卸载。
自 2017 年 1 月 9 日微信发布小程序以来(十年前正好是乔布斯发布首款 iphone,有媒体解读,这是张小龙的致敬以及野心的表现),小程序在这几年的发展中已经形成了完整的生态系统,用户数和小程序数量也有了非常显著的进步和发展,其他主流互联网企业也开始纷纷布局小程序平台,如支付宝小程序、百度小程序、抖音小程序、今日头条小程序等等。据微信提供的数据,在 2019 年微信小程序全球交易额达到了 8000 多亿,同比增长 160%,日活跃用户超过 3 亿,截至目前,微信上线的小程序超过 100 万个,拥有超过 150 万开发者、8200 多个第三方平台,小程序在电商,零售行业同比去年有爆发式增长。到 2020 年微信公开课 PRO(同样是 1 月 9 日),全网的小程序数量已经超过 450 万。可以说,我们已经进入了一个“全民小程序”的时代。
受到今年新冠疫情的影响,由于小程序开发相较于 app 开发更加轻量和低门槛,同时也能触达到更多的人群,各种健康码、申报、信息核实等大部分都采用小程序的形式上线。类似的,线下实体店客流受阻,越来越多的商家和店铺将自己的销售转移到线上来保证疫情期间的现金流,小程序同样也是这一场景的不二选择。

越来越多样化和越来越火爆的小程序也就意味着会有越来越多的小程序开发者入场,如何服务好这些基于小程序生态的开发者们就成为了一件必须要解决的事情。于是小程序云开发问世,可以说小程序需求 + serverless 理念 = 小程序云开发。小程序云开发以微信作为小程序前端运行的依托,同时又通过接入云函数、云数据库和云存储等云服务,来达到对后端基础设施的“开箱即用”。这些特性可以在很大程度上解放小程序开发者的生产力,大大降低开发的成本和难度。
二、竞品分析
事实上,互联网巨头们很早就看上了这一块市场。以 google 为例,自从 2014 年 10 月收购 filebase,google 将自身已有的云端服务与工具一并整合进 filebase,使之成为专门为 app 开发者提供一站式的BaaS(Backend as a service,后端即服务)产品,涵盖了开发、质量、分析与发展着四个主要的模块,提供了认证、数据库、存储、云函数、机器学习等服务以及一系列性能和数据分析工具。

如果重点看它的数据库产品的话,filebase 提供了