azure_Azure Functions长大

azure

对于在Azure上诞生的技术来说,作为其原始平台WebJobs的衍生产品Azure Functions已走了很长一段路。 它不仅是云服务, 还可以托管在容器中并在您拥有Docker支持的任何位置运行 :从您自己的开发硬件,到网络边缘的IoT设备,再到本地甚至其他云平台。 而且Azure功能仍在不断发展,增加了新功能和新托管模型。

一个关键的新功能是Azure托管功能的高级计划。 如果您正在使用Azure Functions处理大量数据,则这是必不可少的升级。 现在,函数不仅可以运行更长的时间(长达25分钟),而且还可以使用更多的计算量和更多的内存:最多4个内核和12GB内存。 借助基于功能的应用程序可以使用更多功能,有必要更有效地管理预算,尤其是如果您将其用作事件驱动的编程模型的一部分,并使用Azure EventGrid等技术来触发功能。

[ Microsoft .Net Core 2.0:您需要了解的一切 | 从InfoWorld的Microsoft Architect博客中了解如何充分利用.Net Framework和.Net Core。 | 通过InfoWorld的App Dev Report新闻通讯了解编程方面的热门话题。 ]

给Azure Functions一个热烈的开始

新的计费模式是保费计划的一部分。 在这里您可以设置最小计划大小,例如,确保始终预热一台或多台Azure Function主机并准备就绪。 同样,在规模的另一端,可以选择最大计划大小,限制一次可以运行的功能数量,并帮助您提供可预测的账单。

控制Azure功能的冷启动比您想象的更重要,尤其是在需要管理应用程序延迟的情况下。 在理想情况下,您的应用将立即响应负载需求的增加,在负载增加时添加实例,并在负载下降时关闭实例。 这是一个好主意,但是即使Azure Functions快速启动,加载容器并建立所有适当的服务连接仍需要花费时间。 这就是为什么管理冷启动时间很重要的原因,因为在大多数情况下,您的代码将滞后于需求,并且关闭所需的时间比您想要的要长。

如果您使用高级计划,则可以通过准备好预热的实例来降低延迟的风险。 这为您的计算需求设置了下限,因此您将在已运行的实例之上添加任何其他Function实例。 尽管您将为该额外的预热实例支付费用,但这应该可以使您领先于需求。

联网Azure功能

Azure功能现在可以利用Azure的软件定义的网络工具,不同的计划类型提供不同的网络选项。 完全由事件驱动的基本使用计划仅允许您控制入站IP地址。 这是一个合理的折衷方案,因为您想控制事件源。 消费计划功能的任何出站连接都将连接到其他Azure资源,因此您可以使用它们来管理网络。 更复杂的应用程序将使用高级计划,该计划增加了对与Azure ExpressRoute和出站服务终结点的虚拟网络连接的支持 。 您可以使用它来管理到本地事件源和本地端点的连接。

Azure支持在App Service环境中使用功能,就像WebJobs一样。 您可以更好地控制实例,并且可以基于App Service联网工具来更详细地管理联网,包括使用Azure虚拟网络资源。 这样,您就可以将功能用作虚拟基础架构的一部分,将其部署为应用程序的组成部分,并将控件应用于应用程序的所有元素。

不仅仅是Azure可以为您扩展功能: Microsoft最近宣布了KEDA (基于Kubernetes的事件驱动的自动缩放)。 通过向Kubernetes应用程序添加事件驱动的扩展,您将获得一种新的方式来扩展在Azure外部运行的Function 。 在Azure内部,您可以使用EventGrid等服务按需启动Functions。 如果您正在自己的基础架构或另一个公共云上运行容器托管的功能,则可以使用KEDA支持在需要时启动新实例的Kubernetes中运行它们。

改进Azure功能代码:安全性和可测试性

基础设施很重要,但功能是核心代码。 Microsoft当前在Azure Functions 2.x中支持许多通用语言 :.Net Core(用于C#和F#),Node.js 8和10(用于JavaScript(以及TypeScript)以及Java 8)。目前正在预览的是PowerShell和Python, Azure Functions的通用脚本工具,并将其变成一个平台,用于对运行在Azure上的Windows和Linux主机进行事件驱动的系统管理。

Azure Functions开发人员面临的一个问题是管理与Azure和其他API一起使用所需的机密。 使用旧版的Azure Functions,您需要将键和其他连接详细信息放置在Functions的应用程序设置中。 这使它们脱离了您的代码,但这不是管理机密的最有效方法,并且存在泄漏的风险。 现在,Azure Functions可以使用托管身份来处理访问令牌,并与Azure Active Directory集成以使用OAuth通过直接身份验证来控制对服务的访问。 或者,您可以使用功能的身份来访问存储在Key Vault中的机密。 两种方法都意味着您不再需要与代码一起管理机密信息,从而确保在不使用时对它们进行加密。

Azure Functions版本2中对.Net Core的更改使构建和管理应用程序变得更加容易,从而允许您使用更多的微服务设计模式。 其中之一是依赖注入 ,这使得在开发过程中测试代码和使用模拟更加容易。 基于与.Net Core相同的依赖项注入功能,Azure Functions现在可以与现有的单元测试框架一起使用,根据需要注入测试功能,使您可以将它们放在完整的CI / CD中(连续集成和连续交付)。

消息驱动和事件驱动的设计模式是构建和交付分布式应用程序的关键方法。 通过将Function与消息队列以及发布和订阅体系结构集成在一起,我们可以开始构建可用作输入和输出阶段的可伸缩微服务。 从物联网传感器数据处理到在横向扩展Kubernetes中管理事件流的所有事情的一部分,这种模型都是有意义的,而且看起来还在不断发展。

翻译自: https://www.infoworld.com/article/3401616/azure-functions-grows-up.html

azure

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值