Azure网站、移动服务和BizTalk服务增强的集成是面向云的开发人员向前迈出的一大步。今年3月初,我测试了三大公有云的移动后端服务方案:AmazonWebServices(AWS)MobileSDK、GoogleFirebase和MicrosoftAzureMobileServices。微软的解决方案令人惊喜:微软已经全面实施了移动服务,Azure移动服务团队专注于满足应用程序开发人员的需求,而不是强迫用户选择解决方案,这给我留下了深刻的印象。因此,我们授予它编辑选择奖。显然,微软有一个“让每个人都衡量Azure”的政策,因为该公司已经将Web服务和移动服务的后端集成提升到了一个新的水平。目前处于预览阶段的AzureAppService是一种托管服务,它将MicrosoftAzure网站、移动服务和BizTalk服务组合成一个服务,并添加了新功能以实现与本地或云系统的集成。它包含构建四种类型的应用程序所需的工具和服务:Web应用程序、移动应用程序、API 应用程序和逻辑应用程序(见图1)。我在下面详细解释每个应用程序。AppService的价格方案不同,有的是免费的,有的每个AppService方案是每月300美元左右。更便宜的服务层具有更少的最大实例、手动扩展、更少的存储、更少的内存和更少的处理器内核。如果您有一个允许多个实例的更高服务层,则很容易启用和控制自动缩放(参见图2)。您可以随时更改任何服务的等级。注意:关闭该服务不会阻止它产生费用,如果您的数据存储少于1GB,将其降级到免费套餐可能会阻止它产生费用。删除服务当然会停止收费。AzureWeb和移动应用程序服务图1:新的AzureWeb和移动应用程序服务提供可扩展的Web、设备、逻辑和API应用程序后端。此类别中的API管理服务和通知服务不是新服务。AzureSQLServer数据库的价格取决于数据库的大小和功能,有的只需要每月5美元左右,而有的则需要3720美元左右。性能级别以DTU(数据库吞吐量单位)表示,这是一种结合了处理器、内存以及读写速率的新指标。您现在可以获得的最低级别是5DTU,最高级别是800DTU或1000DTU,具体取决于您相信哪个文档。最高级的数据库每秒可以执行大约735个事务,存储500GB,并处理1600个并发请求。如果您需要更大的数据库,您可以在Azure虚拟机中运行SQLServer,或者您可以在本地运行SQLServer并从您的Azure应用程序服务连接到它。#p#AzureWebAppServicesWebAppServices基本上已更名为AzureWebsites。和以前一样,它们还支持.Net、Node.js、PHP、Python和Java。您可以自动扩展它们,地理管理流量,包括每个IP地址的多个服务器名称指示(SNI),并使它们准备好与多个暂存槽持续集成(用于预推广测试,如果在生产中发现错误则恢复).WebAppServices可以托管和运行WebJobs(下面讨论)并以取决于服务级别的频率自动备份它们(参见图2的左侧)。在新的Azure门户中管理起来更容易一些。要将AzureWeb或移动应用程序连接到内部SQLServer数据库,您需要为此设置混合连接。这需要在Azure云中使用BizTalk并在内部服务器上安装混合连接管理器。这可能还需要创建一个虚拟网络。这一切都相当简单并且有据可查。建立此连接时,不要忘记考虑网络延迟及其对应用程序性能的影响。MicrosoftAzureAppServices图2:如果您的应用程序服务在允许多个实例的服务层中运行,您可以启用和调整自动缩放,以便它根据需要响应更改。#p#Azure移动应用服务在我之前对Azure移动服务的评论中,我提到了分析和构建入门级待办事项Azure移动服务应用程序和后端。移动应用服务具有基本相同的入门级应用程序,但目前支持较少的后端和客户端软件选项。唯一的后端是用C#/ASP.Net编写的,唯一的移动平台是WindowsPhone、Objective-C/iOS、C#/XamariniOS和C#/XamarinAndroid(见图3)。我没有遇到任何编译问题,但我必须更新VisualStudio2013和Xamarin的安装以获得最新的Azure支持。我注意到一些以前是beta附加组件的功能已经向公众推出,例如iOS的离线操作和离线同步。(我曾希望试用最新的Node.jsToolsforVisualStudioNTVS1.0来调试AzureNode.js移动后端,但该测试需要等待一段时间。)作为移动应用服务的一部分,移动应用具有作为移动服务不可用的新功能,例如与内部系统的集成(如前面讨论的SQLServer)和与SaaS系统的集成(通过API应用程序服务和连接器)。他们还可以访问测试运行槽(如上所述)、WebJobs、更好的缩放选项和其他不那么突兀的功能。Azure移动应用服务图3:Azure移动应用服务预览版目前支持四种客户端软件快速启动,低于之前移动服务生产版本中的11种。演示应用程序本身没有太大变化。连接器是预构建的API应用服务,负责向Azure呈现Swagger2.0/JSON/REST接口,具有用于配置的AzureUI,并且知道如何使用其他服务(参见图4)。REST当然是服务接口,使用类似于HTTP和HTTPS的结构;JSON当然是人类可读的JavaScript对象。也许鲜为人知的是Swagger,这是一种用于记录RESTAPI的规范。Microsoft使用Swagger文档作为API应用服务之间以及API应用和其他应用服务之间的一种“插件”。WebJobs基本上是作为WebAppServices的一部分托管在Azure中的批处理服务;移动应用服务包括移动应用代码下的面向后端的Web应用。WebJobs是可扩展的、自动备份的,并且具有适用于应用服务的所有其他优势。WebJobs在类似WindowsNT的环境中运行:GNUBash、Node.js、NPM、Grunt、Bower、Git、Mercurial、PHP和Python都安装在这个环境中,此外还有您需要的Microsoft工具。在免费服务层中运行的WebJobs限制为20分钟。除此之外,它们可以按需运行、连续运行(只要相应的WebAppService运行)或按计划运行。现在,您必须使用旧的AzureUI(manage.windowsazure.com)来创建计划任务。AzureAPIAppMarketplace图4:AzureAPIAppMarketplace为许多常见的SaaS解决方案(例如Salesforce、Twitter和Dropbox)提供连接器。您可以使用持续交付或通过新的Azure门户(portal.azure.com)通过VisualStudio创建和部署WebJobs。对于MobileAppService,您需要添加WebJob:MobileAppCode>AllSettings>WebJobs>Add。(AzureBatchServices与WebJobs的区别主要在于规模,但乍一看两者很相似,让人头晕目眩)。#p#AzureAPI应用服务如上所述,AzureAPI应用服务使用Swagger和REST作为可插入接口,使用JSON作为服务之间的数据格式。在阅读Azure教程后,我通过VisualStudio构建并部署了一个用C#编写的示例API应用服务(参见图5),将AzureSDK升级到最新版本后,我没有遇到任何问题。您可以使用ASP.Net、Java、PHP、Node.js或Python构建API应用程序。虽然Azure的其他地方支持Ruby,但此处尚不支持Ruby。目前,C#是AzureSDK将API应用服务项目添加到VisualStudio2013的唯一语言。我希望当AzureAPI应用服务普遍可用时,这种情况会改变。AzureAPI应用服务图5:AzureAPI应用服务创建一个Swagger文档化的REST接口。您可以在逻辑应用服务中组合API应用服务。APIAppHost管理应用程序的身份验证,这让您免去了自己实施身份验证的麻烦。此外,您可以根据需要在WebAppService之上构建自己的REST界面。如果REST/SwaggerAPI构建在普通Web应用服务之上,我不确定您是否可以将它公开给逻辑应用服务中的复合服务。如果它作为API应用服务运行,您显然可以这样做。#p#Azure逻辑应用服务正如我之前所说,逻辑应用服务可以直观地将连接器和其他API应用组合到一个业务流程中(参见图6)。在所示示例中,我设置了一个流程,每小时在推特上搜索有关《InfoWorld》的推文,使用我的推特帐户,并将找到的所有推文保存到我的Dropbox,使用我的Dropbox帐户。我必须授权两个连接器应用程序才能使用我的帐户。测试时,手动运行该应用程序确实会创建从推文到我的Dropbox的文件。逻辑应用服务多维数据集的代码视图显示为业务流程创建的XML。所有逻辑应用服务都以触发器开始。在图6的示例中,我安排服务每小时运行一次。我可以像定义来自其他服务的事件一样轻松地定义触发器,例如SQLServer插入或更新触发器。Azure逻辑应用程序图6:Azure逻辑应用程序可以直观地将连接器和其他API应用程序组合到业务流程中。在此示例中,我设置了一个流程,每小时在Twitter上搜索有关《InfoWorld》的推文,使用我的Twitter帐户,并将找到的任何推文保存到我的Dropbox。代码视图显示为流程创建的XML。AzureAppServices在云后端集成方面向前迈出了一大步,甚至与之前版本的AzureMobileServices相比也是如此。如果将其与Amazon后端集成进行比较——这需要您在各处手动复制粘贴服务身份验证GUID密钥,区别就非常明显了。#p#总结虽然不是完美的测试版,但Azure应用服务在简化基于云的后端服务的集成方面达到了新的高度。免费或每月每个应用程序实例约300美元,按分钟计费,具体取决于所需资源好处让开发人员更容易在Azure上构建可扩展的Web和移动应用程序后端将Azure应用程序与记录系统集成降低运行应用程序后端的成本缺点总体而言,仍然存在一些缺陷,功能不完整,无法完全移植到其他云即使服务已禁用,仍然收费,除非你将它们移动到免费层或完全删除它们。http://www.infoworld.com/article/2904348/application-development/first-look-microsoft-azure-app-services-cloud-development.html
