论文部分内容阅读
互联网发展到今天在技术应用领域呈现出技术领域众多、知识更新换代快、应用规模巨大、应用技术栈复杂等特点,对IT从业者的理论知识、实践技能都有着更高、更全面的要求,与此同时IT人才市场也表现出岗位种类多、技术变化快以及能力要求高的特点,给IT人才的培养提出了更高的要求。然而作为IT人才最重要的培养途径之一,软件工程专业教学在其实践过程中却存在着知识体系更新慢、与实际生产要求脱节、培养效率较低等弊端。软件工程专业实践教学中的弊端影响着新时代的新要求下互联网人才培养的速度和质量,进一步地,也影响着国家对互联网及信息产业的人才供给。针对IT人才培养实践教学中的问题,目前已经有了一定的解决思路。较为典型的是在线编程平台和在线实验平台,然而现有的在线编程平台侧重于对基础算法的训练,缺少对复杂项目和高级技术的支持,用户也无法获得真实的项目开发体验。而在线实验平台则注重在线软件工程实验,缺少对用户学习结果或时间操作的考核,用户无法在平台上进行持续学习。本课题提出了能够支持大规模复杂项目和高级技术在线评测的云平台的实现方法。通过对评测流程的抽象和提炼,本课题基于虚拟化容器实现了自动化评测机制,使用容器作为评测运行空间,借助Kubernetes实现了容器集群的管理,并针对自动化评测中的安全、负载均衡等问题进行了研究,确保平台具备应对大规模并发评测的能力。并提出了基于自动评测机制的大规模评测任务管理方法,针对用户评测习惯对评测流程进行了优化,实现了对大规模复杂项目和高级技术在线评测的有效支持。为了保证评测云平台的稳定运行,同时保证系统能够及时地得到优化升级,本文深入分析了整个评测平台的架构和运转流程,并通过对系统运行数据的分析,通过异常和评测服务状态的相关性,从众多可监测点中选取出了有价值的部分作为监控点,并基于注释的模式,实现了基于流程划分的评测请求处理链定位机制,实现了在分布式环境中对评测请求各个服务调用情况的追踪,并基于处理链定位机制实现了异常定位、系统预警、系统性能评估与诊断等机制。在评测平台及监控原型系统实现阶段,通过合理的架构设计和业务逻辑设计,选用Kubernetes和Docker的底层架构实现了评测云平台,并根据监控系统的需求选取了Kafka分布式消息中间件和Storm流式处理框架实现了监控原型系统,并通过一系列实验和分析验证了本文工作的可行性和价值。