微软的Azure平台服务始终提供对微服务的支持 。 实际上, Azure Service Fabric从一开始就存在。 最初支持Azure的SQL服务,现在它是大部分Azure平台以及Cosmos DB的基础 。
您已经可以在自己的应用程序中使用Azure Service Fabric差不多了,因为这是管理和扩展自己的代码的关键。 借助对容器和虚拟基础架构的支持,您可以将其与其他服务编排工具(如Kubernetes)进行比较 。 尽管功能强大,但使用起来并不直观。 其复杂的基于XML的配置文件集可能会妨碍构建部署,并且难以调试。
Azure Service Fabric Mesh旨在解决该使用难题,以Kubernetes的经验教训为基础,以简化配置和部署由容器托管的微服务和Azure自己的平台服务构建的应用程序。
引入Azure Service Fabric网格
Azure Service Fabric Mesh是使用ASP.Net Core或控制台应用程序的, 基于.Net Core的微服务的无服务器主机 。 但是,它还允许您使用Docker容器支持的任何语言来开发和托管代码,因此您可以使用具有更多分布式系统重点的语言,例如Google Go 。 Azure的基础平台灵活性使其成为其他微服务框架的替代方案,并且消除了围绕代码构建和管理服务流程的需求。
您所需要做的就是设置所需的资源,服务的可用性要求以及任何资源限制。 Azure Service Fabric Mesh为您完成其余工作,处理基础基础结构并根据需要重新启动服务。 虽然它最适合微服务,但它也可以支持更大的应用程序。 如果代码可以在容器中运行,则可以在Azure Service Mesh上支持它。 当您通过运行的代码部署新版本的应用程序时,它还将自动处理升级,为您换出容器,这使其成为devops管道的有用端点。
Azure Service Mesh群集还可以跨Azure可用区和跨区域工作。 通过使用此功能,您可以自动获得地理可靠性以及整体服务可靠性。 这种方法在定义群集方面确实需要做更多的工作,但与使用其他Azure平台工具时相比,仍然要少得多。
Azure Service Mesh的定价也不错 ,每秒为容器计算计费,并为存储增加了费用。
建筑服务面料网格应用
Microsoft最近向Visual Studio 2017添加了对Service Fabric Mesh的支持。该工具可通过Visual Studio Marketplace获得 ,该工具将一个新的Azure Service Fabric Mesh应用程序选项添加到项目对话框。 因为它同时支持Windows和Linux容器,所以可以选择目标容器类型。
但是,此时您只能测试和调试Windows容器 ,因此在部署为Linux之前,请使用Windows容器构建.Net Core微服务。 要将其部署为Linux,您需要做的就是在Azure Service Fabric Mesh的service.yaml配置文件中从Windows更改目标osType属性。
Visual Studio的Azure Service Fabric网格工具会为您的服务创建适当的service.yaml文件,以及用于承载服务映像的Dockerfile。 它还可以构建和管理应用程序和网络YAML文件。 这些文件与service.yaml一起用于部署到您的Azure帐户,以处理与基础Azure Service Fabric的工作。 代码被编译并添加到存储在Axure容器注册表中的Docker映像中。 发布后,该服务将被激活,您将获得应用程序的服务端点URL的详细信息。
若要在本地硬件上使用Azure Service Fabric Mesh代码 ,您需要配置一个本地Docker环境,以支持Windows容器和Hyper-V。 最重要的是,您需要运行Azure Service Fabric Mesh SDK。 您可以从Web平台安装程序中下载它,以及构建和测试打算在Azure上运行的代码可能需要的其他工具。
Azure Service Fabric应用程序需要在群集上运行,尽管Visual Studio会为您构建和配置单节点群集,但是您可以使用Azure Service Fabric SDK中包含的DevClusterSetup命令使用PowerShell构建自己的群集。
调试和部署Azure Service Fabric应用
本地调试是一项有用的功能,尽管您需要在开发PC上启用Docker支持。 Visual Studio的远程调试工具连接到应用程序的本地容器,然后您可以使用IDE熟悉的调试工具来确保代码在部署之前运行。
您不仅限于在PC上进行测试。 您可以使用Visual Studio的devops功能与在连续集成/连续(CI / CD)部署管道中托管的Azure Service Fabric Mesh代码一起使用。 您确实需要使用Azure Service Fabric的本地群集管理器之类的工具来确保测试环境已启动并正在运行。 断点可用于调试和遍历跨服务的代码。
将每个Azure Service Fabric Mesh应用程序保留在单独的资源组中是一个好主意,因为这样可以使您在进行新部署后Swift进行清理。 它还可以帮助处理不同区域中的部署。 Azure Service Fabric环境变量可以处理IP地址,Azure服务访问密钥以及其他特定于实例的信息。
Microsoft的工具还支持将多个服务添加到Visual Studio中的Azure Service Fabric Mesh解决方案。 您需要做的就是在Visual Studio解决方案资源管理器中定义一个新的服务结构服务。 创建新服务后,可以在其service.yaml文件中定义其终结点,以便您的代码可以与Azure Service Fabric Mesh环境值一起使用以处理服务间通信。
最后,要发布应用程序,您需要完成一个熟悉的Visual Studio Azure部署向导。 您需要指示应用程序部署的位置,它所属的资源组以及将用于承载其容器的Azure容器注册表。 一旦将应用程序的各种元素上载到Azure,就可以使用Azure CLI来管理代码。 首先安装Azure Service Fabric Mesh CLI,然后使用其命令查看当前部署的应用程序及其状态。
通过为您的应用程序容器提供无服务器平台,Microsoft减轻了大规模构建分布式应用程序的压力。 如果可以在.Net中构建微服务,则可以使用Azure Service Fabric Mesh。 真正重要的是您选择如何部署代码,而这一切都取决于您的YAML。