马上开始:五种具备可行性的无服务器框架应用方案

【51CTO.com快译】很多朋友搞不清“无服务器”与“功能即服务”架构之间的区别。其一,无服务器其实有点用词不当,其中当然存在服务器元素,只是大家不必亲自维护。您需要做的只是上传代码片段并由托管服务处理其余工作。

不过哪些应用程序适合这种部署方式?答案与您面对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的反馈进行裁剪。
无服务器框架的突出特性在于,其中的各个组件采取松散耦合模式——或者可以将其形容为微服务形式。如果大家不希望采取这样的组合方式或者面对的是整体式应用的移植工作,那么无服务器架构可能并不合适。但在另一方面,其显然更适合支持新型、元素数量较少且各组件需要独立扩展的应用。

本文作者:核子可乐译

来源:51CTO
优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/179875

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Java Development Kit(Java开发工具)

Java Development Kit(Java开发工具)

JDK是 Java 语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,它包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。