Service Fabric微服务应用平台研究与应用
2020-11-28姜顽强郭志军
姜顽强 郭志军
[摘 要] 针对基于Visual Studio开发的业务系统微服务化改造问题,从Service Fabric微服务开发集成平台、运行部署平台、微服务治理、API Gateway等四个方面开展研究,搭建了企业Service Fabric微服务应用平台,并以某业务系统中工作流为例进行了Service Fabric微服务化改造,验证了企业Service Fabric微服务应用平台的可行。
[关键词] 微服务;Service Fabric;TFS;Ocelot;API Gateway
doi : 10 . 3969 / j . issn . 1673 - 0194 . 2020. 19. 074
[中图分类号] TP315 [文献标识码] A [文章编号] 1673 - 0194(2020)19- 0182- 02
0 前 言
随着信息技术的发展,微服务已逐步成为复杂业务系统首选技术架构,同时许多企业正在考虑怎样将传统业务系统进行微服务化改造,实现业务系统中部分功能组件按需升级维护。微软公司Service Fabric的开源,无疑给早期使用Visual Studio开发的传统SOA架构业务系统提供了一种可行的微服务化改造方案。因此,研究与搭建企业Service Fabric微服务应用平台是Service Fabric微服务化改造的首要工作。
1 Service Fabric微服务应用平台总体架构设计
微服务应用平台的总体架构,主要是从开发集成、微服务运行容器与平台、运行时监控治理和外部渠道接入等维度来划分的[1]。企业Service Fabric微服务应用平台主要从Service Fabric微服务的开发平台、TFS自动发布平台、运行部署独立集群、服务治理中心、API Gateway等方面進行规划设计,其物理架构图如图1所示。
2 Service Fabric微服务应用平台搭建
2.1 开发集成平台搭建
Service Fabric工具是Visual Studio 2017和2019中Azure开发工作负荷的一部分,“Azure Service Fabric应用程序”和“Azure Service Fabric 部署”已分别是Team Foundation Server 2018生成与发布模板中的一部分,这为Service Fabric应用程序开发、生成与发布提供解决方案。
企业Service Fabric微服务开发集成平台采用Visual Studio Enterprise 2017 (version 15.9)+ Team Foundation Server 2018 Update 3.2,实现Service Fabric微服务开发、源代码管理及持续集成。
2.2 运行部署平台搭建
Service Fabric群集是通过网络连接在一起的一组虚拟机或物理机,可在其中部署和管理微服务。使用Service Fabric可在运行Windows Server或Linux 的任何VM或计算机上创建Service Fabric群集[2]。
使用Service Fabric安装包和Service Fabric运行包,修改ClusterConfig.Windows.MultiMachine.json群集配置文件,搭建10节点Service Fabric独立群集,用于Service Fabric应用程序运行部署平台,如图2所示。
2.3 微服务治理中心
服务治理可以说是微服务架构中最为核心和基础的模块, 它主要用来实现各个微服务实例的自动化注册与发现[3]。Consul是用于实现分布式系统的服务发现与配置,内置了服务注册与发现框架、分布一致性协议实现、健康检查、Key/Value存储、多数据中心方案,Consul来做服务发现能与Ocelot完美结合。
企业微服务治理中心采用3节点Server端和2节点Client端搭建Consul集群,根据项目进行Key/Value设置,实现服务注册与发现、权限统一认证和健康检查等功能。
2.4 API Gateway
API Gateway是微服务架构中的核心组件,是客户端请求的门户,是调用具体服务端的桥梁。Ocelot是一个用.NET Core实现并且开源的API网关,Service Fabric微服务应用平台采用Ocelot与Consul相结合,实现路由、请求聚合、服务发现、权限认证等功能。
3 某业务系统中工作流微服务化改造实例
选择某业务系统中的工作流(该工作流是以.NET Core为目标框架)进行Service Fabric微服务化改造,创建的SF.WorkflowAPI解决方案中包括1个Service Fabric应用程序和2个.NET Core应用程序,通过TFS实现Service Fabric应用程序集成,在consul集群中实现服务注册,通过API Gateway实现服务发现和权限认证。具体效果如图3、图4、图5所示。
4 结 语
通过对Service Fabric微服务开发集成平台、运行部署平台、微服务治理、API网关等方面的研究,初步完成Service Fabric微服务应用平台的搭建,经过某业务系统中工作流微服务化改造实践,验证了Service Fabric微服务应用平台的可行,为早期使用Visual Studio开发的传统SOA架构业务系统提供了微服务化改造方案。
参照《分布式应用架构技术能力要求:微服务平台》和持续集成系统(CI/CD),企业Service Fabric微服务应用平台还需进一步补充完善微服务框架、管理平台和持续集成等功能,形成一个完整先进的微服务应用平台方案。
主要参考文献
[1]微服务的4个设计原则和19个解决方案[EB/OL].https://www.cnblogs.com/HigginCui/p/10460807.html.
[2]Service Fabric文档[EB/OL].https://docs.azure.cn/zh-cn/service-fabric/service-fabric-get-started.
[3]Eureka服务治理体系[EB/OL].https://blog.csdn.net/weixin_38207722/article/details/103381262.