APP下载

基于微服务架构的学生工作管理系统

2021-09-23范劲超

电脑知识与技术 2021年21期
关键词:微服务容器

范劲超

摘要:伴随着互联网技术的高速发展,各种新技术层出不穷,软件架构在新技术的推动下经历了多次的更新与迭代。从最开始的单体架构,发展为SOA面向服务的架构,直到现今快速兴起的微服务架构。使用微服务架构开发学生工作管理系统,并结合容器化技术来实现业务功能的拆分,将学生工作的内容拆分成多个业务领域的组件,既能够作为单独的系统运行,又能作为子模块运行,并能够和其他子系统进行有效的衔接。有利于实现软件资产的复用,促进信息系统向开发运维一体化方式的转变。

关键词:学工系统;微服务;容器

中图分类号:TP393      文献标识码:A

文章编号:1009-3044(2021)21-0071-02

开放科学(资源服务)标识码(OSID):

对于高校来说,学生工作的管理是一项极其重要的工作,它涉及了学生的各方面,包括了学工队伍建设、学生信息采集、思想教育、素质教育、评奖评优、学生资助及勤工助学等,学生工作的管理与学生的学风建设及综合素质的培养息息相关。传统的纸质或者文件等形式的管理方式,工作量大,并且容易出错,随着计算机以及网络技术的发展,使用新的技术来实现学生工作管理就是大势所趋了。使用传统的单体架构进行学生工作管理系统(之后简称学工系统)的搭建面临着业务功能重复、模块之间耦合程度较高、需求变更困难等问题,同时十分依赖经验丰富的运维人员。基于微服务架构的学工系统,引入微服务的架构,结合容器化技术来实现业务功能的拆分,将学工系统拆分为微服务的形式部署在容器平台之上,实现分布式时代的微服务研发运维一体化、微服务体系生态圈、微服务应用全部生命周期管理。

1 容器平台

容器平台基于Kubernetes与Istio完成了应用的部署、升级、启动、停止、上线、下线、监控、治理、应用弹性伸缩等。在Docker技术的基础之上,为容器化应用提供部署运行、资源调度、服务发现以及动态伸缩等一系列功能。系统架构图如图1所示。

1.1 Docker

Docker是一个开源的应用容器引擎。Docker虛拟化技术实现了操作系统虚拟化,使用户在隔离的进程之中运行程序,并且能够打包程序的代码和依赖关系[1]。Docker一般用于Web应用的自动化打包及发布、自动化测试和持续集成发布、在服务器型环境之中部署和调整数据库或其他后台应用等场景。

使用Docker可以使应用程序与基础架构分开,从而快速、一致地交付应用程序。Docker具备可移植性及轻量级的特性,可以轻松地完成动态管理的工作负担,能够根据业务需求实时扩展或拆除应用程序及服务。

1.2 Kubernetes

Docker已逐渐成为虚拟化主流,为了实现Docker的集群化、规模化管理,可以使用Kubernetes对容器化应用进行自动部署、伸缩和管理[2]。Kubernetes(简称K8S)是Google推出的开源自动化容器操作平台[3],这些操作包括部署、调度以及节点集群间的扩展,可以管理云平台之中的多个主机上的容器化应用, 如对容器实施版本升级与回退、维持应用所需的状态、对应用进行调度等。

使用Kubernetes可以自动化容器的部署及复制、随时对缩容器规模进行收缩或者扩展、提供容器之间的负载均衡,并方便容器的升级及回退版本等维护操作,Kubernetes的使用能够对大量容器提供一种一体化的管理机制,让用户能够对大量的容器进行高效地部署、更新等运维操作,降低了对大量容器进行管理的成本。

1.3 Istio

Istio是用于Kubernetes的Service Mesh(服务网格),负责处理服务之间的通信。官方对Istio的表述翻译过来为连接、安全加固、控制和观察服务的开放平台。连接:控制中心能从集群之中获取所有服务的信息,并且分发给代理,这样代理就可以根据用户的期望完成服务间的通信;安全加固:由于所有流量都通过代理,因此代理接收到没有加密的网络流量之后,可以自动进行一次封装,将之升级为加密的流量;控制:用户可以对各种规则进行配置,当代理发现服务之间的访问与配置规则不符时,就拒绝访问;观察:由于所有流量经过代理,因此代理能够清晰地知道整个集群的访问情况,它将这些数据上报控制中心,管理员就能观察到整个集群的流量情况了。

Kubernetes解决大量微服务有效聚合部署的问题,Istio解决服务上线面对的一系列治理问题。随着Istio的成熟以及服务网格技术的流行,Istio补齐了Kubernetes的治理能力,提供了端到端服务运行治理的治理平台,使Istio、微服务、容器以及Kubernetes形成了一个完美的闭环[4]。

1.4 微服务与容器平台

微服务将应用系统拆分为多个业务领域组件,容器能将拆分的各个业务领域组件进行容器化,容器化的技术正好为微服务提供了最佳的运行环境。同时,容器平台为大量的容器化业务提供了一套管理中间件。容器平台提供了微服务生态圈的体系管理,对微服务应用的全生命周期进行了管理,包括微服务开发、测试、部署、运行、管理、治理、监控、配置、注册、网关、路由、授权等。实现了微服务应用的持续集成以及多环境的一键发布能力,进而实现了分布式时代的微服务研发运维一体化。

2 学工系统与微服务

学工系统基于微服务的架构,使用模块化的设计理念,将各部门学生工作内容拆分为多个业务领域组件,以容器化的技术来实现,同时通过容器平台来进行统一管理。

2.1 系统功能

基于当前智慧校园的概念,学工系统采用当前最新的J2EE架构及ORACLE数据库,能够最大限度地保证业务系统与数据的一致性及稳定性,提供了开放式的接口,采用安全可靠的体系架构,有效地保证了数据的安全性及有效性。系统基于模块化的设计理念,将整个业务系统划分为了多个业务领域组件,很好地契合了容器化的条件,并使其能与其他子系统有效地进行衔接。同时,学工系统采用了工作流引擎及表单设计技术,可以根据实际的业务需求来绘制申请流程及设计申请表单,可以根据业务的需求变化来灵活地进行调整。在权限管理方面,针对校级管理人员、院系管理人员、学生等可以设定不同的角色,从而实现权限的管理,使用户能够方便地进行各级权限的管理。系统采用强大的报表引擎技术来对学生工作数据进行统计,使用表格、图表、图片等多种形式来实现统计数据的可视化,能更好地对学生管理工作进行数据支撑。整个学工系统主要由学工队伍建设、学生信息采集服务、思教服务、素质教育测评服务、评奖评优服务、学生资助服务及勤工助学服务等业务模块组成。

猜你喜欢

微服务容器
Different Containers不同的容器
人心像一个容器
难以置信的事情
基于供给侧改革理论的图书馆社交网络微服务研究
微信公众平台在医院图书馆的应用现状调查
基于微信企业号的校园移动服务
从单一模式系统架构往微服务架构迁移转化技术研究