程序员请注意,无服务器将改变应用程序开发

本文涉及的产品
简介:

无服务器软件架构已经吸引很多人关注,它为什么会让人们这么感兴趣呢?无服务器意味着什么呢?function-as-a-service 与无服务器有什么区别?AWS Lambda、IBM OpenWhisk、Azure Functions和谷歌Cloud Functions等服务的机制是什么?这一切会如何发展?

无服务器与FaaS

在最近举行的Serverless大会中,主题演讲中最引人关注的是无服务器的各种定义。这也表明这项技术仍然处于其生命周期非常早的介入期。一般来说,大多数人都会认同“无服务器”是指软件架构,而FaaS则描述了开发人员在这个架构中部署业务逻辑的关键机制。

例如,如果你在AWS S3服务运行静态HTML网站,这是无服务器(架构)的定义。但如果没有业务逻辑来用自定义数据对用户交互作出响应,这个网站无法完成很多工作。这也是四大云服务提供商(AWS、IBM、微软和谷歌)以及其他开源提供商(例如Iron.io和Fission)发挥作用的地方。

FaaS的最佳定义来自Serverless Framework首席执行官Austen Collins,该公司可能是该领域最热门的初创公司。Collins认为,FaaS的定义如下图所示:

程序员注意,无服务器将改变程序开发

FaaS平台为开发人员提供构建微服务的能力,微服务可对事件作出响应、自动扩展、每次执行支付费用,并利用Amazon DynamoDB或者IBM Watson等大型服务器系统。生态系统和微服务方法是FaaS平台与容器世界分享的好功能。当你了解FaaS平台的工作原理后,你就会明白为什么存在这些相似之处。

FaaS平台内部运作

我们可以在历史背景下考虑FaaS。在20世纪90年代初,我们只有裸机可用来运行我们的代码,而获得新的计算单元需要几个月时间。随着虚拟机管理程序的出现,虚拟化将这个时间缩短到几分钟。通过使用不同的Linux内核资源分离技术,而不需要使用虚拟机管理器,现在容器可在几秒钟内为我们提供计算单元。

FaaS平台如何将这个时间达到毫秒级?想象一下已经分离的容器装配线,内部有Node.js或者Python等语言运行时间,但还没有业务逻辑代码。当事件被触发时,包含响应该事件的业务逻辑的函数会从磁盘读取,并被插入到预热的容器中,其中已经具有相应的语言。你的函数会执行,代码被删除,相同的容器还可用于下次事件。

当然,在这个过程中会有些变化,将你的代码保存在完全热的容器中用于下次处理相同的事件。但这里的关键概念是,FaaS平台以创造性的方式利用容器,让你可映射函数执行到特定事件。当你关联这些事件(例如数据库写入或者IoT设备信号)时,你可从这些更小的组件中创建更大的应用程序。

这一切都将如何发展?

无服务器仍然是一个年轻的市场,现在还可能处于早期部署的开始阶段。但它背后有着大型提供商的支持,还有很多开源替代品,并且很多初创公司也正在为其提供免费工具。

无服务器的一个有趣的方面是,它可能可完全改变供应商锁定的概念。假设你喜欢使用Amazon Polly进行语音文本转换,但文字情感分析又喜欢使用IBM Watson。你的前端应用程序可以录制语音,发送录音到AWS的Polly功能,并将结果发送到Watson。因此,你可为特定的工作选择合适的工具,而不是被锁定在特定供应商或者生态系统。当你通过功能即服务构建时,各个部件都足够小,可随时挑选以及选择供应商。

在Serverless大会中,iRobot、Norstrom和Capital One等公司讨论了他们如何成功地应用这项技术,这证明该技术不仅仅适合初创公司,也适合成熟的企业。尽管很多早期部署者还没有使用无服务器用于面向用户的工作负载,但用户与无服务器应用交互的那一天即将到来。



本文转自d1net(转载)

相关实践学习
基于函数计算一键部署掌上游戏机
本场景介绍如何使用阿里云计算服务命令快速搭建一个掌上游戏机。
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
存储 资源调度 应用服务中间件
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
浅谈本地开发好的 Web 应用部署到 ABAP 应用服务器上的几种方式
24 0
|
2月前
|
弹性计算 网络安全 数据安全/隐私保护
ECS热门应用 | 解决Guestosssh异常
通过ECS实例快速发现操作系统内部的问题,并给出对应的修复方案。
129299 5
|
2月前
|
弹性计算 人工智能 安全
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(3)
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(3)
431 0
|
2月前
|
存储 弹性计算 安全
带你读《从基础到应用云上安全航行指南》——九大提升ECS实例操作系统安全性的技巧(1)
带你读《从基础到应用云上安全航行指南》——九大提升ECS实例操作系统安全性的技巧(1)
335 1
|
2月前
|
弹性计算 安全 网络安全
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(2)
带你读《从基础到应用云上安全航行指南》——阿里云产品专家教你如何全方位构建ECS安全体系(2)
478 0
|
2月前
|
存储 弹性计算 安全
带你读《从基础到应用云上安全航行指南》——九大提升ECS实例操作系统安全性的技巧(2)
带你读《从基础到应用云上安全航行指南》——九大提升ECS实例操作系统安全性的技巧(2)
662 1
带你读《从基础到应用云上安全航行指南》——九大提升ECS实例操作系统安全性的技巧(2)
|
1月前
|
弹性计算 人工智能 物联网
挖掘阿里云ECS的潜力:创意应用和未来可能性
在云厂商中,我觉得开发者更信赖阿里云的云产品,而且随着阿里云最近宣布云产品降价的消息,会有更多的开发者和企业选择阿里云的云产品。这里拿阿里云的云服务器来做说明,阿里云的云服务器ECS为用户提供了强大的计算资源和灵活的扩展性,使其成为搭建各种有趣和创意应用的理想平台。除了已知的小游戏、小程序和个人网盘等应用案例之外,本文还会进一步探讨ECS在特定场景下的实践经验,并挖掘其在其他领域的潜力,为大家带来更多创意和启发。
556 3
挖掘阿里云ECS的潜力:创意应用和未来可能性
|
1月前
|
弹性计算 网络安全 文件存储
ECS热门应用 | 安装家用内网穿透服务
使用云服务器ECS,让家庭网络可以被外部网络访问。不在家时,也可以读取备份资料。
|
1月前
|
开发框架 Java .NET
JavaWeb概念、应用、服务器
静态网站是指在服务器上预先准备好的网页内容,用户访问时服务器直接将这些静态页面发送给用户浏览器,没有经过额外的处理或数据库查询。
12 0
|
1月前
|
网络协议 Ubuntu Linux
「远程开发」VSCode使用SSH远程linux服务器 - 公网远程连接
「远程开发」VSCode使用SSH远程linux服务器 - 公网远程连接
110 0