APP下载

基于DevOps的云平台微服务架构可靠性分析

2020-02-03韩丹

电子技术与软件工程 2020年19期
关键词:网盘服务端开发者

韩丹

(中海油信息科技有限公司 北京市 100010)

1 引言

信息化时代发展下,计算机信息技术渗透到社会各个领域中,并在技术发展下衍生出云计算理念,云平台微服务架构逐渐作为计算机中重要的软件架构,微服务不受环境、时间、地点等因素限制,可以满足人们个性化需求,因此,相关研究人员认为有必要就基于DevOps的云平台微服务架构可靠性进行分析,以期突破传统云平台微服务架构模式。

2 云平台微服务架构设计模式

2.1 网络服务架构

网络服务架构服务模式主要体现在学校学生管理系统、企业人事系统、手机APP 应用中,在网络服务架构支持下,为系统、APP后台运行提供服务。在软件系统中,网络服务架构服务主要体现在支持软件功能的应用上,随着网络普及,网络服务架构服务已成为软件后台服务、软件开发重要组成部分。

2.2 微服务架构

2.2.1 优势

传统的应用架构在中小型项目转换中难以控制,项目笨重;同时,项目频繁发布增加了应用架构负载,难以满足项目实际发布需求。传统的单体服务架构、SOA 架构在设计与实现中存在诸多的问题,影响开发技术的应用与拓展。

微服务架构在SOA 基础上设计实现,将微服务做到极致;微服务架构在开发应用中不断补充开发、拓展开发,加快促进系统更迭。同时,微服务架构,可在复杂的系统中划分为不同的服务类型,各个服务之间是独立存在的状态,支持在不同主机内分布,并由容器统一控制管理[1]。突破传统架构设计局限,提升云平台微服务架构稳定性,保证数据的安全性,有效感知所有数据传输路径,发挥出云平台微服务架优势作用。

2.2.2 特点

就微服务架构特征看:架构具有去中心化特征,每个服务单独开发,服务代码量小、简单,支持独立运行、测试和部署,没有ESB,支持分布式部署,建立了属于自己的数据库,通过接口获得服务数据信息。

2.3 微服务的云平台

云平台微服务架构中,包含了多种设计模式,为保证云平台微服务传输数据安全、可靠,需要挑选一种合适的评估指标,快速感知数据传输情况,并对不同路径数据进行处理,微服务的云平台设计到技术应用如下:

2.3.1 容器技术

微服务系统开发了线上服务,为保证新开发的线上系统不影响系统项目整体的运行,保证现有系统技术的兼容性,相关开发设计人员应用了容器技术搭建线上服务运行环境[2]。容器虚拟化技术可提供多个隔离的系统环境,在共享本地主机操作系统支持下,得以实现,相关企业云服务平台容器技术的应用尤为青睐,大批量的开发者将网络服务部署在容器中,然而相关开发者仍需要就容器系统的容错性展开进一步的探究,设计开发性能可靠的容器编排工具管理容器。

2.3.2 CaaS

CaaS 云服务是基于容器的PaaS 系统,适用于微服务部署,基于微服务单独部署在容器中,当开发者部署其中一个服务时,需要搭建镜像,将服务部署在其中,进而实现微服务在云平台上的运行。

2.3.3 BaaS

BaaS 可直接提供微服务,服务对象是面向开发者的,在平台系统中,提供了存储、通讯、数据统计、数据分析、分享等诸多的服务功能,大大降低了开发难度,并在系统不断开发过程中,进行扩充开发。

3 云平台微服务架构设计与实现

3.1 云平台服务端分析与设计

计算机技术快速发展下,开发者更加倾向于开发私有平台,逐步实现了云桌面、虚拟化等云平台服务端服务。开发者就服务端功能性需求进行分析,定义服务端角色,设定相关的权限,优化云存储空间配置等,有效整合了相关资源,实现云应用管理、虚拟机管理,实时监控云平台资源使用情况,掌握相关信息[3]。用户登录云平台系统后,浏览、查看、订购信息,同时系统支持个人信息设置和上传,在应用使用过程中,云平台提供访问操作。

3.1.1 云平台服务端整体架构设计

云平台服务端整体架构设计,各个管理层、服务层所提供的功能需求不同,就微服务治理层来说,其中包含了API 网关、熔断服务、服务注册与发现等多个微服务组件,强化了对云平台服务端各个微服务的治理效果,保障服务端运行的可靠性、高扩展性。

3.1.2 服务端通信方式的设计

基于微服务架构支持各个服务运行在不同的服务器上,开发者为避免微服务之间出现相互调用的现象,进一步设计平台资源层与各个服务端之间的通信方式,确保微服务调用和数据传输格式的一致性。

3.1.3 云平台服务端接口设计

开发者结合数据格式需要,充分考虑数据大小、数据编码、数据复杂程度是否符合数据格式传输要求。开发者将纯文本进行编码,大大减少了数据占用的宽带,编码传输效率较高;同时,开发者降低了数据编码复杂度,增强数据结构的扩展性,保证数据传输协议的通用性。

3.1.4 服务端核心功能模块设计

开发者设计云平台服务端微服务模块过程中,通过代码复用构建了基础功能服务群,设计了服务端核心功能模块,包括云桌面、云应用、云存储模块,并以此划分了功能的子功能模块;在云桌面设计中,为用户提供云桌面使用功能,优化了认证鉴权子模块设计、通用功能子模块设计、系统公告子模块设计;在云应用模块设计中,为用户提供了一系列的服务功能,实现了个人应用管理子模块设计、应用使用子模块设计、应用恢复子模块设计;在云存储模块设计中,开发者依托为用户提供了直接访问网盘功能,用户可根据实际需求操作服务端存储的资源信息,进一步优化了网盘访问子模块设计、网盘挂载子模块设计。

3.1.5 微服务治理设计

微服务架构治理功能是通过各个核心组件相互配合实现的,其中限流熔断功能设计,在微服务故障发生时,通过系统进行隔离设置,实现故障转移,避免系统出现“雪崩效应”;微服务架构中的服务注册与发现功能,主要负责管理云平台服务端的各个微服务模块。

3.2 云平台服务端的设计

3.2.1 实现了微服务同步调用

云平台服务端调用通过Spring Cloud Feign 组件得以实现,简化了服务调用方式,编程方式面向接口化。服务提供方和与调用方均在注册中心进行注册,并从测试中心获取服务地址信息,继续开展下一步的操作请求。针对远程服务的调用,开发者在微服务端注入了IFeign Seivice 接口类,依托生成的不同对象提供的方法实现远程服务调用。

3.2.2 云桌面模块的实现

就云桌面模块中认证鉴权子模块来说,利用API 网关拦截了用户请求,自定义过滤拦截的请求信息,并对信息数据加以处理;同时,认证鉴权子模块的实现,是基于JWT 的生成、解析、验证,对已经拦截过滤的用户请求实施认证鉴权。认证鉴权子模块的实现,充分考虑了用户请求过程中会写到JWT 进行身份标识展示,存在JWT 安全隐患,开发者基于安全角度考虑,在服务端增加了refreshJWT 字段,重新生成了JWT,并将refreshJWT 过期时间设定为3d。

3.2.3 云应用模块的实现

在云应用模块中的个人应用管理子模块,实现了应用查找、查看应用详情、订购或者推定应用的功能;应用使用子模块,为用户提供了打开云应用以及关闭云应用的功能,整个实现过程的核心,是对计算机资源池主机优化配置,在关闭云应用过程中,将分配主机资源回收。

3.2.4 云存储模块的实现

云存储模块设计与实现,用户可直接通过云平台入口对Owncloud 进行访问,服务端为用户提供了网盘挂载和卸载功能;网盘访问功能调用主要过程涉及到认证用户网盘权限,检测用户网盘功能、获取网盘登录信息等。

4 云平台微服务架构可靠性评估以及系统测试分析

4.1 云平台微服务架构可靠性评估

开发者在计算机网络技术支持下,搭建了云平台微服务架构可靠性模型进行分析,提出了三种假设条件:

一是:节点与链路具备正常运行能力;

二是:节点与链路存在失效、正常两种情况;

三是:节点与链路之间是相互独立的。

开发者在模型分析过程中,采用G=(V、E)表示云平台微服务架构,V 表示架构中节点的集合、E 表示节点链路集合[4]。开发者主要依据图的连通向量对云平台微服务架构可靠性进行评估分析,运用状态枚举法、不交织和法、因子分解法等方法进行评估:

4.1.1 状态枚举法

开发者根据云平台微服务架构获取到的可靠度用公式可表示为:

4.1.2 因子分解法

针对规模较大的云平台服务,根据因子分解法计算得到:

4.1.3 容斥法

开发者利用容斥法计算出云平台微服务架构中的最小路基,用公式可表示为:

相关研究人员为保证精准化分析基于DevOps的云平台微服务架构具有一定的可靠性,明确了评估指标,采用多元化计算方法,计算敏感数据输送、输出路径,以及传送端缓冲区数据计算效率,可快速感知每一种数据传输路径实际的传输情况,进而全面分析输送路径数据处理能力,加强对敏感数据流量动态的匹配,切实保证数据传输的安全性。开发者通过实验反复验证,通过计算数值,全面分析和总结基于DevOps的云平台微服务架构的可靠性,加强对影响评估结果因素的分析,在仿真模型构建下开展实验操作。当云平台服务架构处于正常运行状态下,通过拟定的传输数据变量分析,可得出基于DevOps的云平台微服务架构实际应用的可靠度。

4.2 系统测试

4.2.1 测试环境

相关人员根据云平台微服务架构测试环境需要,增设了12 台虚拟机包括三台虚拟机组成的微服务治理集群,用于提供相应的应用服务;包括两台MySQL 数据库、一台Redis 缓存数据库等。

4.2.2 核心模块功能测试

在核心模块功能测试环节,主要测试云桌面模块、云应用模块和云存储模块;云桌面模块功能测试环节中,用户在云桌面系统输入用户名、密码,通过审核验证后完成登录,随即进入云平台主界面,可灵活应用主界面中的通用功能,进行个人信息管理,反馈意见,就云平台使用过程中出现的漏洞提出意见信息,上传日志等;同时,云平台主界面中可查看公告列表,管理员可发布公告、启用公告、编辑或者删除公告,普通用户则被限制公告查看权限。

4.2.3 云应用模块功能测试

云平台中,实现了用户对云应用管理和使用,用户在系统中搜索关键字或者根据应用类别进行搜索,可批量订阅,随时可查看应用详情;为用户云应用的使用提供便利。在测试中,模拟客户端异常情况,并探寻具有针对性的解决措施,测试者重新登录云平台后查看待恢复应用记录,选择记录恢复前的应用场景,实现客户端正常运行。

4.2.4 云存储模块功能测试

云平台提供了访问入口,用户可由入口进入云存储空间中,访问个人相关的文档,并对文件进行管理,操作灵活,包括新建、上传、下载、删除等,同时,云平台支持通过应用打开文件,增强了用户体验。用户打开应用后,可查看用户个人网盘以及所属部门的网盘,并将文件保存到对应的网盘中,用户可灵活进行网盘的挂载和卸载。

开发者通过对云平台微服务架构运行性能和可靠性测试,认定基于DevOps的云平台微服务架构较比传统应用架构优势显著,平台系统可提供正常的服务,满足最初的设计要求。

5 结论

综上所述,基于DevOps的云平台微服务架构建设,解决了传统云平台微服务可靠性差的问题,开发设计了基于DevOps的云平台微服务架构,通过构建可靠性模型分析评估分析,发现云平台的微服务架构具有实际应用的可行性;特别是是容器技术将发展为服务器上重要的虚拟化技术。相关开发者要不断研究探索,结合云平台微服务特点,切实研究云平台的微服务架构可靠性,在开发层面,加大先进技术应用力度,深入挖掘基于DevOps的云平台微服务架构的价值。

猜你喜欢

网盘服务端开发者
云存储中基于相似性的客户-服务端双端数据去重方法
新时期《移动Web服务端开发》课程教学改革的研究
在Windows Server 2008上创建应用
网盘存储服务商的版权义务探析
网盘关停
iOS开发者调查
iOS开发者调查
栝楼产业开发者谢献忠
网盘如何知道你在分享侵权文件
基于Web的网盘系统的设计与实现