赞
踩
微软公司于近期发布了Azure Functions以支持AWS Lambda。本文将介绍如何开始使用这个事件驱动服务,以及这项服务是否适合您。
无论是超大规模云供应商、软件开放人员还是企业管理员,目前最热门的技术之一就是无服务器计算。也就是所谓的功能即服务,这些由事件驱动的服务可允许企业用户在不需要提供虚拟机或容器集群的情况下完成应用程序代码的部署,并可以由部署在另一个云服务上的应用,通过一个触发事件来触发执行。
云功能是平台即服务(PaaS)的一个自然延伸。这些云端功能不仅能够让云管理人员和开发人员免于受到服务器与存储设备等细节问题的影响,而且完全可以从底层运行时基础设施和操作系统中抽取代码执行。相关功能响应外部触发事件而运行,所以它们最适合用于使用微服务和事件驱动组件的部署,而不是那些持久性的长期运行应用程序。
从2014年开始,亚马逊网络服务就开始通过Lambda来推广无服务器模式,但是包括谷歌、IBM和微软在内的其他云供应商们已经推出了功能即服务产品。微软公司于去年11月发布的服务被称为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事件或服务可触发相关功能:
微软Azure Functions还可与以下Azure和第三方发布事件的触发器集成:
Azure Service Bus,包括可向Service Bus队列发布消息的内部部署的服务
一个可说明无服务器设计的简单示例是使用微软Azure Functions来响应和处理网络表单。不同于让网络服务始终处于运行状态并等待处理用户输入,Azure Functions是按照命令执行任务。一旦激活后,该功能可以显示存储在Azure blob中的若干表单中的一个,处理已提交的字段并将处理结果保存在SQL或非SQL数据库中。
微软Azure Functions与其他无服务器产品类似,特别是AWS Lambda。但是它们之间还是有着重大的区别,具体包括:
处理持久性数据的方法:两种服务都使用了无状态容器作为执行机制,但是微软Azure Functions还可以在Azure App Service应用程序环境中运行,这个环境配有专用虚拟机可让用户存储不同执行之间的状态。
每个云服务支持的事件源:有关最新支持列表,请参阅Lambda和微软 Azure Functions的开发人员文档。
定价模式:两家厂商都是根据总执行时间和功能请求总数来综合定价的。但是,具体细节是不同的。请务必查看Lambda 和 Functions 在它们各自网站上的最新费率信息 。
由于无服务器功能是一个新概念,企业用户仍然会采取审慎的态度试用,以求找到正式引入使用的正确时机。Functions能够与事件驱动程序一起运行,例如处理用户输入或响应异步消息队列中的事件。如同通用PaaS一样,Functions有助于用户在几乎不了解初始容量要求的情况下部署新的应用程序,但是期望使用量会随着时间推移而发散、爆发和发展。
例如,消息队列的常见用途是处理来自外部源的数据,例如在将物联网数据保存至数据前对数据进行过滤和归一化处理,以及上传多媒体文件时压缩或变更图像或视频文件的格式。企业用户还可以使用Functions将Cron Jobs重新用于云端的批处理任务。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。