无服务器计算概览:AWS Lambda/Azure Functions/Cloud Functions和FunctionCompute

日期: 2017-05-25 作者:蒋红冰 来源:TechTarget中国

无服务器计算?听到这一词,有人不禁会问“没有服务器怎么进行计算?”这就如同没有煮饭的工具,你如何烧饭?事实上,这里所讲的“无服务器计算”并不是真的没有服务器这样的设备,而是这些服务器对它的使用者不见了。在我看来,相比于“无服务器计算”的定义,可能“隐形服务器计算”会更加贴切一些。

2016年6月,MikeRobers在MartinFowler的博客网站上发布了一篇题为“无服务器架构”的文章,引起了业界的诸多关注。在该文章中,他指出:“无服务器先用来描述那些显著或完全依赖于第三方应用或服务(“在云端”)的应用程序。这些应用程序依赖于第三方来管理服务器端逻辑和状态,它们都是典型“富客户端”的应用程序(你可以想象为单一页面的Web应用程序或移动应用),并采用云平台提供的生态系统,包括可访问的数据库(如Parse、Firebase)、认证服务(Auth0、AWSCognito)等。……无服务器还表示那些有服务器端逻辑的应用仍然需要由开发者来编写。”

但是,不管如何,对于使用者而言,他不需要直接购买真实存在的服务器等基础设备,也就无需部署、维护、管理这些设备,那么它就是“无服务器计算”。而市场上也有不少云服务提供商提供了无服务计算,下面来盘点一下:

AWS Lambda

AWS Lambda无疑是业务最知名的无服务器计算实例。那么,什么是AWS Lambda?在AWS官网视频 中,亚马逊先给出这样一个场景:

当企业构建应用时,你肯定是希望这些应用程能给用户交付最好的体验。你可能希望你应用程序 ,在游戏会话中可以快速生成内购选项;你可能希望验证街道地址是否已经更新,或者你希望当用户上传照片后就可以立即生成图像缩略图。为了实现这些不可思议的操作,你的应用需要有后端代码,来响应事件的发生,如图像的上传、应用的活动、网站的点击和传感器的输出,但是管理基础架构来托管并执行后端代码,需要你准备大量的产品和相当数量的服务器、要管理系统的更新,应用安全补丁,还要监控所有这些基础架构的性能和可用性。

视频结尾,亚马逊问到,如果只需专注于构建优秀的应用程序,而不必把大量的时间浪费在服务器管理上,岂不快哉?进行引出了,AWS Lambda的定义与功能:

AWS Lambda就运行在企业后端代码的计算服务,来对事件做出响应,如对象上传到S3、更新AWS DynamoDB表格数据和Amazon Kinesis Streams。 通过 AWS Lambda,无需配置或管理服务器即可运行代码。只需按消耗的计算时间付费—— 代码未运行时不产生费用。借助 Lambda,几乎可以为任何类型的应用程序或后端服务运行代码,而且全部无需管理。只需上传代码,Lambda 会处理运行和扩展高可用性代码所需的一切工作。用户可以将代码设置为自动从其他 AWS 服务触发,或者直接从任何 Web 或移动应用程序调用。最终所要做的就只是编写代码一项工作。

微软Azure Functions

微软的无服务计算称为Azure Functions。Azure Functions提供了无需服务器的开发体验,支持一系列可靠的事件触发器和数据绑定。它基于在Azure App Service PaaS中使用的WebJobs软件开发工具包。有助于用户将应用或脚本程序作为web或移动应用的一部分来运行,或者甚至将其公开作为可调用的API。因此,微软Azure Functions可以使用WebJobs的功能,从而更容易地使用Azure Storage和Azure Service Bus(后者是一个发布与订阅的消息队列)。

功能包括了用所支持语言开发的执行逻辑部分与描述功能绑定的JSON配置文件,例如名称、数据类型以及绑定是发送还是接收数据。同时,作为一个事件驱动的服务,微软Azure Functions非常适合处理数据,其中涉及内容包括了从物联网(IoT)设备、开发微服务、开发集成其他代码模块或云服务,或者API开发。

Azure Functions 使用计划根据资源使用和执行次数计费。使用计划定价包括每月免费授予的 1 百万次请求和每月 400,000 GB 的资源使用量。用户还可在其应用服务计划内运行 Functions,以常规应用服务计划费率计费。

Google Cloud Functions

Google Cloud Functions是构建和连接云服务的无服务器执行环境。使用谷歌Cloud Functions,用户可以编写简单的单用途函数,它们附加在从云基础架构和服务发出的事件上。当某一事件发生时,Cloud Functions将会被触发。代码完全管理环境中执行,用户不需要构建任何基础设施和对服务器进行管理。

Cloud Functions由Javascript编写,并在Google Cloud Platform的Node.js v6.9.1环境中执行。 使用Cloud Functions ,用户可以在所有标准的Node.js运行时中运行,使可移植性和本地测试变得轻而易举。

Google Cloud Functions根据调用、计算时间和出站数据进行收费。每月调用次数200万内免费,超出之外的每100次调用为0.4美元;每月40万GB秒免费,超出之外每GB秒 0.0000025美元;每月出站数据5GB免费,超出之外每GB为 0.12美元;所有入站数据均为免费,且当出入站数据和与其他Google API在同一地区时,这一服务也是免费的。

阿里Function Compute

阿里Function Compute是一个事件驱动的全托管计算服务。通过 函数计算,使用户无需等基础设施,只需要编写代码并上传。函数计算会为用户准备好计算资源,以及弹性、可靠的方式运行代码, 并提供日志查询,性能监控,报警等功能。

2017年4月,在阿里南京云栖大会上, 阿里云宣布了 Function Compute 启动邀测。这是国内首个事件驱动的无服务器计算平台。用户按需调用、按需付费,无需管理服务器等基础设施,特别适用于应用场景中有明显波峰波谷的企业。而且,用户只需要为代码实际运行消耗的资源付费 ——代码未运行则不产生费用。

目前来看,大部分企业已经接受并实现了基础设施云化的目标。但是未来,是不是会有更多的企业抛弃基础设施,而只让基础设施掌握在一小部分云服务提供商手中,进而进入“无服务器计算”的云世界,我们还需要观察。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

作者

蒋红冰
蒋红冰

TechTarget云计算主编,主要负责云计算和虚拟化网站的内容建设。长期专注于IT前沿技术,对云计算、虚拟化、人工智能、区块链等技术都有了解;对行业趋势、市场动态有一定的洞察。

相关推荐