湖南大学专业选修课课程样例代码仓库以及实验代码仓库。
组织介绍

组织介绍

HNU-cloudcomputing 是湖南大学计算机学院云计算课程组维护的开放教学资源平台,主要服务于本科专业选修课《云计算技术》。平台集中发布课程主页、教材、课件、教学视频、示例代码、课程实验。

课程介绍

《云计算技术》面向希望系统学习云计算基本原理、核心机制和工程方法的本科生。课程的学习主线是从问题走向机制,再回到工程取舍。学生需要理解一项技术为什么出现、受到哪些约束、解决了什么问题,以及为此付出了什么代价。

这门课会手把手带学生做一件事:从零写一个能真人对战的在线游戏,再亲手把它一路撑上云。

学生将依次闯过五关—— 双雄对决 :先写出双人对战的最小版本,搞定网络通信与状态同步,消息怎么切、延迟怎么压、TCP 和 UDP 怎么选; 英雄集结 :玩家多起来了,把一台机器的并发榨干,协程、锁、I/O 多路复用、连接池,每优化一步都拿延迟和吞吐说话; 切分世界 :单机撑不住了,把系统拆到多台机器,分片、复制、共识、容错,亲手按下一致性与可用性的取舍开关; 飞升入定 :机器多到管不过来了,交给平台,容器化、Kubernetes 编排、弹性伸缩、故障自愈; 穷理尽微 :最后沉到机制深处,看清容器、网络与调度的本来面目,学习核心原理,一直摸到容器加速和网络虚拟化的研究前沿。

这里没有要背的概念清单。每项技术出场,都是上一轮亲手捅出的麻烦把它逼出来的;每个优化,都要跑出数字才算数。游戏跑起来就能真人对战,系统做得好不好,当场见分晓。

每个教学阶段均配有代码演示和递进式实验。学生需要运行系统,记录延迟、吞吐和资源占用,修改关键机制并比较结果。课程结束时,学生能够分析云计算系统中的规模、状态、故障和资源问题,选择合适的机制,并通过实验验证设计方案。本课程适合具备基本编程能力和数据结构知识的学习者;接触过计算机网络和操作系统则更佳。

注意: 在线游戏只是教学载体 ,形式可以变化,规模、状态、故障和资源问题具有共通性。课程所讲的云计算机制和系统工程方法同样适用于在线协作、电商平台和大模型服务等其他在线系统。

云计算概览:应用通过网络按需使用共享的计算、存储与网络资源

云计算系统把计算、存储和网络组织为共享资源池,并提供按需扩容与故障恢复能力。

课程团队

课程团队包括一位授课教师和六位课程助教。授课教师负责确定课程目标和内容体系,承担课堂讲授,并统筹教材、课件、实验、代码和视频的整体安排;课程助教分别参与教材整理、实验验证、代码维护、视频制作和课程答疑。

陈果教授 陈果
湖南大学计算机学院教授,国家超算长沙中心常务副主任。

长期承担本科生《云计算技术》《编译原理》《互联网技术与网络安全》等课程教学,出版教材3部,获全国计算机专业优秀教师、华为ICT大赛中国总决赛特等奖、华为全球最有价值教师、湖南省本科教学成果一等奖、湖南省信息化教学竞赛一等奖等奖项。科研方面长期聚焦高性能网络、云计算系统和人工智能系统,其中RDMA高性能网络协议栈相关研究在国际上得到广泛认可,发表论文近百篇,成果应用于华为、腾讯、字节跳动等企业产品,主持国家自然科学基金企业联合重点项目、工信部揭榜挂帅项目、国家重点研发计划课题、国家级青年人才项目。

guochen@hnu.edu.cn · 个人主页 · 课程团队介绍
成员 分工 具体工作 联系方式
徐方林 内容与教材 参与课程内容与教材编写,负责云原生核心原理与前沿研究内容,并承担终稿核定。 xfl825@hnu.edu.cn
胡文举 实验验证 负责课程实验内容的验证与复核,并参与指导教材配图的视觉修订。 957278980@qq.com
陈俊杰 代码与文档 参与在线游戏案例代码、实验文档和自动测试用例的建设。 843515223@qq.com
王煌 代码与测试 参与游戏案例实现、实验材料与测试用例的完善。 1292659693@qq.com
刘筱芊 视频制作 参与课程视频录制、剪辑与后期整理,使视频内容与教学进度对应。 2498646125@qq.com
赵思程 教学支持 参与课程实验、日常答疑与教学组织支持。 1146184921@qq.com

课程实验

为了帮助学生深入理解云计算系统中的网络通信、并发控制、分布式协同和云原生部署,我们设计了四组逐步递进的实验。学生在完成实验的过程中,会逐步构建一个从双人对战扩展到 Kubernetes 部署的在线游戏系统。

对于每组实验,我们都提供可运行的程序骨架、实验说明和自动测试。学生在预留的 TODO 位置补充核心逻辑,通过测试、运行日志和故障模拟观察系统行为,再将运行结果与教材中的机制对应起来。

四组实验的目标和主要内容如下。

实验 实验目标 主要内容
Lab 1 建立客户端与服务器之间的双人在线对战 TCP、JSON 消息、客户端/服务器架构、服务器权威裁决
Lab 2 扩展为支持多人实时交互的游戏世界 Goroutine、共享状态、锁、数据竞争与性能分析
Lab 3 拆分为多地图、多节点的分布式系统 数据分层、一致性哈希、Gossip、2PC、Raft 与故障恢复
Lab 4 部署到 Kubernetes 并实现弹性运行 容器、Deployment、Service、RBAC、HPA、弹性与资源成本

课程资源

项目 内容
课程主页 课程介绍、团队、实验、视频与资料入口
教材 Markdown 在线阅读 在线阅读 Markdown 版教材
教材 PDF 在线阅读 在线阅读 PDF 版教材
课程示例代码与实验 教材示例、课程实验、运行说明与自动测试
课程课件 课堂讲授课件
教学视频 课程讲授与助教带做视频

参与与联系

发现教材、课件、代码或实验中的问题,可以在对应仓库提交 Issue。文档修订、代码改进和测试补充可以通过 Pull Request 提交。

成就
12
Star
154
Fork
成员(4)
11412115 tswatery 1786674318
Tswatery
telescope_Hz
Ashionial
guoHNU

搜索帮助