基于Service Fabric的微服务架构的研究与探讨

发表时间:2020/12/22   来源:《建筑科技信息》2020年8期   作者:梁纯
[导读] 本文研究了Service Fabric分布式系统平台下的微服务框架,以及如何迁移或构建基于该技术的应用程序微服务框架,探讨了Service Fabric应用程序和群集的最佳方法,以及微服务机体的安全性、稳定性。

        摘要:为了适应现今网络云技术的发展要求,由传统系统转为应用微服务的系统存在诸多问题,维护成本高、扩展性不足、系统不稳定等等,影响了工作效率和信息化发展的进度。本文研究了Service Fabric分布式系统平台下的微服务框架,以及如何迁移或构建基于该技术的应用程序微服务框架,探讨了Service Fabric应用程序和群集的最佳方法,以及微服务机体的安全性、稳定性。
        关键词:网络云技术;Service Fabric;微服务;微服务应用
       
        
近几年微服务受到了广泛的关注,越来越多的开发人员和用户开始实施和使用微服务,将微服务应用于系统架构中,这种微服务架构越来越受欢迎。随着不断的发展,也出现了很多开源的微服务框架。Service Fabric(以下简称SF)分布式系统平台下的微服务框架部署简单、易于管理、性能可靠,对于开发和管理云应用程序也有较好解决办法,使得开发人员不必关注复杂的基础结构问题,专注于关键性工作任务。使用SF可以将旧的传统系统迁移到新的微服务架构中,或分解一个庞大的整体应用程序。
        1.微服务架构
        1.1微服务概述
        微服务是近年来出现比较流行的名词,尽管大家对微服务的由来和定义有不同的看法,但它的大部分特征已被大家认同。
         服务封装客户方案或业务方案,着重于解决某种问题。
         由小型研发团队开发。
         可以使用不同的编程语言和框架编写,并使用不同的数据存储技术。
         可独立进行部署、版本控制,代码可伸缩,状态可选。
         服务之间通过精确定义的接口和标准协议进行交互。
         通过URL来解析服务位置。
         发生故障自动复原并保持数据一致。
        1.2 传统设计方法和微服务设计方法对比
        


        图1.1单体式和微服务设计方法比较
        微服务设计方法是将单体应用程序分解成独立的业务焦点式服务,通过统一的协议通信,并能各自独立更改。随着越来越多的云平台的使用,长远来看,微服务的设计方法更具优势。
        1.3微服务架构概述
        微服务架构模式是一种将单体应用程序开发为一组小服务的方式,每个小服务都运行在各自的进程中,并和轻量级机制进行通信。它将服务拆分为围绕业务能力组织的服务,这些服务为该业务领域提供了大量的功能实现,包括用户交互、业务、数据存储和任何外部协作。所以团队是跨职能,包含开发需要的所有技能:用户界面、数据库和业务管理。这种将软件应用程序设计为可独立部署的服务组件的特殊方式尽管没有精确的架构定义,但围绕业务能力、自动部署、智能端点以及对语言和数据的分散治理形成了它的重要特征。虽然近年来,微服务架构的趋势越来越明显,也使它们变得非常流行,但随着分销增加、一致性降低以及运营管理,这种架构也需要付出一定的代价。
        2.Service Fabric概述
        2.1 Service Fabric平台
        SF是一个易于打包、部署和管理可伸缩的微服务及容器的分布式系统平台。对于开发和管理云应用程序面临的难题给出了很好的解决方案。它让开发人员和管理员只需专注实现具体的关键任务工作,不需困扰于复杂的基础结构问题,它用于生成和管理在容器中运行的企业级单层云规模应用程序。
        SF具有如下优点:支持无状态和有状态微服务,可通过云平台来伸缩;通过应用程序级别的感知和洞察,为微服务带来编排和自动化的优势;提供应用程序生命周期管理的能力以便随着业务的增长无需重构系统架构,解决分布式系统诸如状态管理这样的难点;在VS中集成,提供相应命令行工具,上手轻松快速;同时支持.NET和Java。
        2.2 SF群集
        SF群集是一组用于部署和管理微服务的网络虚拟机或物理计算机。群集中的计算机或VM称为群集节点,可扩展到数千个。若要向群集中添加新节点,SF会在新增加的节点间重新平衡服务分区副本和实例,以提高应用程序总体性能,减少访问内存的争用;如果要减少群集中的节点数量,SF会再次在减少的节点间重新平衡分区副本和实例,以更加充分利用每个节点上的硬件资源。
        3将现有应用程序迁移到SF
        对于已开发完成的应用程序,SF允许重用,可以通过新的微服务对现有代码进行现代化。应用程序现代化分为五个阶段,可以在任意阶段开始和停止,阶段包括:从传统单体式应用程序入手;将应用程序容器化到独立式部署映像中迁移,在SF中托管;现代化构建新的微服务,将新服务与现有容器化代码一起添加;根据需求将单体式应用程序分解成微服务,并进行创新;将应用程序转换为微服务,组成或拆分为微服务。
        4 Service Fabric应用程序和群集最佳方案
        1)安全性最佳做法
        SF使用Azure资源管理器模板和SF PowerShell模块创建安全群集。可实施多项安全做法,包括使用X.509证书、配置安全策略、RA安全配置、为SF配置TLS、将SF与网络隔离和安全功能结合使用、配置KV、将用户分配到角色。
        2)网络最佳做法
        在创建和管理SF群集时,可以为节点和应用程序提供网络连接。网络资源包括IP地址范围、虚拟网络、负载均衡器和网络安全组。可使用现有的虚拟网络或子网、静态公共IP地址、仅限内部的负载均衡器,或者内部和外部负载均衡器。
        3)计算规划和缩放
        在创建任何SF群集或缩放托管群集的计算资源之前,必须做好容量规划。除了考虑节点类型和群集特征以外,还要规划好生产环境中需要花费一小时以上才能完成的缩放操作。不管要添加多少个VM,都要考虑到这种情况。
        参考文献:
        [1]吴化尧,邓文俊.面向微服务软件开发方法研究进展[J].计算机研究与发展,2020,57(03)
        [2]杨朝晖,李飞.微服务编排在网管支撑系统中的研究与应用[J].电信工程技术与标准化,2019(6)
        [3]张丽敏,高晶,李务斌.微服务环境下容器编排可视化实践研究[J].计算机工程与科学,2019(8)
        作者简介:
        梁纯,女,汉族,1979年12月湖北武汉人,计算机硕士,讲师,研究方向:软件设计,微服务架构。
        

投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: