Azure为托管微服务提供了一个理想的平台,因为它提供了许多托管服务,而这些服务允许开发人员创建能可靠且规模化运行的微服务。不过,了解这些托管服务起到了何种帮助,且哪些服务最适合某一特定的任务仍然是一个问题所在。为此,Christos Matskas为云应用程序的开发人员提供了有用的概要。

随着云计算news.webhostingtalk.cn/的蓬勃发展,现在,使用各类服务创建有针对性的小型微服务架构已经变得前所未有的容易了。如果您选择Azure作为您的云提供商,那您就拥有很多能帮助您实现低摩擦、高通量和低成本解决方案的服务了,而本文就旨在为您介绍这些服务以及它们相应的利弊。

一、Azure Functions

“Azure Functions”是最新加入无服务器架构家族的一项服务。它们是由事件驱动的“平台即服务”,能允许开发人员使用多种语言来创建用于执行任务的“functions”,而事件可以由在Azure(blob存储、服务总线)上运行的另一服务、第三方SaaS服务(Dropbox、Github等)或自定义触发器(定时器或http触发器)来启动。 Functions非常有用,因为您可以用其编写自定义代码,而我们在下面将要介绍的一些服务却不具备此功能。

优势:

· Functions支持多种不同语言(C#、Node.js、PowerShell等)

· 与Azure服务完美结合

· Functions可在本地进行开发和测试

· 他们为从源代码管理到部署的相关操作都提供优质的DevOps支持

· 它们可以进行无限扩展,从而支持复杂且繁重的工作负载

· 它们拥有绝佳的门户网站

· 目前仍有许多新功能正在开发之中

弊端:

· 工具仍未发展成熟,且仍处于开发之中

· 文件仍在开发之中

结论:

“Azure Functions”是一项十分灵活的服务,它能允许开发人员快速编写和部署代码,但需要的设置要求却是最少的。当您需要编写复杂的逻辑或与不受支持的服务进行集成时,您就应该使用此服务。

二、LogicApps逻辑应用程序

逻辑应用程序几乎是与“Azure Functions”一起问世的,但在工具和DevOps方面却发展得更为成熟。逻辑应用程序相当于企业版IFTT(全称为:If This Then That),其能允许开发人员创建响应预定义事件或触发器的复杂逻辑操作。打个比方,如果一个文件被上传到OneDrive for Business中,那您就需要将该文件复制到存储帐户,并发送电子邮件。“Azure Functions”和逻辑应用程序之间的区别在于,逻辑应用程序不提供编写自定义代码的功能。不过,您可以使用内置的设计器或代码编辑器来创建复杂的工作流程,但您不能偏离预定义的操作、触发器和条件。

优势:

· 很容易上手

· 它很好地集成了企业对企业的操作

· 较小的学习曲线

· 它是一项完全接受托管的服务

· 它不需要自定义代码

· 它完美结合了基于Azure的服务及第三方服务

弊端:

· 监控逻辑应用程序有些棘手,因为它需要访问门户网站

· 它不允许任何自定义代码

结论:

逻辑应用程序比“Azure Functions”更高一级。它们具有出色的即插即用功能,可与许多服务配合使用,并能允许您创建复杂的工作流程。不幸的是,它们在实施任何偏离预定义规则组的过程时完全不具备灵活性,但这却是“Azure Functions”的主要价值所在。它们弥补了逻辑应用程序缺少的功能,能让您设计自定义的集成。因此,您可以先将逻辑应用程序用于工作流程,然后在遇到障碍时,再使用“Azure Functions”。