跳到正文ChatGPT 说 · Jimmy Huang's BlogChatGPT 说
本页目录· 49 条
1. 本周 Seminar 总览
这周其实是一个转折周。前半学期你们主要在学“怎么手动把东西搭起来”:VM、容器、Kubernetes、Web service;从这周开始,课程正式转向后半学期的重点:AWS 云服务。老师先用 Infrastructure as Code(IaC,基础设施即代码) 做过渡,告诉你为什么真实工作里不能每次都手动点点点、SSH 一遍遍配置,而要把基础设施写成代码、模板或脚本,让它可以自动部署、自动更新、自动扩展。
然后老师开始带大家进入 AWS 的世界。重点不是让你死记 AWS 所有服务名字,而是要你理解:AWS 是一整套服务生态,你以后做题、做作业、甚至面试时,核心能力都不是“背出 100 个服务”,而是看到一个场景后,知道该选什么服务、为什么这样选、配置上要注意什么。老师明确说了,后面的 quiz 更像是让你站在 solution architect(方案架构师) 的角度去回答问题。
另外,transcript 里还有一条很重要的隐含主线:这门课的 assessment 越往后越强调“理解并能解释”。老师反复说,assignment 不是机械复现 applied session,AI 也不是不能用,但前提是你必须真的懂,能解释每一步、每个结果、每个设计选择。
2. 核心知识点总结
2.1 Infrastructure Automation / IaC:为什么云环境要“写成代码”
这部分在讲什么:
IaC 的核心思想是:把原来手动做的基础设施工作——比如创建 VM、配置网络、装软件、部署应用、更新版本、监控运行状态——改成用代码、模板、脚本来定义和执行。老师特别强调,它不只是“把资源创建出来”,而是覆盖整个生命周期:provisioning(开资源)→ configuration(配参数)→ deployment(部署)→ management/monitoring(管理和监控)。
为什么重要:
因为现实里你不会只做一次。你要反复做开发环境、测试环境、生产环境;要修 bug、扩容、重建、上线。手动做一次可以,手动做十次就很容易出错、很慢、很难复现。IaC 的价值就是把这些重复劳动变成可重复、可共享、可追踪的流程。
怎么理解:
把它想成“把搭云环境的方法写成菜谱”。以后你不需要凭记忆再做一遍,而是把菜谱交给工具自动执行。
老师在课堂上不断追问大家“以前做 VM/容器/K8s/Web service 时,你们手动配了什么”,其实就是在帮你理解:这些被你手动做过的事,将来都可以被自动化。
2.2 IaC 的优点和代价:它不是白来的
这部分在讲什么:
课件里给了 IaC/自动化的优点:减少人工错误、快速部署和扩容、流程可重复、代码可共享、降低成本。
同时也提到代价:前期要学、要设计、要写、要调试,
一开始更慢
。
这是老师讲得比较久的一块,因为他不想你把 IaC 理解成“一个方便的小工具”,而是把它看成一种工程化思维:前面多花一些时间,换后面很多次部署都更稳定、更省事。
IaC 像是“前期搭自动流水线”。搭线的时候麻烦,但一旦搭好,以后每次上线都更快、更稳。
老师还特地让大家思考“为什么会降成本”,答案不是只靠少雇人,而是还包括:更少 downtime、更快恢复、更少重复劳动。
2.3 常见自动化工具:CloudFormation、Terraform、Ansible、Pulumi
本周不是要你精通所有工具,而是让你建立“工具地图”。
AWS CloudFormation:AWS 自家的 IaC 工具,用 JSON/YAML 模板管理 AWS 资源。最适合“全家桶都在 AWS”。
Terraform:跨云平台的 IaC 工具,重点是定义“期望状态(desired state)”,让工具帮你把现实改成你想要的状态。
Ansible:更像“批量执行配置和部署任务”的工具,用 YAML playbook,通过 SSH 到机器上按步骤做事。
Pulumi:支持多种编程语言,结构更模块化、更像开发者会喜欢的方式。老师特别提到它是近年加进课程的,因为行业里开始更多使用它。
因为老师已经明确回答同学:作业里可以用 Ansible,也可以用 Pulumi。而且以后做题很可能会让你比较:哪个工具更适合哪个场景。
老师在 transcript 里用一个很好的思路讲 Terraform:
不是“写出一步一步怎么做”,而是先定义“我想要 4 台机器”,然后让工具去尽量把现在的状态改成那个状态。
这其实就是你以后做架构题很重要的思维:先想目标状态,再选工具和配置。
2.4 Ansible Playbook:host、task、role、variable 到底在干嘛
老师用了一个很接地气的例子解释 Ansible:假设你有 5 台服务器,要在上面部署 Nginx。
因为这部分老师不是简单读课件,而是用提问把逻辑拆给大家。说明这不是只让你知道术语,而是希望你真的理解自动化工具是怎样组织任务的。assignment interview 也很可能会问你类似问题:你这个自动化脚本到底做了什么。
把 Ansible 想成“一个能同时管理很多机器的总控台”:
hosts = 名单
tasks = 待办事项
roles = 待办事项分类
variables = 通用参数
老师口头上一直强调的一点是:自动化不只是 bring up 资源,还包括更新、监控、打补丁、跑测试。 这句非常重要。
2.5 代码版本管理(Git):这周不是主菜,但和 team assignment 很相关
这一块课件明确标成了 home reading。核心是知道版本控制系统的作用:多人协作、记录修改、可以回退版本、可以分支和合并。
虽然它不是这周最核心的考点,但老师点出来它和 Assignment 2 团队协作 很相关。换句话说,Git 在本周更像“你做团队作业应该会的基本工具”。
不用这周就把 Git 学成高级玩家,但至少要知道:
branch 是什么
commit 是什么
pull / push / merge 是什么
为什么团队开发不能只靠手动发文件
2.6 AWS 不是一个服务,而是一整个“云服务超市”
AWS 提供很多类别的服务:计算、存储、数据库、分析、网络、安全、IoT、开发者工具等。老师特别强调:从现在开始,课程会从“工具/框架”转到“服务”。
后半学期更像“给你一个场景,你会怎么选 AWS 服务”。
把 AWS 理解成一个超大型云服务超市。你以后不是自己从零造所有东西,而是去选:
计算用什么
存储用什么
数据库用什么
网络怎么配
安全怎么做
怎么缓存、怎么扩容、怎么解耦
2.7 AWS 全球基础设施:Region、AZ、Edge Location
延迟(离用户近不近)
高可用(一个地方挂了会不会全挂)
容灾
成本
合规/监管
用户分布
老师这一段不是只念定义,而是反复问:为什么要多 region?为什么要多 AZ?为什么有些服务在不同地区不一样?
你以后做题时,只要一看到“全球用户、低延迟、高可用、容灾”,就要立刻想到这组概念。
2.8 IAM 和 Role:谁能访问什么
users
groups
policies
roles
root account
课件也讲了 role 比把 access key/secret key 直接塞进 EC2 更安全。
安全是云计算的基本盘,而且老师在 AWS 部分一开始就放了 IAM,说明它不是边角内容。很多系统设计题都会默认你要会基本权限控制。
user = 一个人
group = 一类人
policy = 权限规则
role = 某种临时身份/职责
root = 最高权限总管理员
能用 role 的时候,尽量不要把长期密钥直接放到实例里。
2.9 存储:S3、EBS、EFS、CloudFront、Storage Gateway、Snowball
标准思路就是:S3 存图 + 合适的 region + CloudFront 全球分发。
一看到“静态文件”“图片”“全球访问”“缓存”“归档”“迁移海量数据”,你就要能想到对应服务。
另外,S3 里还要会一些常见点:存储层级(standard / IA / Glacier 等)、版本管理、生命周期、加密、ACL 和 bucket policy。
不一定每个细节都要背死,但要知道这些都是 S3 常见配置点。
2.10 计算:EC2、Auto Scaling、AMI、CloudWatch、Bootstrapping
AWS 里的计算基础主要是 EC2。围绕 EC2,课件还讲了:
On-Demand / Reserved / Spot / Dedicated
Auto Scaling
AMI
CloudWatch
Bootstrapping / user data
placement group
还有容器相关服务 ECS / EKS,以及批处理 AWS Batch
这些都非常像 solution architect 题。
On-Demand:灵活,随开随用
Reserved:长期稳定,换折扣
Spot:便宜,但可能被回收
Dedicated:更专属、更隔离
2.11 数据库:关系型、NoSQL、可用性、扩展性
这是 AWS 最容易混淆、也最容易考“比较题/场景题”的一块。
Multi-AZ:主库挂了还能切换,重点是可用性
Read Replica:多弄几个只读副本分担读请求,重点是扩展读性能
Aurora:更强的 AWS 关系型数据库方案
DynamoDB:高并发、低延迟、弹性大的 NoSQL
Redshift:做分析,不是日常事务库
ElastiCache:把热点数据放内存里,加速查询
老师后面 quiz 很可能不会只问“定义是什么”,更可能问:
一个系统要高可用?要全球读?要快速查热点数据?该怎么选。
2.12 网络与消息:Route53、VPC、SQS、SNS、Kinesis
域名和流量怎么转发
系统怎么隔离网络
系统间怎么异步解耦
实时数据怎么处理
最容易混的是 SQS vs SNS vs Kinesis:
SQS:排队等处理
SNS:通知广播
Kinesis:实时流
3. 老师强调的重点
3.1 Quiz 2 会转向“服务选型 + solution architect”思维
为什么我判断它重要: 老师说了很多次 quiz 2 会基于后半学期 AWS 服务,题型仍然有选择题和 short answer,但 short answer 会更像“你是 solution architect,要根据场景给方案”。
你该怎么理解: 不要只背名词,要会“根据需求选服务”。
3.2 Assignment 不是复现 applied session,而是要能解释和 justify
为什么重要: 老师多次重复“你必须理解自己做了什么,能解释步骤和结果”。
隐含重点: 作业 interview 不只是查你“做没做”,而是查你“懂不懂”。
3.3 AI 可以用,但前提是你真的懂
隐含重点: interview 时如果你解释不出来,AI 帮你做得再漂亮也没用。
3.4 IaC 的重点是“自动化整个生命周期”,不是只会一键创建资源
为什么重要: 老师反复强调 provisioning、configuration、deployment、management、monitoring、patching、testing。
隐含重点: 后面如果你用自动化工具做作业,只会“起一个 VM”是不够的。
3.5 学服务时,重点是“为什么这样选”,不是背完所有 AWS 服务
为什么重要: 老师一直在引导大家思考 region、AZ、数据库、副本、缓存、网络等设计理由。
隐含重点: 服务的“比较”和“场景适配”比“纯定义背诵”更重要。
3.6 Pulumi 和 Ansible 都值得关注
为什么重要: 老师明确答疑说 assignment 可用这两个;还专门说 Pulumi 是因为行业趋势才加进课程。
隐含重点: Pulumi 很可能不是随便提一下,而是老师认为它有现实价值。
3.7 Applied session 不要求你当场做完全部任务
隐含重点: 学习上不要只追“做完”,要追“做懂”。
3.8 Region / AZ / Edge 这组概念非常核心
为什么重要: 老师花了不少时间用问答方式讲性能、成本、容灾、合规。
4. transcript 里补充的重要信息
4.1 assessment 相关补充
老师当时说明:Quiz 2 的内容会和前半学期分开,主要考后半学期 AWS 服务。
quiz 仍然会有选择题和 short answer;short answer 会更偏场景分析。
老师提到题目会有不同难度池,整体不会全是难题。
assignment interview 大约 10–15 分钟,会从题库里随机问。
AI 可以用,但前提是你要理解并能解释。
Assignment 2 是团队作业,3–4 人。
4.2 学习方式补充
4.3 对工具选择的补充
4.4 课件和 transcript / 材料之间值得注意的地方
Ansible 到底是 declarative 还是 imperative?前面课件和老师口头都把 Ansible 讲成“用 YAML 定义 desired state”,听起来偏 declarative;
但比较表里又把 Ansible 归到了 imperative。
最稳妥的复习方式: 写答案时说明它在课程前文中被当作“描述目标/配置”的工具来讲,但在比较表里更强调它按任务顺序执行、因此偏过程化。不要只死背一个标签。
课件说 IaC 可以避免 vendor lock-in,但 CloudFormation 本身是 AWS 专用。这不是完全矛盾,而是层次不同:
IaC 作为方法论 可以帮助迁移和标准化;
但 具体工具 里,CloudFormation 明显更绑定 AWS,Terraform / Pulumi 才更跨平台。
这个细节很适合拿来写比较题。
老师口头用“奇数个数据中心/节点更利于高可用”来帮助理解冗余,但 AWS 正式课件对 AZ 的表述只是“一个 region 有 2 个或更多 AZ”。所以你复习时要抓住真正核心:
AZ 的重点是冗余、隔离和高可用,不是去背‘一定是奇数’。
5. 这周最可能要掌握的考点 / 作业相关点
5.1 场景选服务
例如:全球图片访问、数据库高可用、读扩展、解耦系统、实时流数据、缓存加速。
5.2 IaC 工具比较
CloudFormation、Terraform、Ansible、Pulumi 的定位、优缺点、适用范围,很可能会被问。
尤其要会说出:AWS 原生 vs 跨云 vs 配置管理 vs 多语言代码化。
5.3 Region / AZ / Edge 的区别
看到低延迟、高可用、容灾、全球分发、合规时,基本都绕不开它。
5.4 存储对比
S3 / EBS / EFS / CloudFront / Glacier / Storage Gateway 这些非常像考点。
老师还给了 bookstore 图片案例,这种案例式理解特别容易被改编成题目。
5.5 EC2 相关决策
实例类型、购买方式、AMI、Auto Scaling、CloudWatch、Bootstrapping、Role。
5.6 数据库高可用与扩展
Multi-AZ 和 Read Replica 的区别,大概率要会。
Aurora / DynamoDB / Redshift / ElastiCache 的用途区分,也很适合作为比较题。
5.7 消息与流数据
SQS、SNS、Kinesis 这三个概念一旦混了,后面做题很容易乱。
5.8 assignment interview 的真正考法
不是只看你有没有做出来,而是看你能不能解释为什么这样设计。
所以对作业最重要的准备不是“记操作步骤”,而是“会讲设计理由”。
6. 我应该怎么学这周内容
6.1 推荐学习顺序
先理解这周的大主线:为什么课程从手动工具转向 AWS 服务。
再学 IaC 的核心逻辑:为什么需要自动化,自动化覆盖哪些环节。
然后学工具地图:CloudFormation / Terraform / Ansible / Pulumi 分别做什么。
再学 AWS 的地基:Region / AZ / Edge、IAM、Role。
接着按服务类别学:先存储,再计算,再数据库,再网络/消息。
最后做场景题练习:把服务和实际需求对应起来。
6.2 你必须先搞懂的基础概念
resource / provisioning / configuration / deployment / management
desired state(期望状态)
region / availability zone / edge location
IAM user / group / policy / role
object storage / block storage / file storage
relational DB / NoSQL
queue / notification / stream
6.3 哪些内容属于“理解型”
6.4 哪些内容属于“记忆型”
主要 AWS 服务名字和用途
EC2 购买方式:On-Demand / Reserved / Spot / Dedicated
S3 常见存储层级
Route53 常见 routing policies
常见数据库服务:Aurora / DynamoDB / Redshift / ElastiCache
6.5 哪些内容属于“应用型”
6.6 哪些内容只需要了解
6.7 哪些内容需要重点掌握
IaC 的价值和局限
四类自动化工具的基本差别
AWS 全球基础设施三件套:Region / AZ / Edge
S3 / EBS / EFS / CloudFront 的区别
EC2 购买方式与扩缩容逻辑
Aurora / DynamoDB / Redshift / ElastiCache 的用途
Multi-AZ vs Read Replica
SQS / SNS / Kinesis 的区别
assignment 要“会解释、会 justify”这件事
6.8 哪些地方最容易混淆
Ansible declarative 还是 imperative
CloudFormation vs Terraform
S3 vs EBS vs EFS
Multi-AZ vs Read Replica
SQS vs SNS vs Kinesis
IAM User vs Role
On-Demand vs Reserved vs Spot
Region vs AZ vs Edge
6.9 学完后你应该能回答这些问题
为什么真实工作里不能只靠手动配置,而要用 IaC?
CloudFormation、Terraform、Ansible、Pulumi 分别更适合什么场景?
什么是 desired state?为什么 Terraform 很强调它?
Region、AZ、Edge Location 分别是什么,为什么不能混着说?
一个全球用户访问的图片网站,为什么常见组合是 S3 + CloudFront?
EBS 和 EFS 有什么本质区别?
On-Demand、Reserved、Spot 分别适合什么工作负载?
Multi-AZ 和 Read Replica 的目标为什么不一样?
DynamoDB、Aurora、Redshift、ElastiCache 分别解决什么问题?
SQS、SNS、Kinesis 什么时候用?
为什么老师说 assignment 不能只“做出来”,还要“解释得出来”?
如果你在作业里用了 AI,interview 时你应该如何证明自己真的懂?
7. 给我一份简短复习清单
8. 如果我是初学者,你再用更简单的话解释一遍
你前几周学会了怎么手动开 VM、配容器、跑服务。可是真实工作里,你不可能每次都重新手动做一遍。所以现在开始学一种更专业的方法:把这些步骤写成代码,让电脑自动做。这就叫 IaC。
你以后做题,重点就是:遇到一个需求,你知道去商店里拿哪几个工具来拼起来。
老师已经暗示得很明显:后面更像“给你一个业务场景,让你当架构师做选择”。
所以最重要的不是死背 AWS 服务列表,而是会回答:
老师一直在说,你可以参考资料、可以用 AI、可以看模板,但最后你得能说清楚:
这周开始学的是“怎么把搭积木的方法自动化”,以及“在 AWS 这个大仓库里,怎么选对积木来搭系统”。