【51CTO.com快译】面对基于云的分布式系统,IT团队可以践行持续交付、减少管理开销,更有效地构建和部署软件。然而,微服务方法需要在存储、网络、更新、API和容器等方面有明确的策略和慎重的考虑。
对于微软Azure用户而言,有几种原生服务和实现框架有助于降低复杂性,更易于管理分布式资源。 IT技术人员可以借助Azure Service Fabric访问各种工具,Azure Service Fabric是微软基于云的中心,可用于部署容器技术、调用函数即服务(FaaS)或创建API协议以公开微服务。
我们在本文中介绍微软Azure如何支持微服务,包括它如何与容器和无服务器技术协同使用。我们主要介绍了用于构建分布式系统的八款主要的Azure工具以及部署微服务时需要考虑的几个优秀实践。
借助微服务,IT团队通常可以更快速更灵活地构建和部署软件。应用程序分成几个基于服务的较小组件,因而更易于自动扩展和调整。然而,管理员和开发人员要准备好应对这些互连服务所带来的复杂性。
图1. 整体式架构和微服务架构的对比
下列Azure工具和服务是为微服务部署而设计的:
Azure Service Fabric(https://whatis.techtarget.com/definition/Azure-Service-Fabric)是一种应用程序平台,面向在本地或Azure中运行的微服务。DevOps团队可以使用其声明性模型来部署应用程序及依赖项,无需搭建和管理基础架构。它可全局运行,这减少了瓶颈,并提供了现代应用程序所需的高可用性。
该框架提供了从初始部署、日常维护再到报废的整个应用程序生命周期管理。管理员可以用它来检测并重启发生故障的系统、发现服务位置、监控应用程序运行状况并管理状态。与Kubernetes相似,Azure Service Fabric简化了这项工作:配置和部署由容器托管的微服务和Azure自己的平台服务组成的应用程序。
有了Azure Service Fabric Mesh,IT团队可以表明所需的资源、服务可用性要求以及任何资源限制,它可以处理底层工具和基础架构的所有细节任务。该平台为.NET Core微服务提供了无服务器主机,使开发人员能够使用Docker容器支持的任何语言。Service Fabric Mesh可自动处理升级,提供部署新的应用程序版本时换掉容器的功能。除了对云原生工作负载而言可高度扩展外,该平台还具有模块化和自适应性。
通常,FaaS确保被某些服务事件触发时代码按需运行。有了Azure Functions,你可以安装应用程序的某部分,仅在需要时才加载函数。它们还可以按需并行执行。因而,管理员就不需要配置和构建应用程序基础架构,只需为运行显式代码段所花费的时间段付费。
开发人员和管理员使用基于事件的架构来接收有关应用程序状态更改的警报。Azure Event Grid提供警报,以便开发人员和管理员可以立即响应这些更改。该工具实际上充当了构建事件驱动型微服务应用程序的粘合剂。
Azure Kubernetes Service便于部署,并简化容器实例的日常测试和管理。DevOps团队可以使用Azure Cloud Shell或远程Azure命令行接口(CLI),快速构建和启动容器化的应用程序。
容器包含微服务需要运行的所有要素,包括代码、运行时环境、工具集、系统库和设置。由于ACI本质上是容器即服务,最终用户不受编排工具和CLI的影响。唯一的要求是,拥有待创建容器的准确映像。ACI还可以处理集群初创化、更新和打补丁。
Azure API Management为服务功能确保了单一入口点。通过API管理集成,DevOps团队可以访问多个工具和服务,无需更改应用程序代码。这包括导入服务定义、定义复杂的路由规则、将发生的事件记入日志以及缓存响应。
作为一种临时容器磁盘,Service Fabric Reliable Volume可帮助微服务应用程序保持持久状态,同时消除通常与访问容器化应用程序的存储有关的延迟问题。然而,虽然Service Fabric Reliable Volume确实提供了通用文件存储,并支持读/写功能,但管理员还可以访问Azure File Storage以确保数据可靠性。
开发人员和管理员需要部署统一的监控工具和实践,才能在Azure上成功部署微服务。比如结合使用Azure Monitor的数据度量指标和Log Analytics代理用于分析性能和成本。 DevOps团队可以分析不同的数据流以量化写入事务或关联服务分区以帮助监控成本。
切勿使用传统的错误处理方法(比如依赖返回码),改而使用Azure Service Fabric运行状况策略。该平台为评估和报告提供了一种详细、灵活、可扩展的模式。通过积极监控服务部署的运行状况,IT团队可以防止问题扩大、导致严重停机。
此外,通过基于本地视图收集基于服务的报告,DevOps团队可以捕获集群级视图,并事先诊断潜在问题。实际上,这种方法可以在Azure中加以更广泛的应用。因此对工作负载响应能力的改善将使IT团队能够更专注于应用开发上,少专注于基础架构管理上。
原文标题:Use these 8 tools to deploy microservices on Azure,作者:Kerry Doyle
【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】