常熟理工学院:微服务无缝嵌入实践教学管理平台 | 封面报道
实践教学管理工作复杂性分析
实践教学管理工作的复杂性,首先体现在内容上。实践教学管理工作不仅包括很多常规性事务,如实验设备管理、教学资源准备、实践教学过程管理、档案日志管理及其他日常管理,还包括很多临时性、突发性工作。这对管理人员是一种考验,对从业者的心理素质、个人能力要求极高。
实践教学管理工作的复杂性,还体现在实际运作过程中。首先,实践教学管理工作的复杂来自教学体系的复杂,实践教学工作内容繁多,如实验教学、课程设计、实训、毕业实习、毕业设计等方面都设置了多样化的实践教学过程,一般而言,这些教学过程又与实践教学管理工作盘根错节共生在一个有机体中;
其次,当前各高校为了其自身生存、发展需要,为适应地方发展应用需要,一般都设置了文、理、工各类专业,其专业之间的差异必然加剧其实践教学环节的复杂性。
实践教学管理工作的内容是一项十分复杂的系统工程,必须保证每一个环节都做到十分精准,才能保障整个教学体系运作过程顺畅有序。
基于微服务架构的技术优劣
微服务架构的定义
微服务这一概念出现于2012年,但并没有精确地定义出这一架构形式,虽然围绕业务能力、自动化部署、终端智能以及语言和数据的分散控制有一些常见的特性。
微服务架构是面向服务架构思想的一种实现,微服务的基本思想在于考虑围绕着业务领域组件来创建应用,是一种特定的软件应用程序设计方式——将大型软件拆分为多个独立可部署服务组合而成的套件方案。
微服务架构中各个应用可独立地进行开发、管理和加速,在分散的组件中使用微服务云架构和平台使部署、管理和服务功能变得更加简单。
微服务架构的技术优势
微服务架构将原本单一的应用按照功能边界分解成一系列独立专注的微服务,每个微服务对应传统应用中的一个组件,可以独立编译、部署和扩展。相对整体架构,微服务架构具备以下优势。
1、组件复杂度可控
在将应用分解的同时,规避了原本复杂度无止境的积累,每一个微服务专注单一功能,并通过接口清晰地表述服务边界,由于组件体积小、复杂度低,每个微服务可有一个小规模的开发团队掌控,易于保持高可维护性和开发效率。
2、组件独立部署
由于微服务具备独立的运行进程,所以每个微服务也可以独立部署,当某个服务发生变化时,无需编译、部署整个应用。并且当某一个服务发生故障时,在单一的进程传统架构下,往往会导致整个应用不能使用,而在微服务架构下,故障会被隔离在单个组件服务中。
3、可扩展性
单个应用可以实现横向扩展,当不通服务组件在扩展需求上存在差异时,微服务架构便体现出灵活性,因为每个服务组件可以根据实际需求进行独立的扩展。
微服务架构的技术劣势
微服务的一些想法在实践上是好的,但当整体实现时也会呈现出其复杂性。
1、运维开销及成本增加
整体应用可能只需部署至一小片应用服务区集群,而微服务架构可能变成需要构建、测试、部署、运行等数十个独立的服务,并可能需要支持多种语言和环境。这导致一个整体式系统如果由20个微服务组成,可能需要40~60个进程。
2、必须有坚实的开发运维一体化技能
开发人员需要熟知运维与投产环境,开发人员也需要掌握各种必要的数据存储技术,具有较强技能的人员比较稀缺,会带来技术人员方面的挑战。
3、隐式接口及接口匹配问题
把系统分为多个协作组件后会产生新的接口,这意味着简单的交叉变化可能需要改变许多组件,并需协调一起发布。在实际环境中,一个新品发布可能被迫同时发布大量服务,由于集成点的大量增加,微服务架构会有更高的发布风险。
实践教学管理平台
微服务不需要像普通服务那样成为一种独立的功能或者独立的资源。微服务是需要与业务能力相匹配,服务粒度越粗,就越难符合规定原则。服务粒度越细,就越能够灵活地降低变化和负载所带来的影响。
其利弊之间的权衡过程是非常复杂的,在建设过程中,我们要综合硬件配置和资金规模的基础上考虑到基础设施的成本问题。
基于传统的单体应用开发模式面临业务功能重复、共享融合不深,需求改变困难等问题,结合微服务架构的技术特点和优劣势,可以通过采用微处理结构模式解决实践教学管理的复杂的教学管理过程,不再是开发一个巨大的单体式的实践教学管理系统,而是将整个系统分解为小的、互相连接的微服务应用。参照微服务架构模型结合实践教学管理的需求,本文构建的实践教学管理架构模型如图1所示。
结构模型
基于微服务架构的实践教学管理平台整体分为左右两部分,图1虚线右侧为实践教学管理所涉及到的各个核心业务功能的技术实现,从技术上讲,是以服务为抓手,在传统的单体应用基础上将复杂的系统功能细化、拆分为一个个相互独立、分散的功能点,且这些功能点是以微服务接口形式存在的。
虚线右侧是从用户、角色的维度对右侧的各个微服务接口进行业务组合而形成的各级用户、管理员的用户UI端。UI端的形式可以是多样的,既可以是PC形式也可以是移动终端形式,还可以进一步以WebAPI接口形式出现供其他第三方业务集成使用。
总体而言,这些接口对于用户来说是透明的,用户只需按照软件功能设计在自己的UI下完成自己业务工作,而不用去管具体使用到哪些接口。
相关微服务接口
面向服务架构思想、微服务架构设计方法打破了传统的大而全的整体设计思路,以解决业务需求为宗旨,围绕业务领域组件来创建应用,从而将传统的单体应用的实践教学管理系统的核心业务功能按照微服务接口的方式,分解为实验项目管理接口、实验室管理接口、实验预约接口、实验考勤接口、实验登记接口、场馆巡检接口,每个接口之间相互独立且只专注自己的业务功能。
各接口通过相互调用、组合完成各类管理人员的工作业务系统模块。如实验项目管理和实验室管理。首先,两套微服务接口在开发实现阶段各自只需要专注各自的业务功能需求,两套接口相互独立且隔离,同时实验项目管理中涉及到实验地点、实验设备、耗材等时都要使用到实验室管理的微服务接口。其次,无论是实验项目管理接口还是实验室管理接口,任何一个接口的功能变动仅限于自己接口内的程序变动,不会牵涉到另一个接口去做相应的调整。
技术优势
(1)区别于单体应用,基于微服务架构的实践教学管理平台各服务接口功能边界清晰,且轻量级的确简化了程序设计人员的工作,能够缩短项目实施周期,从而使得项目更具可行性。
(2)由于各个服务接口相互独立,系统的故障仅限于服务接口内部,仅是发生异常的服务接口不能运行,不会影响到其他接口的正常运行,同时,某服务接口的维护升级不会影响其他接口的运行,相比于单体应用程序更具备健壮性和可维护性。
(3)实践教学管理相关微服务接口可以随着学校的发展、教学管理的变革、管理的需要数量上不断地扩展、功能上不断地升级,有利于分段实施,逐步完善系统功能。
作者:朱士中 王加年 先晓兵 张尔喜