serverless框架解析
Serverless架构与Traditional架构
serverless 框架是当前比较活的架构,其以灵活快捷的开发生产著称,业界代码就是AWS Lambda。serverless架构一般是相较traditional架构而言的。两者的架构区别见下图:
这里列出的是最简单的一个图,serverless架构相较传统架构的优势可以从以下两个方面来看:
- 开发速度:serverless开发更快,主要关注于代码本身,无需关注Lambda和后端速度库的性能,无论函数本身还是后端数据库都是自动弹性的;
- 成本:serverless因为是弹性的,收费只会根据实际使用的资源情况进行付费。
Serverless Framework
因为虽然架构上实现了serverless化,不过云平台的服务还是有对应的学习配置成本。Serverless Framework 解决的就是让开发人员更聚焦开发本身,其将云平台上配置性的工作、CI/CD也在框架内能过命令的方式实现了。同时其在dashboard界面中也集成了监控与可观测性。
Serverless Framework ties it all together(官方给出的功能描述)
- Single configuration file to describe all pieces together
- Connect managed services and code
- Share easily with team
- Reliably redeploy as many times as needed
- Build large scale applications that can serve millions of users
Serverless 的slogan 是 “Zero-Friction Serverless Apps on AWS Lambda” (AWS Lambda 上的零摩擦无服务器应用程序),所以从该处也不难看出,Serverless Framework 在一开始是围绕 AWS 云进行生态适配的,只不过因为其比较好用,后面其他云厂商也进行了适配和对接,其也就有了类似 Terraform provide 的理念。这部分可以参看:https://www.serverless.com/framework/docs/providers 。
从官方的文档上也不难看出,中美主流的云厂商都做了适配。不过从 https://www.serverless.com/examples 给出的示例也不难看出,其对AWS的适配仍然是最好的。
快速入门
创建项目
Serverless Framework 基于 Nodejs 进行开发,所以通过npm命令可以快速的安装 Serverless Framework 本身及使用的插件。
1 2 3 4 5 6 |
|
在输入 serverless 命令后(serverless命令也可以简写成 sls),其会引导式的让选择相应的内容。
云厂商对接
输入完成后,在部署前还需要云平台上进行授权对接,这部分可以参看 serverless Tutorial ,这时会跳到对应的云平台上,只需要简单的点击两下即可完成对接。
编辑Serverless.yml文件
该文件里会指定使用的云厂商及资源信息,类似如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
|
安装插件
官方和对接的厂商已开发了比较多的插件支持,可以通过一条指定完成安装,安装完成后可以直接和对应的云服务进行对接,比如在官方插件页面上检索 s3, 会发现一些常见的 S3对接的能力已实现,只需要简单的配置就可以和 Lambda 函数对接。
1 2 3 4 5 |
|
部署与删除
上面的步骤都完成后,就是编写代码内容并向云上部署了,部署只需要一条指令即可。
1 2 3 4 5 6 7 8 |
|
执行完 deploy指令会返回可以调用的URL地址,该地址实际上APIG对应的访问地址。
部署完成后,还可以使用 invoke/logs 等指令进行调用和查看日志。同时也支持登录dashborad查看日志信息。
如果不想使用该函数应用了,也无需登录云平台,直接使用如下命令就可以完成云上资源删除:
1 |
|
收费模式
Serverless 平台针对单人开发者是免费的,不过其在监控、日志等可视化增强功能上是有限制的。收费主要针对团队成功数和增强功能的用量进行收费。
总结
Serverless Framework 确实简化了云平台上的配置操作,不过 AWS 的价格在所有云厂家中也是出名的贵,如果换用其他云,并不是简单的将代码中的 provider 修改下就完了,因为代码逻辑中如果涉及和其他云服务的对接,还需要更新这一部分的代码逻辑,因为比较每个云厂家的接口是有区别的。
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))