云开发初探 —— 更简便的小程序开发模式

 欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~

本文由heyli发表于云+社区专栏

img

img

小程序诞生以来,业界关注小程序前端的技术演进较多,因此众多小程序前端的框架、工具也应运而生,前端开发效率大大提高,而后台的开发技术则关注不多,痛点不少,具体痛在哪里呢?

小程序后台开发之痛

img

第一个是脑袋瓜疼,怎么疼呢?

img

随着像腾讯云等的云服务商提供的云服务越来越便捷,业务上云已经是大势所趋。但是从简单地在云虚拟机上部署页面,到实现真正全面地上云,还是有很多区别。要真正实现全面的上云,要了解的东西非常多,当你第一次接触这些概念的时候,学的这些东西是一个接一个,让你应接不暇,往往分散了你的对业务的专注力。比如我自己,来腾讯云之后,为了对云服务有更好地了解,就去报了个腾讯云的课程。这课程系列分云架构师、云开发、云运维三门课程,还分初级、中级、高级,需要花费大量时间才能理清这些知识概念,并且还要花大量的时间去上机做实验。所以对于开发来说,要彻底搞清楚,还真的不是件容易事,绝对让你的脑袋疼。

第二是肉疼,尤其是你老板肉疼。

img

最开始当互联网还没有云服务商的时候,公司都得自己搭服务,不仅花大价钱买机器、买宽带流量,还得请人过来维护。如果在这种情况下要搞小程序开发,公司得请一个维护服务器硬件的、一个维护网络的,一个数据工程师,一个后台还有一个前端,刚好五个人。当云服务商开始进入变革整个市场的时候,我们就不用再自己维护硬件了,由云服务商来维护,因此我们可以少请一个维护硬件的,但还是得有一个运维去维护云服务。当云服务商将数据库、容器服务都抽象出来上云之后,咱们连专业的数据库维护都可以不请了,由后台或者云维兼岗就行。云服务商的不断发展,确实是让云服务的成本不断下降,但投入的钱还是很多呀,要投入的人还是不少,这几年生意难做,作为老板肯定是想投入成本、试错成本越少越好。

第三个是肾疼。

img

大家都知道,开发是一个走肾的工作。比如,这些年流行的前后端分离,虽然让专人专项,但却引入了联调这个事,所以也增加了肾的负担。

img

这里列出了三个前后端分离带来的麻烦。 1. 权责往往不清晰,有很多临界的位置,谁管都可以,容易引发扯皮。 2. 沟通时间增多,因为毕竟是两个人工作嘛,需要不少的沟通 3. 除了沟通,还需要两边的代码调试,看看数据、展示通不通,这个时间也很不可控,尤其是如果环境特别复杂,调起来不仅麻烦重重,还很有挫败感。

无服务开发小程序是未来趋势

img

正因为小程序后台开发的麻烦重重,因此业内都想出了各种各样的开发方案,其中一种方案,“无服务开发小程序”,我们认为,将会是未来的趋势。但这个未来,其实今天已经到来了。

img

那什么是无服务开发呢?无服务,又称为 ServerlessServerless 还处在一个比较初期的阶段,目前也没有权威和官方的定义,不同人不同公司有不同说法,今天我也不打算讲太复杂。顾名思义, Serverless 就是指应用的开发不再需要考虑服务器这样的硬件基础设施,基于 Serverless 架构的应用主要依赖于像腾讯云这样的云服务商提供的后台服务。比如说无服务云函数、云数据库、对象存储服务等等。简单来说,相当于你现在要开个水果店卖水果,以前你还得要租店面,搞水电、装修门面。现在这些都不用了,你就在一个已经搭好各种各样设施的超市里,租一个已经帮你搞好门面的架子或者箱子,卖得好你就租大一点,卖不好就租小一点,随时随地随你的心意,非常灵活。

img

为什么说无服务化开发是趋势呢?因为云服务的进程,已经从物理机,演进到 IAAS,再到 PAASIAAS 就是包括像云虚拟机、私有网络、网络专线、负载均衡等等的基础服务;PAAS 则更抽象一些,比如像云数据库、网络防护等等。基于 IAASPAAS,云服务商发展出 Serverless 这类更高级的开发服务。因此呢,无服务开发就会是今后开发类似小程序这类轻量应用的新的开发趋势。

img

一句话概括就是说,有了无服务开发之后,你就不用再处理安装、运维,底层了,只管写接口、写逻辑就好。总得来说,虽然你管的东西越来越少,但开发效率却越来越高,开发出来的轻应用、小程序却是具备高性能、高可用、高扩展的特性。

那无服务开发,具体怎么去解决刚刚提到的后台开发痛点呢?

img

第一是让你更加关注你的业务逻辑。云服务许多好用但难理解的概念,什么冷备热备、弹性伸缩、负载均衡等等,通通都不用管,你只需要写好你的业务,服务好用户就行。

img

第二,更省人力更省资金,老板不再肉疼。因为有了无服务开发,运维工作也不用操心了,像小程序这类的轻应用,有一个全栈开发,或者一个前端,半个后台就可以轻松应付了,资金和人力的需求可谓大大节省。

img

第三,就是前端工程师向全栈工程师的转变。有了无服务开发,前端工程师其实也可以安全、高性能地去操作一些以前只有后台才敢操作的数据和逻辑,如果要开发的应用是像小程序一样轻量的、简单的,完全可以由前端工程师完成,除非是特别复杂的,可能才需要后台的介入。这样也省缺了先前提到的前后端联调的麻烦。

小程序·云开发

img

说了这么多无服务开发的概念、优点,在小程序无服务开发这一块,腾讯云有什么样的作品呢。这就是今天要重点介绍的,小程序·云开发,这就是腾讯云与微信联合研发后,交出的答卷。

img

云开发,一共提供了三大能力,分别是存储、数据库、云函数。简而言之,就是提供了存文件、存数据和运行业务逻辑的能力。接下来,我会采取前后对比的方式,从方方面面去对比云开发和旧有的开发模式的不同。

img

首先是开发模式与架构上的对比。在云开发模式出来之前,旧的小程序后台开发模式就是上面这幅图,在小程序端发请求,往往你得引入额外封装好的 SDK,然后你需要在云服务这边配置大量的运维产品才能做出性能、可用性非常好的产品。开发者要关心的内容,从前端、后台一直关心到运维这块。

img

而云开发的全新模式,只要调用小程序原生的接口,就可以操作最基本的三大资源,而云开发背后又有腾讯云的基础服务作为支撑,本身就高可用、高性能、可扩展,你要关心的事情是大大减少了。

img

其次是资源管理平台的对比。以前你需要管理云资源,你需要在腾讯云的面板里,几十上百的产品里找到你需要的产品。

img

而云开发呢,你在小程序开发工具里,就可以找到云开发的控制面板入口。进入后,我们将你要关注的产品,做成一个独立面板供你使用,极为简洁方便。

img

第三,我们对比一下在小程序端调用资源。以上传文件为例,旧的开发模式,小程序端,你需要用 wx.chooseImage 还有 wx.uploadFile 小程序接口,后台要部署业务框架、路由,还有写逻辑上传到腾讯云的对象存储,你还要考虑这个后台服务的性能与安全,万一用户量峰值很大怎么办,有黑客

50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信