王家 龙冬梅
摘 要:随着云计算技术的不断发展,云原生应用已经逐渐成为软件开发领域一种主流的应用形式。高等院校在数字化建设过程中需要将分散的软件和硬件资源进行整合,文章提出了一种针对高等院校教学事务的云原生平台设计方案,命名为CNP-Edu,平台能够高效地部署开源云原生应用,为开发新的云原生应用提供软件支持。CNP-Edu平台结构简单,易于维护,安全性高,便于扩展,为高校的云原生应用部署和管理提供了架构支撑。
关键词:云原生;云原生架构;教学事务平台
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2023)14-0012-04
Design and Research of University Digital Teaching Service Platform Based on Cloud Native Architecture
WANG Jia1, LONG Dongmei2
(1.Chengdu College University of Electronic Science and Technology of China, Chengdu 611731, China;
2.Chengdu Jinhua Middle School, Chengdu 610046, China)
Abstract: With the development of cloud computing technology, cloud native application has gradually become a mainstream application form in the field of software development. Colleges and universities need to integrate scattered software and hardware resources in the process of digital construction. This paper proposes a cloud native platform design scheme for teaching service of colleges and universities, named CNP-Edu (Cloud-Native Platform for Education). The platform can efficiently deploy open source cloud native applications and provide software support for the development of new cloud native applications. CNP-Edu platform has the advantages of simple structure, easy maintenance, high security and easy expansion, which provides the framework support for the deployment and management of cloud native applications in colleges and universities.
Keywords: cloud native; cloud native architecture; teaching service platform
0 引 言
近年来信息技术不断发展,高等院校需要利用大数据、云计算、人工智能等技术建设智慧型的校园。同时教育部提出《教育信息化2.0行动计划》,要求高校教学信息化覆盖全体师生,其次高校的师生对于学校的办公、教学、科研、生活等方面的高效和便捷性有了更高的要求[1]。而现状是高校缺少能够整合教学资源和信息技术资源的解决方案,本文提出了一套针对高等院校教学事务的云原生平台设计方案,平台命名为CNP-Edu(Cloud-Native Platform for Education),平台能够为师生提供数字化、网络化、智能化的教学环境,不仅如此CNP-Edu還构建了一站式的教学资源、教学应用、科研开发的管理与服务平台,为高校师生提供更加高效和便捷的信息服务,为高校提高教学质量、提高教学资源利用率和教学服务能力提供基础平台的支持[2]。
CNP-Edu基于云原生设计理念,首先将高校的硬件资源通过该平台进行整合,接着平台为高效部署和安全运维提供基础设施的支持,其次平台可以满足高校不同岗位人员对于信息化平台的不同需求,科研人员可以使用平台所提供的资源快速地部署开源项目的代码,开发人员和学生可以使用代码管理和DevOps服务开发新的云原生应用,教务管理人员可以使用平台的管理功能对学校的日常事务进行管理,教务管理人员可以利用平台的扩展功能与开发人员一起对现有功能进行二次开发。教师可以通过平台上传教学资源、批改学生的作业、录入日常的学生的信息与学生进行交流,学生也可以通过平台方便地获取教学资源和信息服务[3]。
1 相关技术介绍
云原生是一种能充分利用云计算平台的优势对应用服务进行设计、实现、部署、交付和运维的系统架构方法,它并不是简单地使用云平台运行现有的应用程序。云原生包含两个层面的含义:应用程序在分布式云计算环境中运行,应用程序按照云平台的弹性和分布式特性进行设计和运维[4]。
云原生平台是为能够开发、部署、运行云原生应用而设计和构建的针对云原生应用的服务平台。云原生平台由微服务技术、容器技术、声明式API、DevOps技术、服务网格组成[5]。下面分别介绍五个技术的特点和作用。
微服务技术将一个应用程序拆分成许多小的服务,每个服务负责完成特定的功能。这些服务可以独立部署,并且可以通过网络调用来交互。微服务优势在于,它使得应用程序更容易扩展和维护。由于每个服务都是独立的,因此可以更轻松地开发和部署新功能。此外,如果某个服务出现问题,只需要修复或重新部署该服务,而不需要重新部署整个应用程序。微服务还使得应用程序更灵活,因为它允许开发人员使用不同的技术栈来开发不同的服务。微服务在云原生平台中起着重要的作用,使得应用程序更容易扩展和维护。
容器技术是云原生应用中的另一个重要概念。容器是一种轻量级的虚拟化技术,可以在单个操作系统内运行多个应用程序。每个应用程序在容器内运行并且可以使用容器内的资源,不同应用程序之间是相互隔离的。容器技术的优势在于,它使得应用程序可以在不同的环境中轻松地运行。
声明式API旨在使开发人员能够使用简单的声明来描述所需的功能,而无须关注底层实现细节。声明式API的主要作用是简化开发人员的工作,使应用程序构建更加快速、高效和可维护性。
DevOps技术能够提高软件开发、测试和部署的效率。DevOps技术在云原生架构中起着重要的作用,可以帮助企业更快地构建和部署应用程序。DevOps技术主要通过自动化流程、持续集成和持续交付来实现效率提升的目标。
服务网格通常用于描述微服务网络以及网络之间的交互。服务网格好比一个小型的计算中心,它为计算设备提供一个集中部署的虚拟环境,为计算应用程序提供丰富的服务。服务网格借助于计算节点之间的数据包传输,为应用程序创建丰富的应用程序栈,并提供可靠的计算性能。服务网格被定义为一个专门的基础设施层,用于管理服务与服务之间的通信,使其可管理、可见、可控制。
2 系统架构
如图1所示,CNP-Edu平台包括4个主要层次组成:基础底座层,服务中心,应用中心,系统监控层。每个层次又由若干模块构成,下面分别介绍各个层次和模块的作用和特点。
图1 CNP-Edu平台架构
基础底座的作用主要是为了更好地整合高校的硬件资源,将分散在各个学院的硬件资源整合在基础底座所在的虚拟数据中心。基础底座采用分布式的设计理念,通过OpenStack虚拟操作系统将分散在各个机房的服务器整合到一起,组成一个虚拟数据中心。通过Docker容器技术模块与K8S自动编排模块配合,为微服务提供相关的应用程序运行环境和管理接口。虚拟机为高校已有的应用迁移到平台中提供了基础支持,可以在不修改已有程序的情况下,将已有的网站和系统部署到CNP-Edu平台中,并且使用平台所提供的各项系统监控和安全功能。
基础底座为上层的服务中心和应用中心提供虚拟的运行环境。比如科研开发事务中心可以将Docker容器和虚拟机分配给学生和老师进行使用,服务中心的微服务也会运行在基础底座所供的Docker环境中,系统监控中心可以对当前基础底座运行情况进行监控和管理。总之,基础底座为CNP-Edu平台整合了硬件资源提供了运行虚拟的环境。
服务中心主要提供云原生应用开发服务,包括源代码管理,项目管理,持续集成等服务,为高校的科研人员和学生的项目开发提供公共的开发服务。服务中心通过Gitlab模块提供源代码管理,便于团队开发过程中代码共享和管理,Jenkins模块提供代码持续集成的支持,Maven项目管理模块对开发任务的全周期进行管理。
应用中心包含6个模块,教学资源中心包括常用软件资源、期刊数据库资源、图书信息资源和校园网站资源。教学应用资源模块集成了科研管理与服务,本科生培养,学生管理与服务,心理教育管理,知识产权管理,就业管理与服务等资源,并且提供统一的接口,方便开发人员将相关应用集成到微信、钉钉、飞书等第三方平台。教学办事中心为学生提供网上选课、成绩查询、网上评教、成绩录入等教学事务的服务,为老师提供教务、科研、财务、国际交流等方面的服务[6]。
个人数据中心由个人数据服务、部门数据服务、综合校情三个部分组成。个人数据服务可以查看教职工和学生的基本信息。部门数据服务包括学校各个院系和部门业务产生的数据,形成数据资源目录,可以系统地展示学校各部门的情况。综合校情展示学校师资情况、科研情况、教学情况、招生情况、就业情况。
日程中心为用户提供公开日程查看和个人日程管理服务,为学生推送课程表、院系活动、校内讲座等信息,教师通过平台下发日程任务,平台为学生推送日程信息并进行提醒,节省了教师和管理人员的时间和精力。科研开发事务中心主要针对云原生平台进行功能扩展,以及使用基础底座服务提供支持。科研人员可以通过平台申请硬件资源和软件开发接口的资源,开发人员可以提交部署新的应用到云原生平台中。
系统监控包括三个主要的模块,日志监控提供故障恢复和运行状态监控的能力,资源监控提供对资源的度量和监控,服务监控提供服务发现、负载均衡的能力。监控模块能够有效地利用云原生平台的资源,对当前资源要求较多的服务提供弹性的计算资源,对当前出现故障的服务进行恢复或者容错。能够按照当前系统的状态自动完成相关的服务和应用的维护。
总之,CNP-Edu平台能够充分整合高校的IT资源,降低应用的运营成本,提高应用的安全性和扩展性。
3 案例验证
為了验证CNP-Edu平台是否能够协调使用平台的各种角色,同时验证平台已有的功能是否能够满足系统扩展的需要,设计了以下校园停车场景案例。
基于CNP-Edu平台开发校园停车的云原生应用的流程如图2展示,参与案例的角色包括开发人员、科研人员、教务管理员、学生和老师。
首先教务管理人员提出基于CNP-Edu平台的云原生校园停车应用的需求,需求包括老师和学生在校园内停车时,自动识别车辆信息、自动管理当前车位状态、通过第三方平台完成车辆收费等功能。
校园停车需求通过科研开发事务中心提交软件开发人员和科研人员,科研人员需要对车辆号牌的自动识别,车位当前使用情况的自动识别进行科研。科研人员首先需要利用基础底座所提供的虚拟机和容器完成科研环境的搭建,接着完成自动识别号牌和车位信息的算法和模型的科研任务,最后将模型部署到服务中心,使得开发人员可以直接使用车辆号牌和车位状态信息的云原生服务。
开发人员需要根据需求对系统进行设计,开发人员首先需要向服务中心申请所需要的服务,包括由科研人员开发的车辆号牌和车位状态信息的服务、教师数据和学生数据接口服务、源代码管理服务、项目管理服务,接着完成系统的后台程序的开发,同时前台应用需要和第三方平台,如微信进行绑定,从而完成自动收费功能,最后将后台和前台停车收费服务部署到服务中心。
图2 开发案例流程图
云原生校园停车应用开发和部署完成以后,教师和学生可以对相关的停车系统进行使用并且提供反馈意见,教务人员可以对停车收费系统进行管理,同时系统管理人员可以对提车服务的使用情况进行监控,包括资源、日志、安全性等方面。如图3所示展示了校园停车收费系统的后台页面,云原生应用能够和CNP-Edu平台完美融合。
通过案例展示了CNP-Edu平台拥有良好的系统结构,能够协调各种角色完成平台的扩展,并且可以为开发任务提供硬件和软件服务的支持,平台也为云应用的高效监控和运维提供了坚实的支持。
4 结 论
本文提出了CNP-Edu平台,该平台使用云原生架构设计理念作为基础,能够满足老师、学生、教务管理人员、开发人员、科研人员对于高校教学信息化的不同需求,能够充分整合高校的软件和硬件资源,提高教学资源使用率,提高云原生应用开发效率、降低运营成本、提高运营的安全性。
参考文献:
[1] 孙健,仇俊杰.云原生应用程序保护平台(CNAPP)技术浅析 [J].中国信息安全,2022(5):56-58.
[2] 李萍.基于云原生架构的广播电视智能融媒云平台框架设计研究 [J].广播与电视技术,2022,49(9):41-45.
[3] 万晓兰,李晶林,刘克彬.云原生网络开创智能应用新时代 [J].电信科学,2022,38(6):31-41.
[4] 王文哲,安岗,吴健,等.一种支持云原生的工业互联网业务管理平台 [J].电信科学,2022,38(S1):203-213.
[5] 樊良优,姚小强,王刚,等.基于云原生的开放式指挥控制平台构建技术 [J].航空兵器,2022,29(4):26-32.
[6] 刘军.云原生技术下软件教学模式的探索和实践 [J].江苏通信,2022,38(5):86-89+107.
作者簡介:王家(1982—),男,汉族,四川成都人,讲师,硕士,研究方向:语音识别、深度学习、机器学习;龙冬梅(1986—),女,汉族,四川绵阳人,中学二级教师,本科,研究方向:人工智能、大数据分析。