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

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介:

无服务器软件架构已经吸引很多人关注,它为什么会让人们这么感兴趣呢?无服务器意味着什么呢?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(转载)

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
相关文章
|
1月前
|
JavaScript 前端开发 应用服务中间件
【Vue面试题三十】、vue项目本地开发完成后部署到服务器后报404是什么原因呢?
这篇文章分析了Vue项目在服务器部署后出现404错误的原因,主要是由于history路由模式下服务器缺少对单页应用的支持,并提供了通过修改nginx配置使用`try_files`指令重定向所有请求到`index.html`的解决方案。
【Vue面试题三十】、vue项目本地开发完成后部署到服务器后报404是什么原因呢?
|
23天前
|
运维 应用服务中间件 网络安全
自动化运维的利器:Ansible在服务器管理中的应用
【8月更文挑战第28天】本文深入探讨了Ansible在简化和自动化服务器管理工作中的强大功能及其实际应用。通过浅显易懂的语言和具体示例,展示了如何利用Ansible进行批量配置、部署应用以及执行系统管理任务,旨在为读者提供一套完整的解决方案,以便更好地理解和应用Ansible,从而提高工作效率和减轻运维负担。
|
1月前
|
开发框架 JavaScript 前端开发
震撼!破解 ASP.NET 服务器控件 Button 执行顺序之谜,颠覆你的开发认知!
【8月更文挑战第16天】在ASP.NET开发中,通过Button控件实现先执行JavaScript再触后台处理的需求十分常见。例如,在用户点击按钮前需前端验证或提示,确保操作无误后再传递数据至后台深度处理。此过程可通过设置Button的`OnClientClick`属性调用自定义JavaScript函数完成验证;若验证通过,则继续触发后台事件。此外,结合jQuery也能达到相同效果,利用`__doPostBack`手动触发服务器端事件。这种方式增强了应用的交互性和用户体验。
36 8
|
17天前
|
弹性计算 安全 测试技术
阿里云的ECS云服务器应用例
在未来的远程办公时代,“未来空间”打造了一个高效、灵活且安全的在线协作平台,采用阿里云ECS云服务器作为核心基础设施。ECS提供按需付费的弹性计算能力,确保平台响应迅速并能应对流量高峰。其集成的安全特性如安全组和云盾,构建了多层次防护体系,保障数据安全。此外,ECS与阿里云其他服务无缝集成,如RDS、CDN和OSS,实现了高效的数据管理和全球低延迟访问。结合阿里云的机器学习服务,“未来空间”开发了智能会议摘要和情绪分析功能,提升了用户体验。凭借ECS的强大支持,该平台不仅实现了全球团队的高效协作,还赢得了市场的广泛认可,成为远程办公领域的标杆。
|
18天前
|
开发框架 JavaScript 前端开发
|
22天前
|
负载均衡 算法 应用服务中间件
负载均衡技术在Web服务器集群中的应用
【8月更文第28天】随着互联网的发展和用户对Web服务需求的增长,单台服务器很难满足大规模访问的需求。为了提高系统的稳定性和扩展性,通常会采用Web服务器集群的方式。在这种架构中,负载均衡器扮演着至关重要的角色,它能够合理地分配客户端请求到不同的后端服务器上,从而实现资源的最优利用。
52 2
|
3天前
|
安全 关系型数据库 API
深入理解后端技术:构建高效、可靠的服务器端应用
本文将深入探讨后端技术的核心概念和最佳实践,包括服务器端编程、数据库管理、API设计与开发等方面。我们将从基础开始,逐步深入,帮助读者建立起对后端开发的全面理解,从而能够独立构建高效、可靠的服务器端应用。
10 0
|
1月前
|
缓存 数据安全/隐私保护 UED
代理服务器在HTTP请求中的应用:Ruby实例
代理服务器在HTTP请求中的应用:Ruby实例
|
19天前
|
Rust 安全 开发者
惊爆!Xamarin 携手机器学习,开启智能应用新纪元,个性化体验与跨平台优势完美融合大揭秘!
【8月更文挑战第31天】随着互联网的发展,Web应用对性能和安全性要求不断提高。Rust凭借卓越的性能、内存安全及丰富生态,成为构建高性能Web服务器的理想选择。本文通过一个简单示例,展示如何使用Rust和Actix-web框架搭建基本Web服务器,从创建项目到运行服务器全程指导,帮助读者领略Rust在Web后端开发中的强大能力。通过实践,读者可以体验到Rust在性能和安全性方面的优势,以及其在Web开发领域的巨大潜力。
29 0
|
19天前
|
前端开发 大数据 数据库
🔥大数据洪流下的决战:JSF 表格组件如何做到毫秒级响应?揭秘背后的性能魔法!💪
【8月更文挑战第31天】在 Web 应用中,表格组件常用于展示和操作数据,但在大数据量下性能会成瓶颈。本文介绍在 JavaServer Faces(JSF)中优化表格组件的方法,包括数据处理、分页及懒加载等技术。通过后端分页或懒加载按需加载数据,减少不必要的数据加载和优化数据库查询,并利用缓存机制减少数据库访问次数,从而提高表格组件的响应速度和整体性能。掌握这些最佳实践对开发高性能 JSF 应用至关重要。
35 0

热门文章

最新文章