云存储+微服务技术在智能化养殖管理系统中的应用*

2022-07-29 14:12李翠平陈永松
计算机时代 2022年7期
关键词:存储技术子系统部署

李翠平,陈永松

(广东松山职业技术学院计算机与信息工程学院,广东 韶关 512126)

0 引言

传统的养殖模式在互联网时代正逐渐发生变化,养殖业的信息化和智能化管理能提高养殖的效率和利润,这对科研人员和养殖户是一个挑战。

1 微服务架构模式

微服务架构模式是近几年提出的一种新的软件架构设计风格。各个微服务之间有清晰的功能边界,专注于完成自己独立的任务。一个较复杂的应用系统可以有多个微服务组成,系统中的各个微服务可以独立部署,同时各个服务之间的通信机制是轻量级的。

微服务的概念源于2012 年,弗莱德·乔治在一次演讲中提出了微服务架构思想,他描述了他的团队是如何面对百万行的J2EE 程序,通过架构解耦、自动化验证、持续集成、独立部署等实践,逐渐将原有的系统分解成多个可独立交付的服务的过程。

微服务架构的本质是持续交付体系中松耦合架构的一种体现。通过微服务的独立开发、测试、以及维护,缩短特性的交付周期,提升交付质量。同时降低管理测试、部署等的难度。

在软件架构的发展过程中,常用的模式有分层架构和面向服务的架构(SOA)。微服务架构模式与分层模式进行对比,最明显的区别是分层架构要求所有逻辑都在一个进程中进行,随着应用逐渐部署到云端,对应用程序的一小部分修改,需要重建和部署整个整体。而微服务是将应用作为一个独立的组件,可被单独部署,组件之间定义了清晰的接口。SOA 架构偏向静态,企业级大型应用,微服务适用于快速迭代交付的互联网应用。智能养殖管理系统中涉及到较多的业务处理以及较多的数据收集和汇总,为了后期能够更好的对系统进行维护,鉴于以上的分析和对比,系统在设计的时候考虑使用微服务架构模式,可以通过部署多种服务来满足不同的业务需求。

2 云存储技术优点

云存储技术与传统的存储方式进行对比,其重要优势体现在两方面:①在存储容量能够弹性扩展,而传统的存储设备往往存储容量有限,同时在存储性能以及安全性方面也有一定弊端。云存储技术的应用使上述缺陷得到有效弥补,云存储技术能够随时在线增加存储节点,通过这种方式使数据存储需求得到有效满足,更加有利于开展数据信息的自动重组工作,使数据自动恢复效果更好。②实现了资源共享。云存储技术的应用使传统单一设备存储模式得到了有效优化,云存储将多种存储资源有效整合到一起,并将其分享给多个用户,不同用户能够对其进行访问。

此外,云存储技术可以实现自动重新分配数据,使储存效率以及储存空间得到有效利用。云存储具备良好的可维护性。对云存储系统来说,如果在使用过程中出现硬盘或者储存节点损坏的现象,可以对其进行自动重组,保证此过程中的数据不会丢失,使系统运行效率不会受到负面影响。

3 智能养殖管理系统分析与设计

3.1 系统分析

基于微服务的智能养殖管理系统主要功能包括以下几个子系统:无线传感子系统,在线监控子系统,PLC 控制子系统,移动网上农场/Web 网站子系统。节点无线传感模块主要负责将有关养殖的环境信息进行采集并上传,在线监控模块主要负责对养殖的场地进行实时的监控,同时对于监控数据进行存储。PLC控制模块主要是控制相关的器件对养殖的环境进行调整以期达到最佳的养殖铲平的生长需求,移动网上农场/Web 网站主要负责人机交互的界面以及数据的汇总分析。

3.2 系统设计

在整个系统设计的过程中采用微服务架构模式,以移动网上农场/Web网站来分析微服务架构的过程。在这个模块的设计中,考虑到用户的使用方便,系统提供移动端与Web 桌面浏览的功能。为了节约资源,减少开发成本,开发团队借鉴了BFF 模式(服务前端的后端),将手机端和平板端网站的特定后台需求拆分为一个独立的后台服务,作为后端实现,为前端提供数据。通过为移动端创建一个专属的后端服务,可以为移动端的用户进行专门的优化,量身打造最佳体验。同时由于微服务架构下的这个新服务足够的小而简单,就更容易进行修改,部署和上线。

对移动网上农场/Web 网站子系统首先进行业务流程梳理,具体业务之间的联系如图1所示。

图1 系统业务流程图

业务流程清晰以后,团队开发采用事件风暴进行领域建模。事件风暴是由Alberto Brandolini 提出的一项团队活动,旨在通过领域事件识别出聚合根,进而识别出界限的上下文,指导团队进行服务划分。经过系统的梳理,得到该模块的有关聚合包括:用户,养殖产品,环境数据管理,视频监控各个聚合。识别聚合的结果如图2所示。

图2 系统服务聚合

根据上面的分析,该模块最终包含以下服务,具体如表1所示。

表1 服务列表

根据上述服务的划分,该系统分成了五个微服务,基于这些微服务,最终该系统的架构如图3所示。

图3 系统架构图

3.3 系统实现

在智能化养殖管理系统的实现过程中,首先考虑的是微服务开发框架选择。常见的微服务开发框架有Spring MVC,这种技术主要是基于传统的Web框架进行开发,无法满足迭代的要求。Spring Boot框架虽然简化了服务构建的成本,但是对于多个服务的协作及管理,依然存在很大的挑战。目前使用比较多的微服务开发框架有Spring Cloud,Dubbo,ServiceComb,这几种技术典型的特点是添加了服务的治理能力,开发者只需要进行简单的配置,即可实现注册中心、配置中心、调用链跟踪以及服务容错能力等。Service Mesh是新一代微服务框架,它通过“零侵入”的机制实现负载均衡、服务注册发现等服务治理能力,降低了服务治理的门槛。综上所述,系统的实现过程使用了ServiceBoot 开发框架,华为云的ServiceStage 作为持续集成、部署、运行的平台。

3.4 系统安全性与稳定性分析

在世界质量报告中曾提到,大部分(约80%)的安全问题都出现在应用层。很多微服务开发框架都提供了与安全相关的组件或者功能。在智能化养殖管理系统中通过Spring Boot+SpringSecirity 的技术组合保障应用层的安全性。Spring Security 中集成了CSRF 防范的功能,通过引入这些组件或者功能,可以对微服务起到保护作用。Spring Security 中提供了BCryptPasswordEncoder 密码编码工具,可以非常方便的实现密码的加密,相同明文加密出来的结果总是不同,这样就不需要用户去额外保存加密的字段了。如果一个请求不需要进行拦截,在实现的时候可以设置该地址为匿名防伪,或者直接过滤掉该地址,即该地址不走Spring Security 过滤器链。

智能化养殖管理系统的稳定性设计根据系统的使用特点,主要是通过建立服务监控、统计及报表等。在系统运行期间,需要对服务器相应指标进行监控,如系统load、磁盘利用率、内存占用率、网络流量、QPS/TPS 等。对于服务的调用,需要有统计的报表,按照小时/日/周/月展示,并且通过设置异常情况监控,如流量突增突降,系统能够及时报警。

4 结束语

云存储+微服务架构模式在智能养殖管理系统开发中的应用,有效提高了开发的效率,有效的减轻了系统的维护工作。但是在系统的开发过程中也有一些问题需要后续的继续研究,比如系统设计过程中数据的管理和划分,采用什么方法可以做到更加的科学和高效。

猜你喜欢
存储技术子系统部署
不对中转子系统耦合动力学特性研究
一种基于Kubernetes的Web应用部署与配置系统
晋城:安排部署 统防统治
GSM-R基站子系统同步方案研究
部署
驼峰测长设备在线监测子系统的设计与应用
关于计算机网络存储技术分析
基于FAT文件系统的数据存储技术的研究
数据存储技术的应用
部署“萨德”意欲何为?