前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >快速上线小程序,Serverless云开发带来哪些极致体验?

快速上线小程序,Serverless云开发带来哪些极致体验?

原创
作者头像
腾讯云开发者
发布于 2020-04-07 08:56:43
发布于 2020-04-07 08:56:43
5.5K1
举报

当小程序遇上 Serverless 云开发,会碰撞出什么样的火花?云开发能为开发者带来哪些体验提升,它能够为开发者们带来哪些发展机会?本文是王利华老师在「腾讯云开发者社区沙龙online」的分享整理,为大家揭开小程序·云开发的神秘面纱。

一、疫情期间,小程序极速助力“抗疫”

云开发(CloudBase)是一款云端一体化的产品方案 ,采用 serverless 架构,免环境搭建等运维事务 ,支持一云多端,助力快速构建小程序、Web应用和APP。

腾讯在助力抗疫时期发起了“战疫开发者公益联盟活动”,当时只有一位前端同学要紧急上线,使用云开发仅用四个小时就完成了前后端,包括数据库、语音数据报表能力,可见小程序·云开发效率还是非常高的。

为抗击疫情,自2月1日至5月1日,云开发向企业、政府、媒体及其他组织小程序用户提供了10000份免费旗舰版使用名额,大家感兴趣也可以去申领体验。

另外疫情期间腾讯还组织了黑客马拉松,评选出了许多优秀的产品。比如在疫情期间新闻专题的小程序,复工和返校排查方面的小程序,留守宠物互助平台,交通行程查询相关的小程序,小区疫情监控的小程序等等。

这次疫情爆发凸显出小程序的优势:

第一就是小程序能够快速而又广泛的触达到用户。

第二就是云开发带来的优势了,云开发是弹性的资源,比如有一些疫情的小程序,投放出去突然每天就有几千人访问,如果是在以前购买资源的情况下,弹性扩充是不足的。所以开发者使用云开发的产品能够积极有效完成抗疫。

二、云开发产品概述及优势

首先引入一个小的问题:Serverless到底是什么?业界现在关于Serverless的讨论特别多,有的说是无服务端,有认为是纯前端,还有人认为Serverless是云函数、FaaS,或是BaaS服务端级服务,众说纷纭......

我认为Serverless是 FaaS+BaaS+Devopsless 这三者的组合,也即提供云函数服务和后端级服务加Dopsless,让开发者专注于业务和应用开发。

我们基于这个想法,在Serverless这个理念上进行实践,开发了一款云开发(Tencent Cloud Base,TCB)这款产品。

整个Serverless云开发产品,最底层的基础产品,包括云函数、数据库、云存储和CDN,这些就是所有应用基本都会用到的基础产品。

在基础产品上我们进行了基础服务的封装。比如常用的用户管理,数据管理,日志统计,监控告警等等。

在这些基础产品和基础服务上,我们提供了一些高级能力,比如静态网站的托管,有其他扩展能力,如智能图像,实时音视频的方案。我们同时给开发者提供一整套开发的工具。比如命令行开发者工具CLI、可视化的UI控制台。

我们还面向不同开发者提供各种不同的SDK,很多人认为小程序云开发很可能只是面向小程序,其实不是这样的,我们现在还有其他的解决方案。比如面向Web开发者,只要使用我们JavaScript SDK,就可以使用云函数、云存储;面向移动开发者,可以使用我们的Flutter SDK;面向服务端开发,可以调用我们的Node.js SDK......

我们的SDK非常丰富,上面应用支撑小程序/微信应用开发、Web开发,移动APP开发,以及loT应用的开发。如果开发者不想使用各端SDK,也可以采用以前的方式,比如说调用HTTP都是支持的。

云开发有以下四大核心优势:

第一:开箱即用。我们尽可能将众多配置、域名给大家做好封装,减少工作量。

第二:弹性扩容。云开发能做到秒级扩容,降低运维成本。

第三:安全稳定。我们通过了多项信息安全体系认证。

第四:多端场景。我们提供有丰富的SDK,多端统一管理。

对于开箱即用,以前开发一个服务端,需要用到很多服务端的经验和知识,如负载均衡,冷备、热备等等,对于应用开发者和前端开发者来说是比较复杂的。

云开发理念就是把所有复杂的逻辑和配置都封装好,然后给开发者使用,屏蔽一切复杂,把简单留给开发者。所以我们认为,只要学习云开发的相关知识,一个星期基本上就能大体掌握,做到三个小时上线一款小应用,开发出相当于有三年应用经验的产品。

这是完全可能的,因为云开发已经把所有的配置都封装好了,开箱即用。相当于一个应用开发者只要学习一个星期,就可以掌握三年的服务端经验,只不过这个经验是封装好交给你的一个服务。

另外我们把小程序背后的一些服务封装成了云接口,云调用。比如要上传一张图片,不需要再写服务端代码,也不需要关心图片要放在对象存储上面,只需要调用SDK,一行代码就可以上传了。云开发开放150个免鉴权接口,只要一行代码可以轻松搞定。

对于弹性扩容,以前我们需要做预算,比如订单服务需要分配多少台机器,支付服务需要多少台机器等。你估算少一点是为公司节省资源,也是开发工程师的优秀素养。但是很可能遇到峰值会扛不住,要担责任,但是多了又怕浪费。如果使用云开发,就不需要担心这些问题了,可以做到 0 到 1 再到 N 的秒级扩容。

从降本提效的角度上,以前的前端研发需要跟后端、数据库、运维很多地方打交道,但是现在使用云开发,会有1:4的效率提升。

目前有50万的企业客户和开发者选用小程序云开发。包括深圳地铁、深圳机场都是使用很深入的一些客户。

三、云开发使用流程

接下来重点介绍一下云开发的使用流程。

首先要注册一个腾讯云的帐号,再新建一个云开发的环境,然后选择登录授权的方式,比如可以匿名调用,也可以选择微信公众号的开发授权,接着选择对应的SDK,比如面向Web开发选用JavaScript SDK,这样就可以直接使用JavaScript SDK调用数据库、资源存储,来应用开发和上线,最后是服务监控和日志服务

你可以选择自己最熟悉的方式专注于业务开发就可以了,所有的跟服务端、运维相关的我们都封装好了。

目前我们支持的基础产品,主要是数据库、存储和云函数。目前我们支持的数据库是文档数据库—NoSQL数据库。支持的数据类型有符串、数字、对象、数组、布尔值,地理位置点、时间还有null。

文档数据库的调用方式也有很多种,比如客户端可以用SDK调用我们的数据库和云函数,在服务端云函数里面调用数据库也是可以的,因为我们已经在逻辑层面上做好了封装了。

如下图所示右边这块代码,前端引用JavaScript SDK,初始化环境,把环境ID填进去,获取数据库的引用,再获取文档的集合,然后向里面添加数据类型。比如添加一个List的对象到数据库里面,这一段代码实际上跑在客户端了。

存储也是核心功能,比如有很多文件、视频需要存储,对此我们提供云存储能力。云存储能力可以提供给小程序调用,也可以提供给Web端调用。进行文件管理我们提供有三个平台,如果是在小程序云开发里面,可以在微信的IDE里面进行管理。如果是开发Web应用或移动应用可以到腾讯云的控制台进行文件管理。

云函数的业务逻辑也比较简单,比如在Web开发中,引入JavaScript SDK,使用callFunction的方式就可以调用云函数。

四、代码演示:云相册应用

下面介绍使用小程序云开发出的一款云相册应用,代码托管在GitHup和Gitee,大家可以扫码体验一下。

首页是九宫格形式的图片分类,点击可以浏览图片列表,然后还有图片的上传和预览,包括删除功能。

如果要上传一张图片,可以直接引用我们微信小程序端的SDK,再上传数据就可以了,当然也可以在客户端直接上传图片到我们的存储上面,通过我们提供的云函数来调用方法上传图片到云存储。

我们也提供数据库和存储级别的安全设置。如果不希望公开上传的图片,可以设置成私密相册,仅供创建者读写。数据库也是如此,能自己权限设置,我们有安全规则,可以通过微信IDE做控制。

总体而言,整个小程序云开发包含了所有服务端能力,仅需要学习一周,基本上就能等效于一名中高级服务端工程师开发出来的应用质量。因为我们把所有复杂逻辑都封装留给了自己,把简单留给开发者。

五、云开发带来的机会

接下来聊聊云开发会给开发者带来哪些机会?

第一,新一轮的研发模式会升级。以前需要大量服务端、运维的同学,到了DevOps时期会将运维工作量降低,到现在我们的云开发把服务端工作量再降一个层次,未来研发模式会有新的形象,需要根据公司的架构升级做一些工具应用。对于开发者来说,这是一个机会,做业务的同学开始有时间来思考整个架构的革新。

第二,我们提出云开发的理念,我们认为Serverless能让应用开发者变成云开发者,所以未来前端和应用的同学会有一定机会掌舵业务。

为什么这样说呢?大家现在看到的CTO大部分都是做服务端出身的,算法和前端出身的会很少。现在云开发把服务端成本和复杂封装了,让大家得以专注于业务开发上,所以云开发者就可以有更多机会变为业务负责人。

第三,云开发是一门普惠的技术,尤其目前有一些免费的额度放出,它能够降低创业成本,提升时间效率。所以对于创新创业来说,是极好的机会。

六、Q&A

Q:Serverless云开发如何解决网站域名备案的问题?

A:我们直接生成一个默认的域名。

Q:云开发有免费额度吗?

A:无论是到腾讯云官网控制台创建,还是在小程序云开里创建,都有免费的额度。

Q:云开发数据库结构怎么固定?

A:我理解为字段怎么固定,比如定义一个前端的对象,这个对象传入数据时就有数据,没有传入数据就是空数据,这样固定格式就可以了。

Q:云开发和Serverless有什么关系?

A:Serverless实际上是一个技术理念。目前来看无论是各大厂商的云函数,比如说腾讯云的SCF,还是其他的厂商的云函数,都是对于Serverless的一个云实践。但是我认为Serverless是云函数加BaaS加DevOps三者的集合。云开发是产品的实践,把BaaS、DevOps整体的技术进行封装,开发者使用SDK就可以使用各种服务了,基本不用管服务端和运维。目前很多厂商提出具有Serverless能力,但其实它只做到了云函数,而云开发基本上是把后面三块都包括进来了。

Q:在小程序里图片下载很费CDN流量,但是相册希望图片是高清原图怎么办?

A:这块我们也在做,接下来会有针对图像的扩展能力,如果是在预览环节就会对图片做裁剪,大家看到的图片都是缩略图,如果想看原图就再下拉,大家可以期待一下我们后期的扩展能力。

Q:云开发调试有什么好的方案吗?

A:方案有很多种,比如可以在云端调试,可以在云函数调试,同样可以在CLI里做调试。

Q:云开发是有固定的IDE吗?

A:云开发包含了Web、移动APP、小程序的开发,目前小程序云开发提供有微信开发IDE和CLI命令行工具,大家可以通过云开发平台下载使用。

Q:QQ小程序如何使用云开发?

A:目前在灰度中。很多能力慢慢就可以看到了。

Q:云开发有静态托管吗?

A:有的。

Q:现有的业务想转移到云开发操作流程应该怎么样?

A:先把业务逻辑搬到云函数,比如说数据库之类,通过写一个转移工具基本可以实现。如果是新业务,直接可以使用云开发进行开发。后续我们也会推出相关资料,介绍如何把旧业务转移到云开发,毕竟云开发能够大幅提升效率。

Q:云函数的可以实时部署和上线吗?

A:可以,云函数部署可以通过IDE部署,也可以通过官网上的控制台进行部署,此外还能通过命令行工具实时部署云函数。

Q:云开发用什么数据库?

A:目前是自研文档型数据库,基本上可以类比NoSQL的数据库。建议大家从我们的产品体验云开发的能力。

Q:请问Koa可以搭配云开发Web应用吗?

A:这个后期会开放出来,目前支持直接部署Node应用和云函数。我们的Web现在已经在灰度中了,大家可以使用。但是我们还有很多东西在后面准备,会有越来越多的一些文章、资料、文档体现出来,这个大家后面可以看到了。

Q:是不是用了云开发做出来的东西版权是腾讯的?

A:当然不是,你用云开发的资源开发出来的小程序或者应用还是属于自己的。

Q:Node版本是不是指定?

A:云函数的Node版本是可以指定的,但是我们建议还是高级一点,我们后面也会推出更高级的Node环境。

Q:开发一个微信小程序的成本是多少?

A:这个问题不好回答,具体跟你的应用业务相关。但是如果使用了云开发,你的服务端成本会直线下降,我们通过经验值估算通常会有1:4的效率提升。

Q:云开发现在是怎么计费,都有哪一些价格?

A:首先每个同学都可以申请一个免费的额度使用,大家可以进入官网了解更多详情。

Q:云开发的安全性如何?应对ddos这类攻击有什么优势吗?

A:首先你使用云开发,比如在微信小程序里面,每一次的请求都是带鉴权的,有登录态的,这就是一个很好的天然防护。然后我们可以使用云函数做一些OpenID校验,这都是代码级的,基本上可以防住很多非法的请求。

讲师简介

王利华,腾讯 P3.3 产品经理,负责腾讯云云开发基础产品建设。曾在淘宝、达摩院带领过工程技术团队,出版著作《React Native 入门与实战》。目前关注 Serverless 相关云计算产品。

关注腾讯云开发者社区公众号,回复“在线沙龙”,即可获取老师演讲PPT。

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

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

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

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

评论
登录后参与评论
1 条评论
热度
最新
您好,请问这个是不是仅限于PC端呀?我在移动端点击打开摄像头没反应,PC端是好的
您好,请问这个是不是仅限于PC端呀?我在移动端点击打开摄像头没反应,PC端是好的
回复回复点赞举报
推荐阅读
编辑精选文章
换一批
云开发初探 —— 更简便的小程序开发模式
小程序诞生以来,业界关注小程序前端的技术演进较多,因此众多小程序前端的框架、工具也应运而生,前端开发效率大大提高,而后台的开发技术则关注不多,痛点不少,具体痛在哪里呢?
李成熙heyli
2018/09/21
4.4K1
云开发初探 —— 更简便的小程序开发模式
假期为啥不用加班,因为小程序云开发上线了这个功能!
开发阿杰早在假期前就计划好了和女友的巴厘岛之旅,也提前订好了机票。可偏偏就在放假前一天,因公司接待需要得紧急上线一个访客预约的小程序解决自主预约及访客通知的需求,由于没有通过小程序发通知的经验沉淀,从阅读文档到产品发布可能需要耗费不少的时间,这使阿杰犯了难,原定于19:00起飞的飞机,他还能赶上吗?
腾讯云开发TCB
2019/04/09
1.1K0
假期为啥不用加班,因为小程序云开发上线了这个功能!
Serverless——前端的3.0时代
《信息简史》中说“进化本身是生物体与环境之间持续不断的信息交换的具体表现”,前端技术的进化也是如此。浩瀚的前端宇宙中,又出现过哪些耀眼的星辰呢?指引前端未来的“北极星“又在何方?腾讯云高级工程师与你畅谈前端的变革史与新时代的希冀。
腾讯云开发TCB
2019/09/25
7880
应对突发需求,如何借助Serverless快速上云?
感谢云加社区组织这次“技术应变力”的线上专题活动,并邀请我来进行分享,我将从Serverless的角度来进行解读。Serverless是最近非常热门的词,中文翻译为“无服务器”。有人认为既然是无服务器,就意味着不再需要运维,完全是按需付费的模式...... 其实这些理解都比较片面,描述的都只是Serverless的某个方面。
腾讯云开发者
2020/03/25
2.7K0
2020年我们聊聊 serverless 与云开发
在前端圈中最不缺少的就是新技术,几乎每个月都会出现一些新的 npm 包、新框架、新名词。当一篇流行框架发布新版本时,或者当一篇文章解释某个新即使时,下面的评论往往都是:
前端迷
2020/02/24
7750
专访TLC大会讲师王伟嘉:聊聊云开发CloudBase的设计与实践
云开发 CloudBase 是腾讯云推出的云原生一体化解决方案,以「小程序·云开发」为代表的 Serverless 产品自上线起就受到了广大开发者的欢迎,如今已经是国内 Serverless 领域的头部角色。
腾讯云开发TCB
2020/08/20
5150
专访TLC大会讲师王伟嘉:聊聊云开发CloudBase的设计与实践
快速上手小程序云开发
小程序云开发为微信小程序开发者提供云到端的一站式解决方案,帮助开发者统一构建和管理资源,能有效降低技术门槛、减少研发成本、提升开发效率,协助开发者快速搭建稳定高质量的微信小程序应用。
可可爱爱没有脑袋
2020/01/16
1.5K0
快速上手小程序云开发
能力展现 | 云开发能力在站点应用的体现
近几年腾讯云开发技术持续发力,更新升级速度非常迅猛,功能也是越来越强大易用,该网站的实现几乎用到了云开发所有的主流功能,也看到了云开发的无限可能。下面就给大家分享下云开发在站点应用中的功能吧。
腾讯云开发TCB
2021/07/12
5460
能力展现 | 云开发能力在站点应用的体现
小程序-云开发基础
最近在学习研究小程序的云开发,不得不令人惊叹,个人觉得如果把小程序比作是干柴,那么云开发就是一把烈火,助推了小程序,小游戏的野蛮生长
itclanCoder
2020/10/28
2.9K0
小程序-云开发基础
浅谈腾讯云·云开发与小程序·云开发的区别
云开发(Tencent Cloud Base,TCB)是腾讯云为移动开发者提供的一站式后端云服务,它帮助开发者统一构建和管理资源,免去了移动应用开发过程中繁琐的服务器搭建及运维、域名注册及备案、数据接口实现等繁琐流程,让开发者可以专注于业务逻辑的实现,而无需理解后端逻辑及服务器运维知识,开发门槛更低,效率更高
薛定喵君
2019/11/13
12K0
云开发如何解决serverless对端的最后一公里问题
前端圈从来不缺少新的技术、点子和话题,有些留下来了而有些则转瞬即逝。在决定一种新技术是否能够长久的所有因素里,最核心的必然是自身实力过硬能够经受住实践检验。而除此之外,这项技术所解决问题的广泛程度、受众群体规模等“非技术因素”也至关重要。
腾讯云开发TCB
2019/11/11
1.3K1
剑指 Firebase ,云开发—— 腾讯云的小 B 战略能行么?
小程序推出云开发已经有一段时间了,我自己也已经深度的体验了小程序云开发,自此,写下一篇文章来谈一谈我眼中的云开发。
白宦成
2018/11/09
8.8K0
剑指 Firebase ,云开发—— 腾讯云的小 B 战略能行么?
仅有两名前端开发,联机小游戏一周内上线,如何做到?
它在上线四小时内用户数激增60倍,获得新华社力荐,开发过程中仅投入2个前端开发+1个美术+1个策划,这款小游戏里,单机玩法、邀请好友对战、在线匹配对战、排行榜、背景音乐音效等功能一应俱全。
泛互联网行业产品团队
2020/03/04
10.1K1
仅有两名前端开发,联机小游戏一周内上线,如何做到?
Serverless无服务器架构详解
Serverless: 无服务器架构,即在无需管理服务器等底层资源的情况下完成应用的开发和运行,是云原生架构的核心组成部分。
zhayujie
2020/08/03
4.6K0
Serverless无服务器架构详解
最新最全的云开发入门教程,微信小程序云开发,云函数,云数据库学习,微信小程序云开发扩展功能学习
https://edu.csdn.net/course/detail/26572
全栈程序员站长
2022/08/14
1.9K0
最新最全的云开发入门教程,微信小程序云开发,云函数,云数据库学习,微信小程序云开发扩展功能学习
微信“小程序云”(云开发)简介与初体验
在7月10日的微信公开课第七季上,微信小程序团队预告了小程序云的到来。目前官方已经公测:地址 。现在名为“小程序·云开发”。本文笔者将从一个开发者的角度去介绍及说下自己的体验。
Jeff
2018/08/22
16K3
仅有两名前端开发,联机小游戏一周内上线,如何做到?
它在上线四小时内用户数激增60倍,获得新华社力荐,开发过程中仅投入2个前端开发+1个美术+1个策划,这款小游戏里,单机玩法、邀请好友对战、在线匹配对战、排行榜、背景音乐音效等功能一应俱全。
腾讯云开发TCB
2020/03/31
4K0
仅有两名前端开发,联机小游戏一周内上线,如何做到?
Flutter大前端模式为开发者带来哪些机遇和挑战?
在传统开发当中,有一个非常明显的现象 —— 基本都是基于自己的端进行开发,想跨端开发是非常难的。
腾讯云开发者
2020/07/01
1.3K0
Flutter大前端模式为开发者带来哪些机遇和挑战?
用云开发快速构建最美AI毕业照小程序
为什么要做这个小程序? 疫情原因,2020年的毕业季也不同了。很多毕业生没有举办正式的毕业典礼,也没有照毕业照,个人觉得这是人生的一大遗憾。为了弥补这一遗憾,我尝试用云开发快速实现一个AI云毕业照小程序,纪念我们的青春年华。 功能实现的思路是:用户上传人脸照片即可生成学士服云毕业照,小程序支持学士服、硕士服、博士服等个性服装,而且可以通过云开发CMS管理系统随时随地管理小程序云开发内容数据。 为什么选择了云开发? 云开发 CloudBase 是腾讯云首创的云原生一体化开发环境和工具平台,为开发者提供高
腾讯云开发TCB
2020/08/13
2.3K0
Serverless是什么?
Serverless = Faas + Baas。它代表的是无(少)服务器架构开发,从而使得开发者的精力主要放在了系统架构和软件开发上。
心谭博客
2020/04/21
2K0
推荐阅读
相关推荐
云开发初探 —— 更简便的小程序开发模式
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档