※ 本文是否可提供台大同学转作其他非营利用途?(须保留原作者 ID)
(是/否/其他条件):否
哪一学年度修课:
109-2
ψ 授课教师 (若为多人合授请写开课教师,以方便收录)
庄裕泽
λ 开课系所与授课对象 (是否为必修或通识课 / 内容是否与某些背景相关)
资管系/所选修
δ 课程大概内容
本课程目标在提供学生分布式系统与云端应用服务开发所需要的基础理论知识与实务技能
。课程的内容从分布式系统的基本知识开始,到GFS, Hadoop, MapReduce大型分布式储存
系统与运算架构,及中介软件 (middleware)、虚拟化概念 (virtualization)等大型分散
式系统常用的开发软件与平台,再到Docker containers, Kubernetes, Amazon ECS
&EKS 等目前云端应用服务常用的开发、部署、扩充和管理工具。课程亦将邀请业界专家
来协助授课,包括工具的使用及分享实务开发的经验,让学校的课程可以直接介接到业界
的实务需求。
Syllubus太长了就不贴了,具体内容下面再说。
Ω 私心推荐指数(以五分计) ★★★★★
★★★★
η 上课用书(影印讲义或是指定教科书)
Distributed Systems: Concepts and Design 5th Ed., C. Coulouris et al.,
5th ed., 2011.
不过基本上不需要买,老师都整理成投影片了。
但只有前半是用课本,中间几堂上paper,下半则是请讲师。
Paper包含:
1. Dynamo: amazon's highly available key-value store, ACM SIGOPS Operating
Systems ReviewOctober 2007.
2. The hadoop distributed file system: Architecture and design, D. Borthakur,
2007
3. The Hadoop Distributed File System, K. Shvachko, H. Kuang, S Radia, R.
Chansler, IEEE MSST 2010
4. The Google File System, Sanjay Ghemawat, Howard Gobioff, and Shun-Tak Leung,
ACM SOSP 2003
5. Ceph: a scalable, high-performance distributed file system, S. A. Weil, et
al., OSDI 2006.
6. RADOS: a scalable, reliable storage service for petabyte-scale storage
clusters, S. A. Weil, et al., PDSW 2007
7. CRUSH Controlled, Scalable, Decentralized Placement of Replicated Data, S. A.
Weil, et al., SC2006
8. The Chubby lock service for loosely-coupled distributed systems, M. Burrows,
OSDI 2006.
9. Bigtable: A Distributed Storage System for Structured Data, F. Chang, et al.,
ACMTOCS 2008.
一堂课大概会讲到3份。
μ 上课方式(投影片、团体讨论、老师教学风格)
传统授课,一开始在管一一间很小的教室,后来因为人太多改到管二。
如上所述,一开始老师会讲课本的理论,到学期快一半时会开始上paper,老师
会希望大家先回去阅读paper,上课再来讨论,然后期中考后是讲师来教实务上的操作
(Docker、AWS、GCP等等),疫情爆发后改用cyberlink umeeting远端上课。
不点名,不过个人还是满推荐去上课的。
σ 评分方式(给分甜吗?是扎实分?)
30% 作业
30% 期中考
40% Term Project
个人认为不算凉也不甜,但也不到硬就是了,最后大家成绩大概是从B-到A+的
uniform distribution。
ρ 考题型式、作业方式
期中考前无作业,期中考后每个讲师在下课后会出一份作业,难度不高,很多都
是照着指示在云端平台上操作,然后截图上传,基本可以全拿。
期中考为问答题,包含老师讲过的所有课本及paper,考法大概是写出某某算法
、或是描述CEPH、GFS的大致架构之类的。个人觉得不容易拿高分,虽
然老师题目没有出很难,但范围真的是有点大,班平均最后57,题外话原本助教改得比较
松,结果老师收回去之后重改,小弟分数直接降了快20分...
Term Project部分基本上老师要求的都有做到就是85起跳,倒是满好拿的。大
致是要做一个部署在云端平台上的服务,需要用到K8S、云端储存,且有loadbalance功能
,然后demo要包含压力测试。
ω 其它(是否注重出席率?如果为外系选修,需先有什么基础较好吗?老师个性?
加签习惯?严禁迟到等…)
基础个人认为对网络要有一定程度的认识(TCP之类的),算法与资结不
用说,个人觉得这门课前半课本的部分跟资管系的网络和数据库重叠还满多的。
然后中间的论文部分loading可能有点多,我们当初是组了读书会一起整理重点
除此之外由于这几篇paper都满有名的,网络上笔记、翻译等资源都不少。
最后也建议要修之前要确保你或你的组员有人会写前后端,可以在term project
省去大量的时间,docker和k8s倒是不用担心,个人认为讲师讲得很清楚,课后查点资料
很快就能把写好的东西部署上去。
Ψ 总结
这门课的课名每次都会讲到让人舌头打结,长到超过PTT标题限制。原课名
为:“分布式系统与云端应用开发实务”,实务两个字被切掉了。
这是老师第一年开这门课,也是我第一次修老庄的课,虽然老师在资管系外号
庄大刀,但由于Docker、K8S在业界似乎很红,加上台大几乎没有课在教,所以还是
硬著头皮来修,没想到老师其实满nice的,上课也是跟大家有说有笑,最后也完全没当
人。
整体来说是一门相当不错,学得到实务技能的选修,不过如果想顾成绩的话可以
考虑一下,老师给分相当扎实。