常熟理工学院:微服务无缝嵌入实践教学管理平台 | 封面报道

实践教学管理工作复杂性分析

实践教学管理工作的复杂性,首先体现在内容上。实践教学管理工作不仅包括很多常规性事务,如实验设备管理、教学资源准备、实践教学过程管理、档案日志管理及其他日常管理,还包括很多临时性、突发性工作。这对管理人员是一种考验,对从业者的心理素质、个人能力要求极高。

实践教学管理工作的复杂性,还体现在实际运作过程中。首先,实践教学管理工作的复杂来自教学体系的复杂,实践教学工作内容繁多,如实验教学、课程设计、实训、毕业实习、毕业设计等方面都设置了多样化的实践教学过程,一般而言,这些教学过程又与实践教学管理工作盘根错节共生在一个有机体中;

其次,当前各高校为了其自身生存、发展需要,为适应地方发展应用需要,一般都设置了文、理、工各类专业,其专业之间的差异必然加剧其实践教学环节的复杂性。

实践教学管理工作的内容是一项十分复杂的系统工程,必须保证每一个环节都做到十分精准,才能保障整个教学体系运作过程顺畅有序。

基于微服务架构的技术优劣

微服务架构的定义

微服务这一概念出现于2012年,但并没有精确地定义出这一架构形式,虽然围绕业务能力、自动化部署、终端智能以及语言和数据的分散控制有一些常见的特性。

微服务架构是面向服务架构思想的一种实现,微服务的基本思想在于考虑围绕着业务领域组件来创建应用,是一种特定的软件应用程序设计方式——将大型软件拆分为多个独立可部署服务组合而成的套件方案。

微服务架构中各个应用可独立地进行开发、管理和加速,在分散的组件中使用微服务云架构和平台使部署、管理和服务功能变得更加简单。

微服务架构的技术优势

微服务架构将原本单一的应用按照功能边界分解成一系列独立专注的微服务,每个微服务对应传统应用中的一个组件,可以独立编译、部署和扩展。相对整体架构,微服务架构具备以下优势。

1、组件复杂度可控

在将应用分解的同时,规避了原本复杂度无止境的积累,每一个微服务专注单一功能,并通过接口清晰地表述服务边界,由于组件体积小、复杂度低,每个微服务可有一个小规模的开发团队掌控,易于保持高可维护性和开发效率。

2、组件独立部署

由于微服务具备独立的运行进程,所以每个微服务也可以独立部署,当某个服务发生变化时,无需编译、部署整个应用。并且当某一个服务发生故障时,在单一的进程传统架构下,往往会导致整个应用不能使用,而在微服务架构下,故障会被隔离在单个组件服务中。

3、可扩展性

单个应用可以实现横向扩展,当不通服务组件在扩展需求上存在差异时,微服务架构便体现出灵活性,因为每个服务组件可以根据实际需求进行独立的扩展。

微服务架构的技术劣势

微服务的一些想法在实践上是好的,但当整体实现时也会呈现出其复杂性。

1、运维开销及成本增加

整体应用可能只需部署至一小片应用服务区集群,而微服务架构可能变成需要构建、测试、部署、运行等数十个独立的服务,并可能需要支持多种语言和环境。这导致一个整体式系统如果由20个微服务组成,可能需要40~60个进程。

2、必须有坚实的开发运维一体化技能

开发人员需要熟知运维与投产环境,开发人员也需要掌握各种必要的数据存储技术,具有较强技能的人员比较稀缺,会带来技术人员方面的挑战。

3、隐式接口及接口匹配问题

把系统分为多个协作组件后会产生新的接口,这意味着简单的交叉变化可能需要改变许多组件,并需协调一起发布。在实际环境中,一个新品发布可能被迫同时发布大量服务,由于集成点的大量增加,微服务架构会有更高的发布风险。

实践教学管理平台

微服务不需要像普通服务那样成为一种独立的功能或者独立的资源。微服务是需要与业务能力相匹配,服务粒度越粗,就越难符合规定原则。服务粒度越细,就越能够灵活地降低变化和负载所带来的影响。

其利弊之间的权衡过程是非常复杂的,在建设过程中,我们要综合硬件配置和资金规模的基础上考虑到基础设施的成本问题。

基于传统的单体应用开发模式面临业务功能重复、共享融合不深,需求改变困难等问题,结合微服务架构的技术特点和优劣势,可以通过采用微处理结构模式解决实践教学管理的复杂的教学管理过程,不再是开发一个巨大的单体式的实践教学管理系统,而是将整个系统分解为小的、互相连接的微服务应用。参照微服务架构模型结合实践教学管理的需求,本文构建的实践教学管理架构模型如图1所示。

结构模型

基于微服务架构的实践教学管理平台整体分为左右两部分,图1虚线右侧为实践教学管理所涉及到的各个核心业务功能的技术实现,从技术上讲,是以服务为抓手,在传统的单体应用基础上将复杂的系统功能细化、拆分为一个个相互独立、分散的功能点,且这些功能点是以微服务接口形式存在的。

虚线右侧是从用户、角色的维度对右侧的各个微服务接口进行业务组合而形成的各级用户、管理员的用户UI端。UI端的形式可以是多样的,既可以是PC形式也可以是移动终端形式,还可以进一步以WebAPI接口形式出现供其他第三方业务集成使用。

总体而言,这些接口对于用户来说是透明的,用户只需按照软件功能设计在自己的UI下完成自己业务工作,而不用去管具体使用到哪些接口。

相关微服务接口

面向服务架构思想、微服务架构设计方法打破了传统的大而全的整体设计思路,以解决业务需求为宗旨,围绕业务领域组件来创建应用,从而将传统的单体应用的实践教学管理系统的核心业务功能按照微服务接口的方式,分解为实验项目管理接口、实验室管理接口、实验预约接口、实验考勤接口、实验登记接口、场馆巡检接口,每个接口之间相互独立且只专注自己的业务功能

各接口通过相互调用、组合完成各类管理人员的工作业务系统模块。如实验项目管理和实验室管理。首先,两套微服务接口在开发实现阶段各自只需要专注各自的业务功能需求,两套接口相互独立且隔离,同时实验项目管理中涉及到实验地点、实验设备、耗材等时都要使用到实验室管理的微服务接口。其次,无论是实验项目管理接口还是实验室管理接口,任何一个接口的功能变动仅限于自己接口内的程序变动,不会牵涉到另一个接口去做相应的调整。

技术优势

(1)区别于单体应用,基于微服务架构的实践教学管理平台各服务接口功能边界清晰,且轻量级的确简化了程序设计人员的工作,能够缩短项目实施周期,从而使得项目更具可行性。

(2)由于各个服务接口相互独立,系统的故障仅限于服务接口内部,仅是发生异常的服务接口不能运行,不会影响到其他接口的正常运行,同时,某服务接口的维护升级不会影响其他接口的运行,相比于单体应用程序更具备健壮性和可维护性。

(3)实践教学管理相关微服务接口可以随着学校的发展、教学管理的变革、管理的需要数量上不断地扩展、功能上不断地升级,有利于分段实施,逐步完善系统功能。

作者:朱士中 王加年 先晓兵 张尔喜

(0)

相关推荐

  • 软件架构设计(一):软件架构概念

      不积跬步,无以至千里.   程序员在向架构师转型时,都希望尽早清除"什么是架构".但是架构的额定义又多又乱.已造成"什么是架构"成了程序员向架构师转型的最大 ...

  • 银行大数据平台架构设计及应用

    [摘要]本文介绍了银行如何借鉴国内外同业的先进经验,同时结合行内实际业务需求,采用大数据平台和配套产品,进行混搭大数据技术架构设计及平台落地. [作者]社区ID kappyy,在某省农信社负责大数据平 ...

  • 自动驾驶软件架构之:中间件与SOA(二)

    目 录 自动驾驶软件架构之:中间件与SOA,共计56759字,分成三篇文章推送,对文章有兴趣者,请收藏本文并持续跟进. 在此,也对未动科技肖猛肖总表示由衷的感谢!感谢您为大家呈现如此优质的内容! 上篇 ...

  • 【上汽零束SOA】云管端一体化SOA软件平台系列介绍之四:车云一体架构篇

    上汽零束基于SOA的软件架构理念,将车云能力服务化,构建云管端一体化SOA软件平台,打造千人千面用户体验,让车成为有生命力的人类伙伴.要实现云管端一体化SOA软件平台,车云一体架构就是不得不讨论的话题 ...

  • 传统企业IT架构和微服务转型-从需求问题到实施策略

    因此今天对传统企业IT架构转型,传统架构微服务化方面再做下总结整理. 传统企业IT架构转型概述 企业IT架构为什么要转型 传统企业内部信息化部门的核心目标仍然是基于业务驱动IT的思路,通过IT规划和应 ...

  • 微服务架构设计实践系列之九:应用架构

    微服务架构设计实践  目    次1 序言2 微服务3 软件架构设计思想4 微服务架构设计实践4.1 项目概述4.2 架构准备阶段4.3 概念架构阶段4.4 细化架构阶段4.4.1 业务架构4.4.2 ...

  • 微服务架构设计实践总结和思考

    微服务架构核心 再次强调,微服务架构核心是传统单体应用大拆小,同时拆分为小的微服务后相互之间以轻量的API接口进行通信.而这个拆分本身又分了多个方面. 开发团队的拆分 代码层的拆分,可独立构建打包 数 ...

  • 单体应用到微服务架构转型-实践过程总结

    今天重点谈下传统的单体应用架构朝微服务转型实践过程中遇到的一些问题,具体的解决方法的一些思考,供大家参考. 这篇文章涉及到的项目背景为我们自己的财务共享项目,即原来是一个大单体应用,需要进行微服务架构 ...

  • 实战Spring Cloud、Vue构建基于微服务的SaaS低代码开发平台2

    大角云低代码开发2019-10-07 20:28:08 一.低代码开发平台不是快速开发平台 1. 低代码开发平台定义 最近,阿里巴巴发布了自己的低代码开发平台"宜搭",网址是:ht ...

  • 实战Spring Cloud和Vue构建基于微服务的SaaS低代码开发平台

    打算写一写低代码开发平台的文章,大纲如下: 一.低代码开发平台不是快速开发平台 低代码开发平台定义 快速开发平台定义 低代码开发平台特征 低代码开发整体架构图 二.视图层的选择 低代码开发需要的视图层 ...

  • 山东交通学院多措并举 深化实践教学管理模式改革

    山东交通学院持续推进应用型人才培养模式改革,聚焦质量与实效,以"信息化"为支点,开展体系优化.内容重构.模式创新.管理转型实践教学革新,构建全方位育人的实践育人体系,探索形成服务型 ...

  • 下一代数字学习环境:已经开始的教学环境变革 | 封面报道

    下一代数字学习环境: 已经开始的教学环境变革 除了学校自身的教学质量提升需求,学生们也在要求更好的学习体验和环境,这就是新常态,那么,高等教育者们如何解决这个问题? 教育领域的新课题 2017年春天发 ...

  • 微服务实践之分布式定时任务

    承接上篇:上篇文章讲到改造 go-zero 生成的 app module 中的 gateway & RPC .本篇讲讲如何接入 异步任务 以及 log的使用. Delay Job 日常任务开放 ...

  • ASP.NET Core微服务最佳实践eShopOnContainers

    为了推广.Net Core,微软为我们提供了一个开源Demo-eShopOnContainers,这是一个使用Net Core框架开发的,跨平台(几乎涵盖了所有平台,windows.mac.linux ...