写点什么

Azure Functions 正式发布

  • 2016-12-21
  • 本文字数:2902 字

    阅读完需:约 10 分钟

近日,微软宣布在其 PaaS 产品中增加 Azure Functions 服务。微软最初是在 2016 年 3 月以预览形式推出了这项服务。该服务为开发人员提供了一个事件驱动的无服务器计算平台,让组织只需要为他们消耗的计算资源付费。

由于 Azure Functions 是一项 PaaS 服务,所以客户不需要为峰值用量做准备或者为传统的维护操作担忧。Azure 平台首席项目经理 Yochay Kiriaty 解释说:

Azure Functions 可以按需缩放,因此,你不需要针对最大规模的场景构建基础设施,也不需要为你不使用的资源付费。你还可以设定一个日最大支出上限,防止 Function 失控。用户也不必再担心升级和维护框架、操作系统或基础设施。Functions 会为你处理底层的基础设施。

Azure Functions 可以使用 C#和 Javascript 编写,包括 F#、PowerShell、PHP、Python、CMD、BAT 和 Bash 等在内的其他语言还处于预览状态。起初,开发人员在 Azure Portal 上的一个 Web 浏览器中编写 Azure Functions。但在其正式发布以后,微软为喜欢在 IDE 中构建 Azure Functions 的开发人员提供了另外的工具。该工具尚处于预览状态。现在,安装 Visual Studio Tools for Azure Functions 之后,开发人员可以在 Visual Studio 2015 中构建 Azure Functions 了。

图片来源: https://blogs.msdn.microsoft.com/webdev/2016/12/01/visual-studio-tools-for-azure-functions/

开发人员可以在本地运行 Azure Functions,并在 Visual Studio 中进行调试,然后通过 Web Deploy——Publish 特性将它们部署到 Azure。在部署到 Azure 之后,开发人员仍然可以将调试器连接到云实例,并通过 Visual Studio 调式它们。

图片来源: https://blogs.msdn.microsoft.com/webdev/2016/12/01/visual-studio-tools-for-azure-functions/

最近,InfoQ 有机会和 Azure Functions 项目经理 Chris Anderson 取得了联系。下面是他向我们介绍的一些内容。

InfoQ:关于无服务器计算的讨论很热烈。您认为这一切是因为什么?

Chris Anderson:我认为,围绕无服务器计算的讨论归根结底是因为,无服务器计算为开发人员提供了他们从未有过的体验,让它们可以更快速、更轻松地构建应用程序。可以更快地做事和构建东西让他们非常兴奋。此外,当使用托管服务及无服务器计算时,他们可以更轻松地操作和管理他们的应用程序,因为这些服务的设计已经尽可能地为你承担了那种职责。也就是说,当我们采用无服务器计算时,我们可以更快地创新,更轻松地管理和扩展我们正在构建的应用程序。我认为,还有一个原因是,围绕着无服务器计算的概念,已经形成了一个很棒的社区。这两个原因一起促成了这种热烈的讨论。

InfoQ:你们的客户使用 Azure Functions 做什么?您能向我们介绍一些比较有趣的案例吗?

Chris Anderson Plexure.io 使用 Azure Functions 的方式就是一个有趣的案例。这是一个 IoT 驱动的 CRM 平台。该平台的其中一项功能是帮助客户消费与顾客互动相关的 IoT 信息,简化编排,并对该 IoT 数据作出回应。当他们了解了 Azure Functions,他们觉得可以用它托管他们在工作流(基于 Azure Logic Apps,微软的无服务器工作流集成服务,其中包含一个可视化设计器和超过 80 个开箱即用的连接器)中用到的部分动作。他们还希望让他们的客户可以在 Plexure 的在线门户上编写自定义的 Function。这让他们的客户可以在他们的门户上做更多的事,而不必在某个地方搭建一个自定义的 API 服务用来响应 WebHooks。Azure Functions 已经成为做那件事的其中一种最好的方式,那样,他们就避免了中间环节。由于我们的门户 UI 是开源的,他们可以重用我们的 Angular2 组件,快速在自己的在线门户中获得这种体验。

另外一个有趣的案例是我们对 Microsoft Bot Framework 所做的事情。当 Microsoft Bot Framework 团队寻找一种最简单的方式部署和运行机器人程序时,他们将无服务器计算视为合理的解决方案。Azure Functions 作为基本的计算层,托管集成在一起的 Azure Bot Service,并提供一些其他的功能,如按需扩展,支持持续集成和交付。

不过,在我看来,最有趣的是,像小规模的数据转换或扩充这样的最普通、最基本的场景在规模很大并结合了其他托管服务的情况下是什么样子。我们看到许多客户使用 Azure Logic Apps 执行大量的集成工作负载,在这个过程中,他们可以轻松地为自定义的动作编写 Functions。例如,可以非常快地构建一个应用程序,读取有关特定主题的所有推特,使用 Logic Apps 和 Azure Functions 对它们进行处理,辅以类似 Cognitive Services 这样的服务用于情感分析和人脸识别,并输出到 PowerBI。对于 IoT 也是一样,当你将类似 IoT Hub、Stream Analytics 和 Azure Functions 这样的服务结合起来,IoT 数据分析变得前所未有的简单。尽管 Function 并没有做什么特别有趣的事情,但事实是,它很容易配置和运行,就是说,我已经充分领略到类似 IoT Hub 和 Steam Analytics 这样的托管服务所带来的好处。

InfoQ:你见过你们的客户使用 Azure Functions 实现了什么规模的(事务处理)?

Chris Anderson:大多数客户都是一天触发几个事件。他们使用 Functions 简单地扩展他们已有的服务,随着他们越来越多地采用无服务器模式,并构建越来越多的功能,他们对 Functions 的使用会逐渐增加。我们最大的用户每天要执行上亿次,每秒成千上万次。

InfoQ:你们最近发布了 Visual Studio 工具。为什么提供这种工具对你们的客户而言特别重要?

Chris Anderson:从我们着手 Azure Functions 相关工作的第一天开始,我们就把提升开发人员的开发效率和敏捷性作为基本任务。我们希望开发人员可以构建东西,而且我们希望他们可以使用他们已经在使用的工具快速地完成构建。我们经常使用的一个口号是“5 秒钟开始,5 分钟见价值”。当然,只是使用一个文本编辑器也可以快速地构建,但根据我们的经验,许多人都希望有一个像 Visual Studio 这样功能更为强大的东西来提高他们的开发效率。另外,我们还投入资源研究通用的本地工具和 VS Code 集成,那样我们就可以在其他操作系统上为客户提供支持。本地调试就是那种不错的本地编辑体验的一部分,如今,我们已经支持在 Visual Studio 内进行在线调试。我已经逐渐对它形成了依赖,在构建演示程序或者帮助客户时,它可以帮助我捕捉一些我自己创建的、比较难以发现的 Bug。

InfoQ:Azure Functions 目前已经支持绑定到类似 Azure Event Hubs、Azure Service Bus Queues and Topics 和 Azure Storage 这样的服务。你们还会寻求在这项服务中增加其他一些事件触发器吗?

Chris Anderson:我们提高开发效率的承诺不会变,我们已经提供并且将继续提供其他的绑定,让 Functions 可以更便捷地连接服务和数据。你将会看到,我们会在更多的触发器上投入资源,如像 Document DB 和 Azure IoT Hub 这样的 Azure 服务。另外,我们还会更紧密地集成那些也可以和我们通信的服务,如 Azure Monitoring 以及像 Office 365 和 Dynamics 365 这样的 SaaS 解决方案。我们还会研究特定于 Functions 的触发器,比如,当 Function 中有错误可以有一个触发;使用 Azure Functions 更好地管理 Azure Functions。

查看英文原文 Azure Functions Reach General Availability

2016-12-21 18:001476
用户头像

发布了 1008 篇内容, 共 356.5 次阅读, 收获喜欢 332 次。

关注

评论

发布
暂无评论
发现更多内容

架构师训练营第1周——学习总结

在野

极客大学架构师训练营

数据结构与算法之基础入门

shirley

数据结构 算法

你现在极有可能是一个「铁锤人」

非著名程序员

读书笔记 程序员 提升认知 认知提升

中台迷局丨只做IT的中台是个神棍

TE产服

极客架构师训练营第一周

大丁💸💵💴💶🚀🐟

ARTS Week 1

黑色柳丁

ARTS 打卡计划

c# 之linq——小白入门级

moonlucy

产品经理越来越不值钱了吗?

Neco.W

产品 产品经理

LeetCode | 3. Roman to Integer 罗马数字转整数

Puran

算法 LeetCode arts

JDK 15 JAVA 15的新特性展望

程序那些事

Java JVM Java 25 周年 新特性

微服务架构中分布式事务实现方案怎样何取舍【转发】

古月木易

微服务

日志标准化解析的关键内容

secisland

日志 态势感知 关联分析 解析规则 标准化

架构师训练营-架构方法:架构师如何做架构

Pontus

极客大学架构师训练营

作为一个架构师,我是不是应该有很多职责?

架构师修行之路

程序员 架构 架构师

如何设计电商行业亿级用户秒杀系统

奈学教育

大数据

架构方法论学习总结

SaaS:小企业向左、大企业向右

TE产服

架构师训练营-开营

zcj

极客大学架构师训练营

架构师训练营第一周总结

hifly

软件架构 架构师 极客大学架构师训练营 #总结#

架构师训练营 - 食堂就餐卡系统设计

Pontus

极客大学架构师训练营

食堂就餐卡系统架构设计

武鹏

第一周学习总结:

武鹏

微服务架构中分布式事务实现方案怎样何取舍

奈学教育

架构师训练营-第一周-学习总结

Anrika

极客大学架构师训练营 架构总结

架构师训练营-第一周学习总结

zcj

极客大学架构师训练营

课后总结-20200606

caibird1984

java程序员从小工到专家成神之路(2020版)

程序那些事

Java 学习 Java 25 周年

架构师(week1)总结

满山李子

游戏夜读 | 研发运营怎么分成?

game1night

原创 | TDD工具集:JUnit、AssertJ和Mockito (二十)编写测试-参数化测试

编程道与术

Java 学习 编程 TDD 单元测试

二叉树视频|留美六年毅然归国,85 后技术 VP 金超:我想把工业智能做好

二叉树视频

写作平台 二叉树 年少有为

Azure Functions正式发布_亚马逊云科技_Kent Weare_InfoQ精选文章