美文网首页程序员每天进步一点点
2020-06-01【腾讯云和阿里云Serverless体验对比

2020-06-01【腾讯云和阿里云Serverless体验对比

作者: 桢桢claire | 来源:发表于2020-06-01 15:37 被阅读0次
    最近喜欢粉色的花和康乃馨

    今日鸡汤

    每当你想要评论别人的时候,你要记住,不是世上所有人都拥有和你一样优越的条件。

    愿你也做一个温暖的人。

    今天接着来看阿里云的Serverless第二个场景——基于小程序Serverless开发个人相册小程序。

    阿里小程序云

    小程序云是阿里云面向小程序场景提供的一站式云服务,提供了有服务器和无服务器两种模式。其中,云应用是有服务器模式,提供了包括资源编排、应用托管等服务。小程序 Serverless 是无服务模式,提供了开发、运营、业务增值等服务。

    小程序Serverless

    阿里云小程序Serverless提供包括云函数、数据存储、文件存储等一整套后端服务。开发者通过API方式即可获取云函数、数据存储、文件存储、音视频、图像处理等服务,不需要关心服务器或底层运维设施。

    • 数据存储:基于MongoDB托管在云端的数据库。
    • 文件存储:支持图片、音频和视频存储在云端。mpserverless.file提供uploadFiledeleteFile来管理文件。
    • 云函数:目前只支持用Nodejs开发,自己把代码传上去,可以在小程序里通过API调用。

    它的开发流程有三步:
    1) 注册小程序
    2) 开通小程序Serverless服务,需要创建服务空间和云资源(数据库或文件存储)
    3) 开发小程序

    准备工作

    按照上面的步骤,这个实验需要创建一个支付宝小程序,安装两个开发工具,开通一项阿里云服务。

    1. 蚂蚁金服开放平台创建支付宝小程序。
    创建支付宝小程序
    1. 安装小程序开发工具

      MiniProgram Studio
    2. 安装支付宝开放平台开发助手
      支付宝开放平台开发助手用来生成密钥,在这里使用RSA2的密钥长度和PKCS8的密钥格式,生成小程序签名时的公钥和私钥。

      密钥生成器
    1. 开通阿里云小程序云服务
      小程序云是阿里云面向小程序场景提供的一站式云服务,帮助开发者实现一云多端的业务战略。开发者可通过小程序云支撑各类小程序前端,在一朵云内实现统一的资源管理、统一的数据运营和统一的业务设计。

    2. 创建服务空间
      成功开通服务后,需要首先创建服务空间。小程序开发中创建的云资源会和服务空间进行关联,所有的资源都是通过服务空间进行分配和管理的。

    创建服务空间

    6.关联之前创建的支付宝小程序
    填写小程序的AppID、应用私钥、支付宝公钥等信息,将支付宝小程序和小程序云做关联。


    支付宝小程序关联

    小程序代码结构

    这个场景选择使用支付宝小程序内置的模板一键创建,需要用到云数据库(存放用户信息、照片信息等)和云存储(存放照片文件)。

    配置信息

    app.js里面关联小程序应用和小程序云。


    配置信息

    可以看到,加载serverless sdk后会实例化mpserverless,并将它放在全局对象App中。
    同时,小程序在启动后需要调用authorize()接口请求授权。

    使用实例mpserverless操作云存储和云数据库
    1. 向云数据库添加数据
    await mpserverless.db.collection('files').insertOne(obj)
    
    1. 上传照片到云存储
     mpserverless.file.uploadFile(options).then((image) => {
       const { imgs } = this.data
       imgs.push({ name: image.fileUrl })
       this.setData({
           imgs,
        });
     }).catch(console.log);
    
    1. 读取云数据库照片数据
    async onReady() {
        // 页面加载完成
        const { id } = this.data
        await mpserverless.db.collection('photos').find({ fileId: id }).then((res) => {
          this.setData({ imgs: res.result });
        }).catch(console.error);
      }
    

    测试小程序

    直接在IDE或发送到支付宝进行测试,可以新建相册、上传照片、展示照片。


    小程序预览界面

    可以看到,小程序云上,云数据库和云存储已经创建了测试过程中需要的文件和数据库表。


    云数据库 云存储

    总结

    通过这个BaaS的场景,体验了使用小程序Serverless这种无服务模式快速开发一个支付宝小程序,用到了两种后端基础资源(云存储和云数据库),只需要在小程序配置好相关的资源,直接通过API调用即可使用云上的资源,不需要自建服务器和存储,非常方便。

    上一篇体验了Serverless构建AI平台,属于FaaS服务,这一篇体验了BaaS场景,可以看出,阿里云的Serverless对这两种服务的支持都有涵盖。在整个体验过程中,可以看出,阿里云已经将你需要使用的各类服务云化,开通即可使用,通过组合各类云服务,可以快速搭建起云原生应用。致力于做整个生态,只需要编写业务代码,其他基础设施的创建和管理通过配置来完成。

    这样的思路对于小白来说使用起来非常友好,但是产品多到眼花缭乱,一个一个的了解还是需要一些时间。

    这次的实验没有感受到Serverless重要的弹性伸缩功能和消除冷启动毛刺的预留实例,等待下次开发一个函数应用做一个压测再看啦。

    下一篇来看看腾讯云的Serverless。

    (未完待续)

    相关文章

      网友评论

        本文标题:2020-06-01【腾讯云和阿里云Serverless体验对比

        本文链接:https://www.haomeiwen.com/subject/wvrjzhtx.html