第 1 题
IaaS 与私有云是否属于同一分类维度?
尚未检查本题。
查看答案与评价要点
参考答案:不是。IaaS 是服务模型,描述交付能力和责任边界;私有云是部署模型,描述专用访问和治理范围,两者可以组合。
评价要点:明确服务模型与部署模型是两个维度;说明 IaaS 与私有云可以组合
浏览器未允许保存进度;当前为只读学习模式。
第 3 周 · 初阶
从传统架构走向云原生
周目标:理解云服务模型、华为云生态、云原生架构思想
课程成果:CO1 CO8
已学习 0 / 7 天
Day 15
建议时长:60 分钟
本日 CO:CO1 CO8
用 NIST 的五个基本特征、IaaS/PaaS/SaaS 三种服务模型与公有云、私有云、社区云、混合云四种部署模型建立统一语言;从责任边界、弹性、可计量、数据位置、合规、可移植性与退出路径评估服务,而不是把“上云”当作单一产品选择。练习不比较易变价格,只记录计费单位、成本驱动因素与必须在实际选区重新核验的变量。
5 分钟 · MP3 · 双主持人讲解
NIST 把云计算描述为按需网络访问共享可配置资源池,并列出按需自助、广泛网络访问、资源池化、快速弹性和可计量服务五个特征。IaaS 提供计算、存储和网络等基础能力,使用方仍管理操作系统与应用;PaaS 提供应用运行平台,使用方聚焦代码和数据;SaaS 直接交付可使用的软件。它们表达的是能力与责任边界,不是“机器在谁的机房”。
部署模型回答访问和治理范围:公有云面向公众使用,私有云由单一组织专用,社区云服务具有共同关注点的组织群体,混合云把两个或更多仍保持独立的云以技术连接,使数据或应用可移植。混合云不是任意两套系统并排,也不自动带来容灾;身份、网络、数据一致性和故障切换仍需明确设计与验证。
选择服务时先写工作负载:请求模式、数据敏感度、恢复目标、延迟、团队能力、锁定风险和退出方式,再判断哪些层愿意自行管理。IaaS 控制更细但补丁、容量和备份责任更多;托管平台减少日常操作,却可能限制运行时、网络或迁移路径;SaaS 上手快,但配置、身份、导出和供应商边界仍由采购者核验。所谓“托管”不等于责任消失。
成本意识不等于抄一张价格表。更稳定的做法是记录实例时长、存储容量与请求、网络出站、备份保留、日志与追踪量、支持等级等计费单位,建立低/中/高负载情景,并注明区域、币种、税费、折扣和核验日期均为运行前变量。没有授权账号和预算时只做架构与计算器草案,不创建会计费的资源。
为同一个小型 Web API 分别设计 IaaS、PaaS、SaaS 组合,画出用户与提供方责任边界,并说明公有云、私有云和混合云部署条件。
IaaS 与私有云是否属于同一分类维度?
尚未检查本题。
参考答案:不是。IaaS 是服务模型,描述交付能力和责任边界;私有云是部署模型,描述专用访问和治理范围,两者可以组合。
评价要点:明确服务模型与部署模型是两个维度;说明 IaaS 与私有云可以组合
为什么仅比较月度总价不足以完成云服务选型?
尚未检查本题。
参考答案:总价依赖区域、用量、网络出站、备份、可观测性和折扣等假设;还必须同时评价责任、风险、性能、迁移与退出证据。
评价要点:列出至少三个价格或用量假设;同时考虑责任、风险与退出证据
尚未完成自测。
使用给定需求卡完成分类与责任边界填空。
独立提出三种服务模型方案并用风险和成本驱动因素比较。
增加混合云退出演练,说明身份、网络与数据可移植性的可验证条件。
学习状态:未学习
Day 16
建议时长:65 分钟
本日 CO:CO1 CO8
以华为云 ECS、EVS、VPC、OBS、RDS 为例进行云服务选型:先按计算、块存储、对象存储、网络和托管数据库区分职责,再用数据路径、故障域、权限、备份恢复和计费单位验证组合。课堂默认只读查文档与画方案;真实控制台创建必须使用授权沙箱、预算和清理单,不把拥有账号误当作拥有业务变更权限。
6 分钟 · MP3 · 双主持人讲解
ECS 是包含 vCPU、内存、操作系统和 EVS 磁盘等要素的计算单元;EVS 面向可挂载的块存储;VPC 为云服务器、容器和数据库提供逻辑隔离网络,并通过子网、安全组、路由等组织连接;OBS 以对象接口保存非结构化数据;RDS 承担受托管的关系数据库能力。架构图应写清客户端经何处进入、应用访问哪类数据,以及控制操作由谁发起。
不能因为服务在同一品牌下就假设网络天然可达或数据天然备份。ECS 到 RDS 的连通仍取决于 VPC、子网、路由、安全组和数据库授权;EVS 与 OBS 的访问语义不同,前者像块设备,后者通过对象 API;RDS 的托管会减少部分数据库运维,但应用账号、数据分类、查询设计和恢复验收仍有用户责任。
一个可评审方案至少包含区域与可用区假设、CIDR、入站和出站、身份角色、加密与密钥责任、备份保留、恢复演练、监控、标签和所有资源的退出动作。先用数据分类决定能否放入示例环境,再用最小权限矩阵决定谁可以查看、创建、修改和删除;没有变更单或教师沙箱时,学习产物应停在架构图与创建前检查表。
成本表不保存当日单价,而保存驱动项:ECS 运行时长和规格、EVS 容量与性能类别、OBS 容量/请求/网络流量、RDS 实例和备份、弹性公网带宽、日志量以及闲置资源。每个驱动项写使用假设、预算阈值、告警责任人和实际查询入口;若以后实施,按资源 ID 与课程标签逐项核验后清理,绝不用全局批量删除。
为静态资源加小型事务 API 选择 ECS/EVS/VPC/OBS/RDS 组合,提交控制面、数据面、责任与成本驱动图;可选沙箱只做创建前计划评审。
用户上传图片供多个应用读取,更适合先评估 EVS 还是 OBS?为什么?
尚未检查本题。
参考答案:先评估 OBS,因为需求是通过对象接口共享非结构化对象;EVS 是附加给计算实例的块存储,访问与挂载边界不同。
评价要点:选择 OBS 并说明对象 API;准确区分 EVS 块存储语义
使用 RDS 后,哪些责任仍不能交给云提供方?
尚未检查本题。
参考答案:应用账号与最小权限、数据分类、查询和 schema、备份保留选择、恢复验收、密钥和网络访问等仍需用户负责或共同负责。
评价要点:列出至少三项用户或共同责任;明确托管不等于责任消失
尚未完成自测。
在给定架构图上标注五类服务和责任边界。
完成小应用选型表、网络数据路径和创建前检查单。
增加跨可用区故障与退出迁移推演,比较恢复和成本驱动变化。
学习状态:未学习
Day 17
建议时长:60 分钟
本日 CO:CO1 CO8
把 12-Factor 视为服务化应用设计检查表,而不是必须拆成微服务的口号:代码库、依赖、配置、后端服务、build-release-run、无状态进程、端口绑定、并发、可处置性、开发生产一致、日志事件流和一次性管理任务共同提高可部署性。再将声明式期望状态、不可变制品与小步发布连接起来,同时识别数据库状态、密钥和迁移不能靠“无状态”一笔带过。
5 分钟 · MP3 · 双主持人讲解
12-Factor 要求一套受版本控制的代码库对应多个部署,显式声明和隔离依赖,把会因部署而变的配置置于环境,将数据库等后端当作可替换附加资源,并严格区分 build-release-run。它还建议进程无状态、通过端口提供服务、以进程模型扩展、快速启动和优雅终止、缩小开发生产差距、把日志作为事件流、把管理任务作为一次性进程。每项都需要可观察的实现证据。
这些原则不等于“所有系统都必须微服务”。一个结构清楚的单体同样可以外置配置、生成不可变制品、执行健康检查并输出结构化日志;反之,拆成多个服务却共享数据库密码、手工修改运行容器、没有 trace context,只会扩大故障面。架构选择应从团队边界、独立发布需求和故障隔离出发。
声明式 API 描述“希望有三个可用副本”,控制器不断比较实际状态与期望状态并尝试收敛。不可变基础设施强调以新制品替换而非登录机器手改;两者能降低配置漂移,却不能保证声明本身正确。镜像 digest、配置版本、数据库迁移顺序、readiness、回滚兼容性和变更证据仍决定发布是否安全。
把日志写到标准输出只是起点,平台还要采集、保留、访问控制和关联;把密码放入环境也不自动安全,秘密值仍需受控存储、最小权限和轮换。学习者应把每项原则写成“当前证据—风险—最小改造—验收信号”,避免只给符合/不符合的主观标签。
审查一个虚构小应用的配置、日志、启动、状态和发布流程,形成 12-Factor 差距表与最小改造计划。
把数据库密码硬编码进仓库违反哪项核心边界,移到环境变量是否已经完成全部安全工作?
尚未检查本题。
参考答案:违反配置与代码分离;移到环境只是交付方式之一,还需要秘密存储、访问控制、避免日志泄露和轮换。
评价要点:指出配置与代码分离;补充秘密存储、访问或轮换边界
为什么同一个镜像 digest 可以参与多个 release?
尚未检查本题。
参考答案:build 产生制品;release 将该制品与特定部署配置结合。同一不可变制品可与不同环境配置形成不同 release。
评价要点:区分 build 与 release;说明配置使 release 身份不同
尚未完成自测。
用教师提供的证据卡匹配十二项原则。
完成差距、风险、改造和验收四列表。
为有状态迁移设计向前兼容、回滚受限与观测信号。
学习状态:未学习
Day 18
建议时长:90 分钟
本日 CO:CO1 CO8
从控制平面和工作 Node 解释 Kubernetes:API server 接受期望状态,etcd 保存集群状态,scheduler 选择 Node,controller manager 推动实际状态收敛,kubelet 管理 Pod,容器运行时执行容器。再用 Deployment 管理无状态副本与更新、Service 以 selector 提供稳定访问、Ingress 为 HTTP/HTTPS 路由且必须由控制器实现;同时注明官方已建议新设计评估 Gateway API,Ingress API 冻结但仍稳定。
5 分钟 · MP3 · 双主持人讲解
客户端向 API server 提交对象,认证、授权和准入通过后,期望状态写入集群状态存储;scheduler 为未绑定 Pod 选择 Node,controller manager 中的控制器不断比较期望与实际,Node 上 kubelet 通过容器运行时使 Pod 运行。这个过程不是一次性脚本链:任何一步都可能等待、拒绝或重试,排障必须同时观察对象条件、事件、调度、镜像拉取和应用就绪。
Pod 是最小可部署计算对象,但直接创建的裸 Pod 不提供应用级更新和副本管理;Deployment 管理 ReplicaSet,声明副本和滚动更新;Service 根据 label selector 抽象一组后端,端口存在不代表应用 ready;Ingress 描述 HTTP/HTTPS 路由,只有安装并配置对应 Ingress controller 才会生效。官方建议新设计评估 Gateway,课程仍用 Ingress 理解基础路由边界。
实验同时随机化 `profile_name` 和 `namespace_name`,创建前确认它们不存在,创建后保存 namespace UID 并加 `aiknow.exercise=$lab_token` 归属标签。所有 kubectl 命令显式写 context 和 namespace,先用 `kubectl auth can-i` 验证权限;镜像变量必须是教师批准的 `name@sha256:digest`,拒绝 latest 和隐式更新。访问仅通过绑定 127.0.0.1 的本机转发。
清理不使用任何全量删除。先比较当前 namespace UID 与保存值,再读取归属标签;两者都匹配才删除该 namespace。只有本轮确实创建了 minikube profile、名称与随机令牌匹配并且归属记录存在时,才执行指定 profile 删除。创建失败、context 改变、UID 或标签不一致时停止,不尝试清理同名资源,更不能操作 default、共享或生产 namespace。
在本人专用、随机 profile 的 minikube 本地集群中,用随机 namespace 部署教师批准且以 digest 固定的小应用,验证 Deployment、Service、就绪与回环访问,再按保存的 UID 和归属标签精确清理。
创建 Deployment 后 Pod 一直 Pending,应先检查哪些控制面证据?
尚未检查本题。
参考答案:检查 Deployment/ReplicaSet/Pod 条件与事件、scheduler 决策、资源请求、污点/容忍和节点可调度性,而不是直接删除重建。
评价要点:引用对象条件和事件;检查调度资源或节点约束
已有 Ingress 对象为什么仍可能没有外部路由?
尚未检查本题。
参考答案:Ingress 只是规则对象,需要匹配的 Ingress controller 实现;还需核对 IngressClass、Service 后端、EndpointSlice、DNS/TLS 和网络边界。
评价要点:指出需要 Ingress controller;核对 Service 后端及入口配置
尚未完成自测。
使用教师提供的 kubectl 输出包标注对象关系和失败位置,不启动集群。
在专用 profile/namespace 完成受控部署、访问、证据采集和精确清理。
增加 readiness 失败与一次滚动更新,比较 Deployment 条件、事件和回滚证据。
学习状态:未学习
Day 19
建议时长:70 分钟
本日 CO:CO1 CO8
用 GitLab CI 理解流水线即代码:pipeline 由 jobs 和 stages 组成,Runner 执行作业;一次变更从 commit 身份开始,经过 lint、test、build、scan、package 产生不可变制品和 digest,再由受保护环境的部署步骤引用同一制品。CI 不是“脚本跑绿”即可,缓存不等于制品,浮动标签不能证明部署内容;CD 还需要审批、最小权限、显式 resource group 处理模式、期望 revision/digest 守卫、验证与回滚/前滚策略。
5 分钟 · MP3 · 双主持人讲解
GitLab pipeline 通常由顺序 stage 和其中可并行的 job 构成,Runner 执行 job。lint/test 证明代码在指定环境通过检查,build 将源码与锁定依赖转换为制品,artifact 用于在作业间传递或保留输出;容器 Registry 保存镜像。缓存用于加速且可能失效,不应被当作发布证据。每次输出需关联 commit SHA、工具版本、校验值或 image digest。
合理的门禁顺序是便宜且确定的检查先执行,高成本构建和扫描随后,部署只消费已经验证的同一不可变制品。若部署阶段重新构建、以 latest 拉镜像或手工修改运行实例,就断开了可追踪链。数据库迁移、配置兼容和依赖服务也必须纳入发布单元,否则应用回滚可能被不可逆数据变更阻断。
Runner 权限决定流水线能影响什么。共享 Runner 不应持有长期生产管理员密钥;敏感变量应受保护、掩码和最小范围约束,脚本禁止 echo 秘密。生产 job 在 `.gitlab-ci.yml` 声明 `resource_group: production` 只保证互斥;resource group 默认 unordered,不保证先后。维护者必须经受保护的 GitLab API 设置 `process_mode=newest_first`,并保证部署幂等。
`newest_first` 会优先最新等待 job,但较旧 job 以后仍可能获得资源,所以不能单独防回退。部署脚本从受保护的 GitOps 引用或环境控制面读取 `DESIRED_REVISION` 与 `DESIRED_IMAGE_DIGEST`,然后执行 `(test "$CI_COMMIT_SHA" = "$DESIRED_REVISION" && test "$IMAGE_DIGEST" = "$DESIRED_IMAGE_DIGEST") || { printf '陈旧 job:跳过部署\n'; exit 0; }`。只有双匹配才变更环境,并记录 revision 与 digest。
回滚必须在发布前设计:保存上一个可用 digest、配置版本、数据库兼容窗口和健康判据。部署后用请求成功、延迟、错误和关键业务 SLI 验证;失败时按预案回滚或前滚,并保留 job 日志、部署 revision 和验证输出。练习只评审 YAML 与证据图,不要求购买 Runner 分钟或连接真实 Registry。
在本地临时目录为小应用编写 `.gitlab-ci.yml` 设计稿,定义测试、构建、制品身份、部署验证和回滚证据;不推送、不登录 Registry、不触发真实环境。
为什么 cache 不能作为已部署制品的身份?
尚未检查本题。
参考答案:cache 是可失效、可覆盖的加速数据;发布需要与 commit 绑定的 artifact 校验值或不可变 image digest 及环境 revision。
评价要点:指出 cache 可失效或覆盖;给出 artifact 校验值或 digest 身份
为什么只写 `resource_group: production` 仍不能防止陈旧部署?给出完整控制。
尚未检查本题。
参考答案:resource group 默认 unordered,只保证互斥。应由维护者设置 `process_mode=newest_first`、保持 job 幂等,并在部署前把 `CI_COMMIT_SHA`/`IMAGE_DIGEST` 与受保护的 `DESIRED_REVISION`/`DESIRED_IMAGE_DIGEST` 双重比较;陈旧 job 只记录并跳过。
评价要点:指出默认 unordered 不保证执行顺序,并设置 newest_first;指出 newest_first 仍需幂等和 revision/digest 双重守卫;明确陈旧 job 不得变更环境
尚未完成自测。
给流水线卡片排序并识别 cache、artifact、digest。
完成 YAML 设计稿和端到端身份/失败分支图。
设计受保护环境、短期身份、并发控制和向前兼容数据库迁移。
学习状态:未学习
Day 20
建议时长:65 分钟
本日 CO:CO1 CO8
以用户问题而非工具清单组织可观测性:指标是运行时测量的聚合信号,日志记录离散事件,追踪描述一次请求经过多个组件的路径;三者用 service、environment、trace_id 等受控上下文关联。为在线服务从请求率、错误率、延迟和饱和度选择 SLI,定义窗口与分母,再从症状告警下钻到结构化日志和 span。Prometheus 标签每个组合都会生成时间序列,用户 ID 或原始 URL 等无界标签会造成基数与成本风险。
6 分钟 · MP3 · 双主持人讲解
OpenTelemetry 将 traces、metrics、logs 视为可采集、处理和导出的遥测信号。指标适合汇总趋势、比率和告警,例如请求总数、错误数、延迟分布和进行中请求;日志保留事件上下文与错误详情;追踪用 trace/span 表达一个请求跨服务的因果路径。统一服务名、环境、版本和 trace context,才能从异常曲线定位到具体请求与日志。
可观测性从问题和 SLI 开始。成功率必须明确成功定义和总请求分母,延迟必须明确端点、单位、直方图区间与统计窗口,饱和度必须对应有限资源。CPU 图不是用户可用性的替代品;一个健康 dashboard 也不能证明故障时有可执行动作。告警需包含影响、阈值依据、查询、责任人和 runbook 入口。
Prometheus 中每个唯一标签组合形成独立时间序列。把 user_id、email、request_id 或未规范化 URL 放入指标标签,会让基数随用户或请求增长,消耗内存、磁盘和网络;这些细节更适合受控日志或 trace。指标名称和单位要稳定,counter 用 rate 解释变化,gauge 可升可降,延迟通常需要 histogram,并在上线前估算时间序列数量。
日志与追踪可能携带个人信息、认证头、提示词或业务数据,必须先定义采集白名单、脱敏、访问、保留和删除策略。采样会降低成本但可能遗漏稀有失败,应说明规则和偏差;Collector/后端不可用时应用是否阻塞也要验证。练习只写契约和用静态样例推演,不部署 Prometheus/Grafana 到共享集群。
为 Week 3 小应用设计不依赖特定后端的 metrics/logs/traces 遥测契约、两个 SLI 和一条从告警到根因证据的排障路线。
为什么 request_id 适合日志/追踪关联,却通常不适合作为 Prometheus 指标标签?
尚未检查本题。
参考答案:每个 request_id 几乎唯一,会产生无界高基数时间序列;指标应保留有限维度,具体请求用日志或 trace 查找。
评价要点:解释唯一值造成高基数;提出日志或 trace 作为替代
“P95 延迟低于 300 ms”还缺哪些口径才能成为可复核 SLI?
尚未检查本题。
参考答案:至少缺服务/端点范围、成功或全部请求分母、统计窗口、直方图区间或计算方法、单位、排除规则和数据完整性。
评价要点:补充范围、单位和窗口;说明分母或计算方法
尚未完成自测。
对给定信号卡分类并补全指标单位、日志上下文和 span 关系。
完成 SLI、遥测契约、基数预算和排障证据链。
比较头部/概率/错误优先采样,分析稀有错误遗漏和成本变化。
学习状态:未学习
Day 21
建议时长:90 分钟
本日 CO:CO1 CO8
把本周知识收束为一个可观测的云原生小应用部署计划:先以 IaaS/PaaS/SaaS 与部署模型说明服务边界,再完成 ECS/EVS/VPC/OBS/RDS 或等价能力选型;用 12-Factor 审查配置、制品、进程和日志;用 Kubernetes Deployment、Service 与 HTTP 入口表达期望状态;用 CI/CD 绑定 commit、digest 与 revision;最后以指标、日志、追踪、权限、恢复和成本驱动证明方案可部署而非仅可画。
6 分钟 · MP3 · 双主持人讲解
架构图先讲用户请求:入口如何把 HTTP 流量送到 Service,selector 如何定位 Deployment 管理的 ready Pod,应用如何通过受控网络访问数据库或对象存储,失败会在哪里被检测。再讲变更:commit 触发 CI,测试与扫描通过后产生 digest,CD 将同一 digest 写入声明,控制器收敛,部署 revision 与 SLI 验证决定继续、回滚或前滚。
每个箭头应注明接口、身份和证据,而不是堆 Logo。云服务模型说明责任,12-Factor 说明应用可部署条件,Kubernetes 对象说明期望状态,流水线说明制品可信链,指标/日志/追踪说明运行反馈。若方案没有数据迁移、密钥、权限、清理和恢复,它仍只是快乐路径草图。
架构维度检查边界、数据/控制路径和故障域;可部署性检查配置、digest、清单、readiness、发布与恢复;可观测性检查 SLI、有限标签、日志/trace 关联和告警动作;安全检查身份、最小权限、秘密、网络和数据;成本意识检查计费驱动、容量情景、遥测保留、闲置清理和预算验证。每个判断都映射 CO1 或 CO8。
优秀方案不是组件最多,而是第三方能按记录复核选择和失败路径。互评者先指出证据,再给 1–4 级;事实必须有官方 URL 与学习者实际访问日期,推断必须写依据,建议必须写适用条件。课程 `verified_on` 是作者核验日期,不能代替学习者自己的访问记录;易变价格必须回到目标区域的官方入口重新查询。
完成“可观测的云原生小应用部署计划”作业草案,互评架构、可部署性、可观测性、安全和成本意识五个维度。
一张云原生架构图只有产品 Logo,最少还需要补哪些关系?
尚未检查本题。
参考答案:补用户请求与变更路径、接口和身份、责任边界、数据持久化、故障域、制品 digest、部署对象、SLI、恢复与成本驱动。
评价要点:包含请求和变更双路径;包含身份、故障、观测与恢复关系
为何总分较高仍可能不能把本周周测作为 CO8 达标证据?
尚未检查本题。
参考答案:CO8 要求来源、验证和限制的直接表现;必答主观题若未达到 3 级,客观题总分不能替代颗粒化证据。
评价要点:指出 CO8 需要直接表现证据;说明两道必答题的独立门槛
尚未完成自测。
使用给定全景图补全五类证据标签。
完成小应用双路径部署计划和五维互评修订。
增加区域故障、流水线倒序与遥测后端不可用三项推演,比较回滚和前滚。
学习状态:未学习