【学习心得】小程序云开发-关于 Serverless 的一些看法

Serverless

近几年 Serverless 备受关注,被认为是云计算发展的方向。Serverless 字面意思为去服务器,即让应用与服务器进行解耦,应用开发者不再需要关系服务器运维,专心写业务代码即可。这对个人开发者和中小企业来说无疑是一种福音。

由于Serverless 产品是按计算资源收费的,这使得互联网初创公司和个人开发者在早期,不需要为多余的计算资源付费。因为在以前,你需要按照预估购买能够应对峰值访问的计算力,而并不是一直都需要这么强的计算力,就需要为这些多余的计算力付费,因为服务器背后是需要电力来维持运行的,所以这也是对地球资源的一种浪费。而 Serverless 的产生也是因为大型互联网企业对自身空闲计算力的一种利用。而提供 Serverless 服务的企业掌握着雄厚的计算力,也使得 Serverless 产品有着强弹性扩容能力,使得处于业务快速增长期的企业和个人可以从容地应对,不需要担心服务器扩容问题。

以上种种好处都可以看出 Serverless 将是未来的趋势,相信未来将由几家互联网巨头企业掌握着云端计算资源,其他企业和个人开发者只需要使用 Serverless 产品专心做开发无需关心运维,这种分工生产方式提高了全球计算力的利用率,节约了世界的资源,也将促进更多更优质的应用诞生。

纵观人类历史就会发现产业细致的分工将促进社会发展。如今的计算力就如电力,在一开始,企业或个人需要用电时,要自行购买发电机、煤炭等,雇佣他人或自己进行发电机的维护保养,需要用更多的电时还要急急忙忙的加购发电机和煤炭,当用电需求降下来了,这些临时加购的发电机和煤炭又成了一种浪费。后来电力由大型发电厂掌握,需要用电的企业和个人只需要接入电网即可,用多少电交多少钱,无需担心电不够用和发电机维护等问题。

因此最近有了接触 Serverless 的想法,想着通过编写一个简单的应用来学习了解。于是就想到了开发一个简单的小程序,使用小程序云开发,因为微信的私有协议,小程序调用其云函数和云数据库不需要鉴权,开发速度更快。稍微思考了下,决定做一款当地油价查询的小程序。使用云数据库存储每日全国油价,小程序通过调用云函数,由云函数来获取云数据库中对应省份的油价,通过聚合数据的API来获取油价。

【学习心得】小程序云开发-关于 Serverless 的一些看法_第1张图片

程序简要介绍

遇到的问题

由于聚合数据普通用户每日只能免费调用 100 次油价数据,而我这次开发只是想学习了解 Serverless 产品,不想有不必要的资金投入,又鉴于油价每十个工作日才更新一次,数据相对稳定,实时性不强,且为了加快数据的获取速度,所以决定采用每天更新一次全国油价数据,并把全国油价数据存入云数据库的方式来为用户提供每日油价数据。

开始编写我就遇到一个问题,云函数需要小程序调用才会被执行,那么要怎么让数据库中的油价自动更新为每日最新的油价数据呢?我粗略的看了下小程序云开发的文档,最终也没找到让云函数定时运行的方法,我也不可能每天手动调用来更新数据,更不可能在云服务器上写脚本来更新数据,这违背了开发这个应用的初衷。于是我决定由每天的第一位访客来触发更新油价的云函数,从而达到更新油价的目的。这种方式使得每一次获取油价都将检查数据库数据是否是当天的,对使用体验有一点延迟。最坏的是,每天第一位用户需要等油价更新完才能获得油价数据。日后我会想想有什么其他办法可以解决这个问题,也欢迎大家提出解决的办法。

程序流程

首先用户进入小程序,小程序将通过原生 API 获取用户所在地的经纬度信息,将经纬度信息传给云函数,通过一个云函数调用腾讯地图的逆地址解析 API 来获取所在省份名称,再调用一个云函数通过逆地址解析出来的省份名称获取油价并返回给用户,获取对应油价前要查看油价数据库最近一次更新日期是否为今天,如果不是今天需要调用一个云函数来更新油价数据库。

下面是这个小程序的简要流程图。

【学习心得】小程序云开发-关于 Serverless 的一些看法_第2张图片

总结

这个小程序只用了两天就完成了,第一天写完逻辑代码,第二天随便写了下UI、画了个 logo 就上线了。这一次开发体验,让我更加觉得 Serverless 是发展趋势,真的极大的降低了互联网应用的开发成本,也因为不需要关心太多其他东西可以专心写业务代码,从而激发了我的开发热情。要放在以前,还得写一个后端程序来监听处理请求,还要租一个服务器来使用,还要担心服务器被别人攻击,最后投入了如此之多可能还不能变现,想想就从开始到放弃了。而这次开发,我仅用了两天,且零成本(因为现在还在发展初期,所以大部分 Serverless 产品都有相当可观的免费额度)。

微信小程序云开发免费额度有:5GB 存储空间、5GB/月 CDN 流量、4万GBs 云函数资源使用量、1GB/月 云函数外网出流量、2GB 数据库容量等。完全足够在无法使用广告变现前运营。

在这立两个 Flag :

  • 使用 Serverless 产品开发一个个人博客网站。

  • 使用 Serverless 产品开发一个私人云盘应用。

这两应用是我现在在云服务器上运行的两个应用,算了一下,使用 Serverless 产品来完成这两项任务的话比租云服务器然后放上面跑更便宜一些,还不需要维护服务器,不需要自己做安全防御,可以说是很划算了。也可以更加深入的了解 Serverless 产品。

下面是这次编写的油价小程序,有什么建议大家可以提出来,我会不断修正的。

【学习心得】小程序云开发-关于 Serverless 的一些看法_第3张图片

你可能感兴趣的:(心得)