外观
JupyterHub @ DaSE
JupyterHub @ DaSE 是面向公共计算机系列课程的多用户 Notebooks 服务:选课学生用统一身份登录就能开始实验,不需要在自己电脑上装任何环境。它支撑的是学院承担的全校计算机公共课——这类课的特点是选课人数多、学生专业背景差异大、动手环节必须人人做得起来。
为什么做这个
公共计算机课的第一道障碍通常不是知识点,而是环境:Python 版本冲突、依赖装不上、不同机型的差异、有人电脑跑不动课程数据集。这些问题的成本极不对称——对任课教师只是一行安装说明,对学生可能是一整个晚上,而且完全与课程目标无关。
把实验环境搬到云上之后,同一份课件、同一份数据、同一个依赖版本在几千名学生手里得到相同结果,上机环节也才能真正做到“人人可复现”。这也是学院承担全校公共课时最现实的需求:规模大、批次集中、必须稳。
核心能力
- 零配置开课:登录后即得可用的 Notebook 环境,几秒内进入课程工作目录,无需本地安装与配置。
- 课程镜像:每门课维护固定版本的镜像与依赖清单,公共基础层由部门统一维护,课程层由任课教师扩展,保证作业与实验可复现。
- 大班并发:按选课人数预置容量,作业截止与上机考试时段的并发高峰提前扩容;单用户实例空闲后自动回收,把资源留给排队的人。
- 作业分发与收取:教师发布带说明与空位的 Notebook,学生提交后助教在线批阅并回传评语;支持项目内共享与只读链接。
- 上机考试模式:限时开放、限制外网与文件导出、全程留痕,考试环境与平时练习环境隔离,避免“考试时才发现问题”。
- 教学侧统计:环境使用率、实例启动失败率、作业提交分布等指标,用于判断是课程难度问题还是环境问题。
使用提醒
- 单用户实例在空闲后会被回收,请及时保存并善用版本控制;这里是运行环境,不是数据备份手段。
- 算力按课程优先分配,长期科研任务请走学院的其他算力渠道。
技术形态
Hub 负责认证、配额与实例生命周期,学生的单用户服务(user server)以容器形式调度到集群节点。镜像分层构建,基础层由部门维护以保证安全更新到位,课程层由各课自行固化版本;敏感数据与凭据不进入镜像层。与学校统一身份认证对接,学籍或在职状态变化即影响访问权限,不留活跃的死账号。存储划分为个人持久目录、课程只读数据区与临时区,结课后按规则归档或清理。上游 JupyterHub / JupyterLab 版本跟随采用灰度方式升级,先在一门课程的环境验证再全量放开。
命令行与 Git 等基础工具的训练不在这里进行,而是在Workshop @ DaSE 的在线 Terminal 中完成;需要自动判题的编程作业提交到OnlineJudge @ DaSE。
与水杉系列的关系
JupyterHub 承载的是水杉在线“学、练、测、创”中练的环境层,尤其在公共课场景下验证平台的弹性与可运维性——这恰是水杉系列服务所必需的能力。当前保持独立部署,以便快速跟进上游版本、把试错成本限制在环境层;若确认长期依赖,镜像管理、配额调度与实验行为数据的采集会并入水杉在线的平台能力,对外只呈现一个入口。
使用范围
- 面向承担公共计算机系列课程的任课教师与选课学生,以及学院内需要 Notebooks 的实践环节。