很多朋友搞不清“无服务器”与“功能即服务”架构之间的区别。其一,无服务器其实有点用词不当,其中当然存在服务器元素,只是大家不必亲自维护。您需要做的只是上传代码片段并由托管服务处理其余工作。 |
很多朋友搞不清“无服务器”与“功能即服务”架构之间的区别。其一,无服务器其实有点用词不当,其中当然存在服务器元素,只是大家不必亲自维护。您需要做的只是上传代码片段并由托管服务处理其余工作。
不过哪些应用程序适合这种部署方式?答案与您面对AWS或者Azure时基本相同; 这些系统的设计目标都是通过具体操作触发代码块。以下五种常见的无服务器框架可行方案相信值得您加以参考。
API
作为无服务器架构最简单也最直接的应用之一,我们可以通过服务或者单页面应用创建REST API以返回待消费数据。
REST API并不难构建。一般来讲,大家只需要一套基本Web框架、一套用于渲染数据返回格式的库(例如JSON)以及用于同数据后端进行交互的粘接代码即可。利用无服务器架构,开发者能够专注于编写并部署支持该API所需要的代码,其它任务则不再需要费心。
REST API当中多数需要手动调节的功能,例如自动规模伸缩,皆可在无服务器框架中自动完成。另外,其按资源使用量付费的模式意味着您能够拥有一套轻量化且访问成本极低的API,且几乎无需任何部署工作。
创建webhook
这种被广泛使用的HTTP上回调机制能够轻松实现推送、管道与插件等功能,从而提升Web应用的实用性。无服务器框架特别适用于webhook场景,且相关优势与创建API类似:低运营成本、低维护要求、可自动规模伸缩。大家完全可以在Azure Functions上利用Node.js实现webhook以处理Twilio服务中的短信消息或电话呼叫。
更重要的是,大部分webhook类活动并不需要大量代码。因此,其非常适合由lambda式无服务器设计提供的面向功能方案实现,从而显著简化整个交付流程。
提供静态内容
无服务器架构还提供一种简单方法以支撑静态内容,包括图片、音频或者HTML页面等不会被应用修改的内容。静态资产可存储在多个后端当中,包括Amazon S3存储桶,并通过地理化缓存(例如Cloudflare)实现加速。(如果您使用S3,则可选择Amazon Route 53以将URL映射至特定资源; 在基本场景下甚至完全无需涉及AWS Lambda。)
同样的,无服务器模式的优势在于自动接着各项组件以契合需求。我们也能够在必要时以相对简单的方式添加动态功能。不过在这种情况下,功能在启动时间可能对性能造成影响,因此需要对应引入地理缓存机制。
单页面应用
这类用例可以视为上述方法的集合体。单一页面的基础资产可视为静态内容; 前端数据提供由API调用实现。前端的数据渲染则通过JavaScript框架完成。
优势:应用的每项元素皆可独立实现并进行独立扩展。弊端:应用必须作为多项独立功能的集合,而非单一统一项目。这意味着我们无法利用现代源代码控制与项目管理技术对其进行全面打理。另外,大家还需要引入React、Angular或者Vue.js等前端框架——不过这对于有经验的Web开发者来说应该不是什么问题。
运行在后台的事件驱动型应用
无服务器应用可响应事件,但并不是说这些事件就必须属于HTTP请求。其可以为云服务中的事件或消息管道,也可以由运行计划负责触发——大家可以借此方便地执行被动或者低优先级功能。例如被上传至S3存储桶的图像可解决对应功能,旨在为该图像提供对应的元数据标签、大小调整并根据图像识别或分析API的反馈进行裁剪。
无服务器框架的突出特性在于,其中的各个组件采取松散耦合模式——或者可以将其形容为微服务形式。如果大家不希望采取这样的组合方式或者面对的是整体式应用的移植工作,那么无服务器架构可能并不合适。但在另一方面,其显然更适合支持新型、元素数量较少且各组件需要独立扩展的应用。
2023-12-25 22:44:35 admin
活动发布区版规2023-05-27 22:03:52 御风而行
容器、无服务器、虚拟机:安全性差...2023-05-27 20:43:39 1356
服务器宕机的造成原因和解决方法介...2023-05-27 20:43:25 qingym
别糊涂了!服务器与工作站的五大区...2023-05-27 19:08:41 小绵羊0123
科技巨头布局云端 服务器 网络硬...2023-05-27 18:17:46 姐姐的跟屁虫
钉钉因系统访问流量激增,宕机1小...2022-07-23 00:34:02 freeatom
常见ftp命令 FTP命令使用详...2022-07-21 02:17:02 ares
双硬盘组建Raid0磁盘阵列图文...2022-07-20 06:17:02 mankeung123
用友软件客户端连接不上服务器的解...2022-07-23 00:51:02 antonfxb
WebService实例2022-07-13 05:38:02 苯小孩
开发、运维不可不看的Linux调...2022-07-20 18:51:02 nightstone
如何使用Charles抓取Web...2022-02-07 05:38:03 jasonkidd
WEB服务器配置详解2022-03-24 05:38:02 arain
服务器配置推荐2022-03-26 05:38:03 cech
如何在webmin中设置samb...2022-03-27 05:38:02 雪山飞蟹
ftp服务器怎么用2022-07-03 05:38:02 司空摘性
5种最常用的黑客工具及防御方法2022-07-19 09:00:04 dh365
服务器教程之Linux服务器配置2022-07-19 20:17:02 dengyu0429
linux vi使用及详细介绍2022-07-20 01:00:05 激动的舌头
Linux视频教程:用户管理命令...2022-07-21 20:51:02 jessica-an
创建本地FTP站点2022-02-07 05:38:03 jasonkidd
WEB服务器配置详解2022-07-20 04:51:02 wolfssss
ACL权限-默认与递归(4)2022-07-22 15:00:05 淡水珊瑚
Linux下 Samba Ser...