从 AI 算法到系统型工程师 · 168 天完整课程目录

每天 3–6 个核心概念 · 教材章节密度 · 工作日 ~4500 字 / 周末 ~7000 字 · 生成于 2026-05-13
Phase 1 (W1-W4) 操作系统 + 网络 Phase 2 (W5-W8) 硬件 + LLM 推理 Phase 3 (W9-W12) 容器 + K8s Phase 4 (W13-W16) Go + 服务化 Phase 5 (W17-W20) 数据库 Phase 6 (W21-W24) 分布式 + 毕业项目
Phase 1 · 操作系统 + 网络(Week 1-4)

Week 01 · 操作系统 Part 1:进程、线程、调度

Day 01 Mon
计算机系统大图 + 进程的本质
  • 计算机系统的 4 层架构:硬件 / 内核 / 用户空间 / 应用
  • 操作系统的三大职责:资源管理、抽象、隔离
  • 内核态 vs 用户态、ring 0/3 保护环
  • 系统调用 syscall 是什么、怎么发生(int 0x80、syscall 指令)
  • 进程的本质:地址空间 + 资源 + PCB
  • 进程地址空间布局:text / data / bss / heap / stack
  • 一个 hello world 从源码到运行的完整旅程
Day 02 Tue
进程深入:生命周期与状态机
  • PCB / Linux task_struct 关键字段
  • 进程状态机:R / S / D / T / Z / X 完整含义
  • 进程创建 fork() 与写时复制 COW 语义
  • exec() 替换地址空间机制
  • wait() 与僵尸进程回收
  • exit() 与孤儿进程;init/systemd 的收养角色
  • 进程组、会话、控制终端
Day 03 Wed
线程模型与 Python GIL
  • 用户线程 vs 内核线程 vs 混合模型(1:1, M:1, M:N)
  • Linux NPTL 实现:clone() 系统调用与 CLONE_VM 等标志
  • 线程的私有数据:栈、寄存器、TLS(thread-local storage)
  • pthread API 速览(create/join/detach)
  • Python GIL 的实现原理:字节码级互斥
  • GIL 对 CPU-bound vs IO-bound 的不同影响
  • 协程(coroutine)的本质:用户态调度的轻量级执行流
Day 04 Thu
CPU 调度
  • 为什么需要调度器、调度的目标函数
  • 抢占式 vs 协作式调度
  • 调度类:批处理、交互式、实时
  • Linux O(1) 调度器历史与缺陷
  • CFS 完全公平调度器:vruntime、红黑树
  • nice / renice / SCHED_FIFO / SCHED_RR
  • CPU 亲和性 taskset、isolcpus
  • 负载均衡 load average 的含义
Day 05 Fri 🔧
LAB:进程与调度动手
  • top / htop 全字段解读、按键命令
  • ps 高级用法(-o 自定义列、--sort)
  • 用 time / vmstat 测量上下文切换次数
  • perf stat / perf record 性能事件初步
  • strace 跟踪一个 Python 程序的所有 syscall
  • 用 Python 实现 fork-exec-wait 完整流程
  • 观察 ps 中 STAT 列变化(R/S/D/Z)
Day 06 Sat 🔐
Linux 权限与提权基础
  • Unix 权限模型:rwx、ugo、umask、chmod 数字记号
  • 特殊位:SUID / SGID / Sticky bit
  • sudo 工作原理与 /etc/sudoers 配置
  • Linux capabilities 模型(细粒度权限拆分)
  • PAM 认证框架
  • 常见提权路径:misconfigured SUID、可写 PATH、cron 写权限、内核 exploit
  • 用 GTFOBins 查可滥用的 binary
  • 动手:搭一个简易提权 lab,跑通从 user → root
Day 07 Sun 🌐
同步原语 + IPC + 周复盘
  • 同步原语:mutex、自旋锁、读写锁、信号量、条件变量
  • 原子操作 atomic / CAS
  • 死锁四条件 + 避免/检测/恢复
  • 进程间通信六大方式:匿名管道、命名管道、消息队列、共享内存、socket、文件锁
  • 信号 signal:SIGTERM/SIGKILL/SIGCHLD/SIGPIPE/SIGUSR1 等
  • 信号处理的不安全函数(async-signal-safe)
  • 与 LLM 服务连结:vLLM 多进程为何用共享内存通信
  • 本周复盘 + Week 2 预告

Week 02 · 操作系统 Part 2:内存、I/O、文件系统

Day 08 Mon
虚拟内存与页表
  • 物理内存层级:寄存器 / L1 / L2 / L3 / DRAM / SSD / HDD 的延迟与带宽数量级
  • 物理内存 vs 虚拟内存:为什么需要虚拟化
  • MMU 内存管理单元、地址翻译
  • 多级页表:x86_64 的 4 级 / 5 级页表
  • TLB 快表:原理、命中率、刷新
  • 大页 hugepage 与 transparent hugepage
  • /proc/meminfo 全字段解读
Day 09 Tue
内存分配器
  • 内核 buddy allocator 算法
  • 内核 slab/slub allocator 与对象缓存
  • 用户态 malloc 的实现路径:brk vs mmap
  • glibc ptmalloc 设计
  • jemalloc vs tcmalloc vs mimalloc 对比
  • 内存碎片:内部 vs 外部
  • OOM killer 选择算法、oom_score_adj 调节
Day 10 Wed
虚拟内存进阶
  • 缺页中断 page fault:minor / major / invalid (segfault)
  • 写时复制 COW:fork+exec 为何省内存
  • mmap 完全解析:file-backed / anonymous, shared / private
  • swap 机制、swappiness、zswap
  • page cache、buffer cache、dirty page 回写
  • madvise 提示符
  • mlock 锁页(用于安全敏感数据)
Day 11 Thu
I/O 模型完整谱系
  • 同步 vs 异步、阻塞 vs 非阻塞(区分两组维度)
  • 5 种 I/O 模型:blocking / nonblocking / multiplexing / signal-driven / async
  • select / poll 原理与局限
  • epoll 内部:红黑树 + 就绪链表,LT vs ET 触发模式
  • kqueue(BSD/macOS)对比
  • Reactor 模式 vs Proactor 模式
  • io_uring:环形队列设计、内核轮询
  • POSIX aio 与 libaio
Day 12 Fri 🔧
LAB:内存与 I/O 动手
  • 用 Python selectors 模块写 epoll 回声服务器
  • 测试 1000 并发连接
  • 用 mmap 加速大文件处理(模拟模型权重加载)
  • /proc/[pid]/maps 与 /proc/[pid]/smaps 详读
  • vmstat / free / sar 命令解读
  • 用 valgrind 检测内存泄漏
Day 13 Sat 🔐
系统调用追踪与 eBPF 入门
  • strace 深入:-f 跟踪子进程、-e 过滤、-c 统计
  • ltrace 跟踪动态库函数
  • ftrace 内核函数追踪
  • eBPF 是什么、与 kprobe/uprobe 关系
  • bpftrace 第一个程序:统计 open() 调用
  • bcc 工具包导览(execsnoop / opensnoop / tcpconnect / biosnoop)
  • eBPF 在安全监控的前景
  • 动手:写 bpftrace 监控可疑 exec
Day 14 Sun 🌐
文件系统 + 零拷贝 + 周复盘
  • VFS 抽象层、操作表
  • inode、目录项 dentry、硬链接 vs 软链接
  • ext4 / xfs / btrfs / zfs 简介与取舍
  • 磁盘 I/O 路径全景:syscall → VFS → fs → block → scheduler → device
  • 块设备调度器:noop / deadline / cfq / mq-deadline
  • 零拷贝技术:sendfile / splice / MSG_ZEROCOPY 原理
  • fsync / O_DIRECT 何时用
  • 为什么大模型 checkpoint 加载慢;如何加速
  • 周复盘 + Week 3 预告

Week 03 · 网络 Part 1:TCP/IP 与 HTTP

Day 15 Mon
网络分层与 IP
  • OSI 7 层 vs TCP/IP 4 层模型对比
  • 物理层 + 数据链路层(以太网帧、MAC 地址、交换机)
  • 网络层:IP 头格式、TTL、分片
  • ICMP(ping、traceroute 原理)
  • ARP 协议、ARP 缓存
  • IPv4 寻址、子网掩码、CIDR 记号
  • 私有 IP 范围、NAT 工作原理
  • IPv6 概览
Day 16 Tue
TCP 深入
  • TCP 头格式 + 关键字段
  • 三次握手为什么不是两次或四次
  • 四次挥手与 TIME_WAIT 的 2MSL
  • TCP 状态机完整图
  • 序列号、确认号、滑动窗口
  • 拥塞控制:慢启动 / 拥塞避免 / 快重传 / 快恢复
  • 算法演进:Reno / Cubic / BBR
  • Nagle 算法 vs 延迟 ACK 之争
  • SO_REUSEADDR / SO_REUSEPORT
Day 17 Wed
UDP + HTTP 协议演进
  • UDP 头与典型应用(DNS、QUIC、视频)
  • HTTP/1.0:请求-响应、短连接
  • HTTP/1.1:keep-alive、pipelining、chunked
  • HTTP/2:二进制分帧、多路复用、Server Push、HPACK 头压缩
  • HTTP/3 与 QUIC:UDP-based、0-RTT、连接迁移
  • HTTP 方法语义、状态码体系
  • 关键 Header:Content-Type、Host、Authorization、Cookie
  • CORS 跨域机制
Day 18 Thu
TLS / HTTPS
  • 对称加密 vs 非对称加密回顾
  • PKI 体系:CA、证书链、Root CA
  • X.509 证书结构
  • TLS 1.2 握手完整流程
  • TLS 1.3 改进:1-RTT 握手、0-RTT 恢复
  • SNI 服务器名指示
  • ALPN 协议协商
  • mTLS 双向认证
  • 经典漏洞:Heartbleed、BEAST、POODLE、降级攻击
Day 19 Fri 🔧
LAB:网络动手
  • curl 高级用法:-v、--trace、-w 自定义输出
  • tcpdump 基础抓包语法
  • Wireshark 看 TCP 三次握手、TLS 握手
  • ss / netstat / lsof -i 看连接状态
  • nc 工具:建 TCP/UDP、传文件、端口扫描
  • dig / nslookup 查询 DNS 各类记录
  • traceroute 看路径、mtr 实时监控
Day 20 Sat 🔐
网络抓包与协议分析
  • tcpdump 表达式语法(host/port/proto/and/or/not)
  • 过滤特定流量、保存 pcap
  • Wireshark 显示过滤器
  • 跟踪 TCP 流、HTTP 重组
  • TLS 解密:SSLKEYLOGFILE 环境变量
  • 中间人攻击:ARP 欺骗 + sslstrip
  • DNS 投毒原理
  • DoH / DoT 隐私保护
  • 动手:抓自己机器的 HTTPS,解密看明文
Day 21 Sun 🌐
DNS + CDN + 周复盘
  • DNS 完整协议:报文格式、UDP/TCP、端口 53
  • 记录类型:A、AAAA、CNAME、MX、TXT、NS、SOA、SRV
  • 递归查询 vs 迭代查询
  • 权威 DNS vs 缓存 DNS
  • DNS over UDP 的 512 字节限制与 EDNS
  • CDN 原理:边缘节点、回源、缓存策略
  • Anycast 路由
  • HTTP 缓存:Cache-Control / ETag / Last-Modified / Vary
  • 周复盘 + Week 4 预告

Week 04 · 网络 Part 2:服务通信与中间件

Day 22 Mon
应用层协议全景
  • REST 设计原则(无状态、资源、HATEOAS)
  • RESTful API 最佳实践与反模式
  • gRPC:基于 HTTP/2、Protobuf 编码
  • gRPC 4 种调用模式(unary/stream)
  • GraphQL 概览与适用场景
  • WebSocket:升级握手、帧格式、心跳
  • SSE(Server-Sent Events)与 LLM 流式输出
  • 长轮询 / 长连接 / WebSocket / SSE 取舍
Day 23 Tue
负载均衡
  • L4(传输层)vs L7(应用层)负载均衡
  • 调度算法:轮询、加权轮询、最少连接、随机、源 IP 哈希
  • 一致性哈希在 LB 中的应用
  • 健康检查机制(主动/被动)
  • 会话保持 sticky session
  • LVS 内核态 LB(DR/TUN/NAT 模式)
  • HAProxy vs Nginx vs Envoy 对比
  • 云负载均衡产品:AWS ELB/ALB/NLB
Day 24 Wed
Nginx 深入
  • master / worker 进程模型
  • 事件驱动 + epoll
  • 配置文件层级:http / server / location
  • 反向代理 vs 正向代理
  • upstream 模块与 LB 算法
  • 静态资源、gzip、缓存配置
  • 限流:limit_req(令牌桶)、limit_conn
  • SSL 终止与 SSL passthrough
Day 25 Thu
服务通信进阶
  • 服务发现:客户端发现 vs 服务端发现
  • 注册中心:Consul / etcd / Nacos / Eureka 对比
  • 心跳与健康检查协议
  • 容错三剑客:超时、重试、熔断
  • 降级策略
  • 限流算法:计数器 / 漏桶 / 令牌桶 / 滑动窗口
  • 限流的层级(接入层、应用层、用户级)
Day 26 Fri 🔧
LAB:服务通信动手
  • 用 Python grpcio 写 server + client
  • 定义 .proto、生成代码
  • 用 Nginx 反向代理两个后端
  • 用 ab / wrk 压测,观察 P50/P95/P99
  • 给 LLM API 加流式 SSE 输出
Day 27 Sat 🔐
反弹 shell 与 C2 框架
  • bind shell vs reverse shell 概念
  • 各种语言的 reverse shell payload(bash / python / nc / powershell)
  • 为什么 reverse shell 能绕过防火墙(egress 通常开放)
  • 出网技巧:DNS tunnel、ICMP tunnel、HTTPS C2
  • C2 框架设计:Beacon、心跳、jitter
  • 主流 C2:Cobalt Strike / Sliver / Mythic / Havoc
  • 检测思路:异常出网、长连接、域名特征、JA3 指纹
  • 动手:在本地起 nc listener,用 Python payload 反弹
Day 28 Sun 🌐
综合:一个 HTTP 请求的完整旅程 + 周复盘
  • 从浏览器到 K8s 后端的完整链路追踪
  • 各层延迟分布(DNS / TCP / TLS / 应用)
  • 常见性能瓶颈定位
  • 网络故障诊断方法论
  • 与 Agent 安全:用户请求 → 网关 → 推理服务 → 工具调用的攻击面
  • 周复盘 + Phase 1 总结 + Phase 2 预告
Phase 2 · 硬件 + LLM 推理(Week 5-8)

Week 05 · CPU 架构

Day 29 Mon
CPU 工作原理
  • 冯诺依曼模型与哈佛架构
  • CPU 内部组件:ALU / 寄存器 / 控制单元
  • 指令周期:fetch / decode / execute / writeback
  • 时钟频率、IPC、性能公式
  • x86 vs ARM 指令集架构对比
  • CISC vs RISC 哲学
  • 32 位 vs 64 位
Day 30 Tue
流水线、分支预测、乱序
  • 5 级经典流水线
  • 流水线冒险:结构冒险 / 数据冒险 / 控制冒险
  • 转发 forwarding 与气泡
  • 分支预测:静态 / 动态 / BTB
  • 超标量 superscalar
  • 乱序执行 OoO、保留站、重排序缓冲
  • 推测执行 speculative execution
  • 推测执行的安全代价(Spectre 根源)
Day 31 Wed
缓存层级
  • L1 / L2 / L3 缓存的延迟与大小
  • 缓存行 cache line(典型 64 字节)
  • 映射方式:直接、组相联、全相联
  • 替换策略:LRU / Random / LFU
  • 写策略:write-through vs write-back,write-allocate
  • false sharing 与对齐填充
  • 缓存友好的数据结构设计
  • 预取 prefetch
Day 32 Thu
SIMD + 多核 + 内存一致性
  • SIMD 思想,SSE / AVX / AVX-512 演进
  • 向量化是怎么加速矩阵运算的
  • SMP / UMA / NUMA 概览
  • MESI 缓存一致性协议
  • 内存屏障:编译屏障 vs CPU 屏障
  • happens-before 关系
  • x86 vs ARM 内存模型对比(强 vs 弱)
  • 双重检查锁定 DCL 的陷阱
Day 33 Fri 🔧
LAB:CPU 性能动手
  • perf top 看热点函数
  • perf stat 看 cache miss / branch miss
  • 实验:缓存友好 vs 缓存不友好的矩阵遍历(行优先 vs 列优先)
  • 用 numpy 看 SIMD 加速倍率
  • cpuinfo 解读:CPU 特性、缓存大小
  • 用 dmidecode 看硬件信息
Day 34 Sat 🔐
侧信道攻击
  • Spectre 攻击原理:训练分支预测器 + cache timing
  • Meltdown:乱序执行 + 权限检查时机
  • cache timing 攻击家族(Prime+Probe、Flush+Reload)
  • Rowhammer 硬件级位翻转攻击
  • 缓解措施:retpoline、KPTI、microcode 更新
  • 云上多租户 GPU 的侧信道关注点
  • 动手:跑一个 cache-timing PoC
Day 35 Sun 🌐
CPU 与 LLM 推理的关系 + 周复盘
  • LLM 推理中 CPU 扮演什么角色(tokenization、scheduling、preprocessing)
  • 为什么 transformer 推理瓶颈通常不在 CPU
  • CPU 优化对吞吐的影响(数据预处理 pipeline)
  • 异构计算的协调成本
  • 周复盘 + Week 6 预告

Week 06 · 内存层级 + NUMA + LLM memory-bound 分析

Day 36 Mon
内存系统全貌
  • 内存延迟与带宽的数量级
  • DDR4 vs DDR5 vs HBM
  • 内存控制器、内存通道
  • 带宽与延迟的关系
  • Roofline 模型:compute-bound vs memory-bound 的判断
  • 算术强度 arithmetic intensity 概念
Day 37 Tue
NUMA 架构
  • 为什么有 NUMA:多 socket 系统的现实
  • 本地节点 vs 远程节点访问代价
  • NUMA 拓扑查看:numactl --hardware、lstopo
  • numactl 工具:进程绑定 NUMA
  • 内存分配策略:local / preferred / interleave / bind
  • 多卡训练中的 NUMA 影响
  • GPU 与 CPU NUMA 节点的拓扑关系
Day 38 Wed
为什么 LLM 推理是 memory-bound
  • decoder-only 推理的两个阶段:prefill vs decode
  • decode 阶段的算术强度推导
  • KV cache 的内存消耗公式
  • batching 为何能提升 GPU 利用率(提升算术强度)
  • 量化为何能加速 decode(降低 memory bandwidth 需求)
  • 分析 LLama-2 7B / 70B 的理论吞吐上限
Day 39 Thu
内存优化技术
  • 大页 huge page / 1GB page 的应用
  • 预取 prefetch 指令
  • 内存对齐与 SIMD 加速
  • 数据布局:AoS vs SoA、对模型推理的影响
  • cache-oblivious 算法思路
  • NUMA-aware 内存分配
  • 透明大页 THP 与性能抖动
Day 40 Fri 🔧
LAB:内存性能动手
  • STREAM benchmark 测内存带宽
  • 用 mlock 锁定页面
  • 用 numactl 改变进程的 NUMA 策略
  • perf 测 cache miss / TLB miss / page fault
  • vmstat 解读 si/so/buff/cache
  • 实验:跨 NUMA 节点访问的性能损失
Day 41 Sat 🔐
内存安全攻防
  • 栈帧结构、函数调用约定
  • 经典栈溢出 + shellcode 注入
  • 缓解机制:Stack canary、NX/DEP、ASLR、PIE、CFI
  • ROP / JOP 绕过 NX
  • 堆溢出、UAF(use-after-free)、double free
  • C/C++ 不安全的根源;Rust 借用检查器如何解决
  • fuzzing 工具:AFL++ / libFuzzer 概念
  • 动手:跑一个简单的栈溢出 PoC(DEP/ASLR 关闭的环境)
Day 42 Sun 🌐
内存视角看 vLLM PagedAttention + 周复盘
  • 传统 KV cache 的内存碎片问题
  • PagedAttention 的核心思想(借鉴 OS 虚拟内存)
  • block table 数据结构
  • preemption 与 swap 机制
  • prefix caching 实现
  • 周复盘 + Week 7 预告

Week 07 · GPU 架构

Day 43 Mon
GPU 基础
  • GPU vs CPU 设计哲学:高并行 vs 低延迟
  • NVIDIA GPU 演进:V100 → A100 → H100 → H200 → B200
  • 流式多处理器 SM 内部结构
  • CUDA core vs Tensor core 用途
  • SIMT 执行模型
  • warp(32 线程)调度
  • FP32 / TF32 / FP16 / BF16 / FP8 / INT8 / INT4 单元
Day 44 Tue
CUDA 编程模型
  • thread / warp / block / grid 层级
  • kernel 启动语法 <<<blocks, threads>>>
  • GPU 内存层级:register / shared / L1 / L2 / global / HBM
  • cudaMalloc / cudaMemcpy / cudaFree
  • 第一个 CUDA kernel:向量加
  • cooperative groups
  • CUDA stream 与异步
Day 45 Wed
GPU 性能要点
  • occupancy 概念与计算
  • memory coalescing(合并访存)
  • shared memory bank conflict
  • warp divergence 性能代价
  • kernel fusion 思想
  • Profiler:Nsight Compute / Nsight Systems
  • 看 SM 利用率 vs HBM 带宽利用率
Day 46 Thu
GPU 互联
  • PCIe 历史与带宽(Gen3/4/5)
  • NVLink 与 NVSwitch 拓扑
  • GPUDirect RDMA
  • NCCL:AllReduce / AllGather / Broadcast 原理
  • Ring vs Tree AllReduce 算法
  • 多机多卡通信:InfiniBand / RoCE
  • nvidia-smi topo -m 看拓扑
Day 47 Fri 🔧
LAB:GPU 动手
  • nvidia-smi 完整字段解读(温度、功耗、显存、利用率)
  • nvtop / nvitop 实时监控
  • PyTorch profiler 看 GPU kernel
  • 用 nsight systems 看 transformer 推理 timeline
  • 对比 PyTorch eager vs torch.compile 性能
Day 48 Sat 🔐
GPU 多租户安全
  • MIG(Multi-Instance GPU)硬件级隔离
  • MPS(Multi-Process Service)软件共享
  • 时间片共享模式风险
  • 显存残留与清零
  • CUDA context 隔离边界
  • 已知 GPU 漏洞案例(CVE)
  • 侧信道在 GPU 上的可能性
  • 多租户推理服务的隔离设计建议
Day 49 Sun 🌐
GPU 选型与成本分析 + 周复盘
  • 为什么大模型推理推荐 H100 而不是 A100(FP8 + HBM3)
  • H100 vs H200 关键差异
  • 各种 GPU 的成本/性能比
  • 推理 vs 训练对 GPU 的不同需求
  • 租赁 vs 自建
  • 周复盘 + Week 8 预告

Week 08 · LLM 推理工程深入

Day 50 Mon
推理基础
  • autoregressive 生成完整流程
  • prefill vs decode 阶段差异
  • logits 处理 pipeline
  • sampling 算法:greedy / temperature / top-k / top-p / typical
  • repetition penalty / frequency penalty
  • beam search 与 LLM 取舍
  • stop tokens / EOS 处理
Day 51 Tue
KV cache 全解
  • KV cache 的本质:避免重复 attention 计算
  • 内存占用公式:2 × layer × head × dim × seq × batch × bytes
  • PagedAttention 实现细节
  • prefix sharing / prefix caching
  • KV cache offload 到 CPU/SSD
  • KV cache 压缩与量化
  • 大上下文窗口(128K+)的挑战
Day 52 Wed
量化技术
  • 数值类型回顾:FP32 / FP16 / BF16 / FP8 / INT8 / INT4
  • PTQ vs QAT
  • 权重量化 vs 激活量化 vs KV cache 量化
  • GPTQ 算法原理
  • AWQ activation-aware 量化
  • SmoothQuant 思路
  • 精度评估方法
  • 实际选型建议
Day 53 Thu
批处理、调度与解码加速
  • static batching 的局限
  • continuous batching / in-flight batching 原理
  • chunked prefill
  • speculative decoding 算法
  • medusa / lookahead decoding
  • FlashAttention v1/v2/v3
  • vLLM、SGLang、TensorRT-LLM、TGI 取舍
Day 54 Fri 🔧
LAB:vLLM 部署动手
  • 装 vLLM,启动 7B 模型
  • OpenAI 兼容 API 测试
  • 压测:TTFT、TPOT、throughput
  • 参数调优:max-model-len、gpu-memory-utilization、max-num-seqs
  • 看 vLLM 调度日志
  • 对比不同 batching 策略
Day 55 Sat 🔐
AI 推理服务攻击面
  • 模型权重窃取:API 推断 + 蒸馏
  • 对抗输入攻击:jailbreak / 越权 prompt
  • 资源耗尽:超长 prompt、循环、重复 token
  • 时间侧信道:通过响应时间推断对方 prompt
  • 模型水印技术
  • API 滥用监控
  • 速率限制与配额管理
Day 56 Sun 🌐
Phase 2 综合 + Phase 3 预告
  • 一次推理请求的完整生命周期(从硬件视角)
  • 性能调优 cheat sheet
  • 常见瓶颈快速诊断流程
  • 本阶段复盘 + 容器章节预告
Phase 3 · 容器 + K8s(Week 9-12)

Week 09 · Linux 进阶 + 容器原理

Day 57 Mon
cgroups
  • cgroups v1 vs v2 架构差异
  • 资源子系统:cpu / memory / blkio / pids / net_cls
  • 层次结构
  • 资源配额的实现机制
  • systemd 与 cgroups 的关系
  • 用 systemd-run 创建临时 cgroup
  • 实操:用 cgroup 限制进程 CPU/内存
Day 58 Tue
namespaces
  • 6 大 namespace:PID / NET / MNT / UTS / IPC / USER(+ cgroup, time)
  • 每种 namespace 隔离什么
  • clone() / unshare() / setns() 系统调用
  • unshare 命令
  • nsenter 进入命名空间
  • /proc/[pid]/ns 目录
  • 动手:用 namespaces 手搓 mini container
Day 59 Wed
capabilities + seccomp + LSM
  • Linux capabilities 完整列表
  • cap_drop / cap_add / cap_set_file
  • seccomp-bpf 系统调用过滤
  • seccomp profile 编写
  • AppArmor 路径策略
  • SELinux MAC 强制访问控制
  • LSM (Linux Security Modules) 框架
Day 60 Thu
容器 = namespaces + cgroups + 镜像
  • 容器与虚拟机的本质差异
  • rootfs 与 overlay 文件系统
  • OverlayFS 工作原理
  • 镜像分层与共享
  • runc / containerd / Docker 三层架构
  • OCI 镜像规范 + 运行时规范
  • CRI 接口
Day 61 Fri 🔧
LAB:手搓容器
  • 用 unshare + chroot 跑一个隔离环境
  • 挂载 /proc 让 ps 工作
  • 用 cgroups 限制资源
  • 用 dive 工具拆解 Docker 镜像
  • 用 ctr 直接操作 containerd
Day 62 Sat 🔐
namespace / cgroup 滥用
  • --privileged 容器风险全解
  • 挂载 host /proc 的危险
  • 挂载 docker.sock 的逃逸路径
  • host PID / NET namespace 风险
  • cgroups v1 的信息泄露
  • release_agent 逃逸(CVE-2022-0492)
  • 检测方法:Falco 规则
Day 63 Sun 🌐
容器中的同步与 IPC + 周复盘
  • 容器间网络通信
  • 容器共享 volume
  • 容器间共享 IPC namespace
  • 容器 PID 1 问题(信号处理、僵尸收割)
  • tini / dumb-init 解决方案
  • 周复盘 + Week 10 预告

Week 10 · Docker 深入

Day 64 Mon
Docker 镜像
  • Dockerfile 完整指令集
  • BuildKit 现代构建
  • 多阶段构建模式
  • 镜像优化:distroless / alpine / scratch / chainguard
  • 缓存层与构建效率
  • 镜像签名 cosign / sigstore
  • 镜像扫描 trivy
Day 65 Tue
Docker 运行时
  • docker run 关键参数全解
  • 容器生命周期管理
  • 资源限制:--cpus、--memory、--pids-limit
  • HEALTHCHECK 指令
  • restart policy 完整语义
  • 容器日志驱动
  • docker exec / docker attach
Day 66 Wed
Docker 网络
  • 网络驱动:bridge / host / none / overlay / macvlan
  • bridge 模式 + iptables 端口映射原理
  • 容器互联与内置 DNS
  • 用户自定义网络
  • 跨主机网络 overlay 原理
  • CNM 标准
Day 67 Thu
Docker 存储
  • 数据卷 volume 完整管理
  • 绑定挂载 bind mount
  • tmpfs 挂载
  • OverlayFS / devicemapper / btrfs storage driver
  • 存储驱动选择
  • 数据备份恢复
Day 68 Fri 🔧
LAB:Docker 实战
  • 把 Python LLM 服务 dockerize
  • 多阶段构建优化镜像大小
  • docker-compose 起多服务栈(应用 + Redis + PG)
  • docker stats 监控
  • 用 trivy 扫描镜像漏洞
Day 69 Sat 🔐
容器逃逸
  • 经典 runc 逃逸 CVE-2019-5736 详解
  • CVE-2022-0492 cgroups release_agent
  • --privileged 模式逃逸路径全解
  • docker.sock 暴露逃逸
  • 内核漏洞类:Dirty Pipe / Dirty Cow
  • 防御纵深:rootless / user ns remap / seccomp / AppArmor
  • 动手:在 vuln 镜像里复现逃逸
Day 70 Sun 🌐
容器最佳实践 + 周复盘
  • 12-factor app 原则
  • 容器内日志策略(stdout vs 文件 + sidecar)
  • 信号处理 + 优雅停机
  • 镜像版本管理
  • CI/CD 中的镜像构建
  • 周复盘 + Week 11 预告

Week 11 · K8s 核心

Day 71 Mon
K8s 架构总览
  • control plane vs data plane
  • apiserver / etcd / scheduler / controller-manager
  • kubelet / kube-proxy / container runtime(CRI)
  • CNI / CSI / CRI 接口
  • 一次 kubectl apply 的完整路径
  • 声明式 API 与 reconcile loop
Day 72 Tue
Pod 与生命周期
  • Pod 是最小调度单位的设计动机
  • 多容器 Pod 模式:sidecar / init / ambassador / adapter
  • Pod 生命周期与重启策略
  • liveness / readiness / startup probe
  • 资源请求 vs 限制(requests vs limits)
  • QoS class:Guaranteed / Burstable / BestEffort
  • Pod 调度过程
Day 73 Wed
控制器家族
  • ReplicaSet 基础
  • Deployment:滚动更新 / 回滚 / 暂停
  • StatefulSet:有序、稳定的网络标识、持久存储
  • DaemonSet:每节点一份
  • Job 与 CronJob
  • HorizontalPodAutoscaler
Day 74 Thu
网络与 Service
  • Service 类型:ClusterIP / NodePort / LoadBalancer / ExternalName
  • Endpoints 与 EndpointSlice
  • kube-proxy 模式:iptables vs IPVS
  • Ingress 与 Ingress Controller
  • Gateway API 新标准
  • Network Policy 东西向流量控制
  • headless Service 与 StatefulSet 配合
Day 75 Fri 🔧
LAB:K8s 实战
  • minikube / kind 起本地集群
  • 部署 Deployment + Service + Ingress
  • 滚动更新与回滚演练
  • kubectl 高级用法(jsonpath、--watch、port-forward)
  • 用 k9s 提升效率
  • 排错三板斧:describe / logs / events
Day 76 Sat 🔐
K8s 安全
  • RBAC:Role / ClusterRole / RoleBinding / ClusterRoleBinding
  • ServiceAccount token 工作原理
  • SA token 滥用案例
  • Pod Security Admission (PSA) 替代 PSP
  • Network Policy 最小权限设计
  • etcd 加密静态数据
  • API audit log
  • kube-bench CIS benchmark
Day 77 Sun 🌐
调度 + HPA + 周复盘
  • 调度器原理:filter + score 两阶段
  • nodeSelector / nodeAffinity / podAffinity
  • taints / tolerations 隔离机制
  • HPA 完整工作流(metrics-server + 自定义指标)
  • VPA、Cluster Autoscaler 简介
  • 周复盘 + Week 12 预告

Week 12 · K8s 生态 + 可观测性

Day 78 Mon
GPU 调度
  • nvidia-device-plugin 工作原理
  • GPU 资源声明 nvidia.com/gpu
  • GPU 拓扑感知调度
  • MIG 分配策略
  • 批调度器:Volcano / Kueue / Yunikorn
  • 多租户 GPU 集群设计
Day 79 Tue
配置与密钥
  • ConfigMap 完整用法
  • Secret 与 base64(注意不是加密!)
  • 挂载方式:env / volume / projected
  • External Secrets Operator + Vault/AWS Secrets
  • Sealed Secrets(GitOps 友好)
  • 密钥轮转策略
Day 80 Wed
存储
  • Volume / PersistentVolume / PVC / StorageClass
  • CSI 驱动机制
  • 动态供应
  • 访问模式:RWO / ROX / RWX
  • StatefulSet 与 PVC 模板
  • 有状态服务的备份恢复
Day 81 Thu
Operator + Helm
  • CRD 自定义资源定义
  • Controller 模式 + reconcile
  • Operator SDK / Kubebuilder 简介
  • Helm chart 结构
  • Helm 模板语法
  • Operator 案例:cert-manager / prometheus-operator / kubevirt
Day 82 Fri 🔧
LAB:可观测性栈
  • 部署 prometheus-operator
  • ServiceMonitor 抓 LLM 服务指标
  • Grafana 看 P99 延迟、QPS、GPU 利用率
  • Loki + promtail 日志聚合
  • Jaeger 链路追踪初步
  • 告警规则 + Alertmanager
Day 83 Sat 🔐
运行时安全检测
  • Falco 基于 syscall 的检测
  • Falco 规则编写
  • Tetragon 基于 eBPF 的检测
  • Cilium + Tetragon 协同
  • 检测规则示例:exec 异常、文件访问、网络
  • kube-bench 基线扫描
  • kube-hunter 主动测试
Day 84 Sun 🌐
Phase 3 综合 + Phase 4 预告
  • 一个完整 LLM 推理服务在 K8s 上的部署形态
  • GPU 节点池 + Cluster Autoscaler
  • Service Mesh + 监控 + 安全完整栈
  • 本阶段复盘
Phase 4 · Go + 服务化(Week 13-16)

Week 13 · Go 语言 i

Day 85 Mon
为什么学 Go + 入门
  • Go 设计哲学:简洁、并发、工程化
  • 与 Python / Java / Rust 对比
  • 在云原生生态的地位
  • 安装与开发环境(VSCode + gopls)
  • go.mod / go.sum / GOPATH / GOPROXY
  • hello world + 命令行参数
  • 编译与跨平台构建
Day 86 Tue
Go 基础语法
  • 类型系统:基本类型、值类型 vs 引用类型
  • 变量声明(var / :=)、零值
  • 控制流:if / for / switch / for-range
  • 函数:多返回值、命名返回值、可变参数
  • 错误处理:error 接口与惯例
  • defer / panic / recover
  • 数组 vs slice vs map
Day 87 Wed
struct + interface + 组合
  • struct 定义与方法
  • 指针接收者 vs 值接收者
  • interface:鸭子类型 + 隐式实现
  • 空接口 interface{} / any
  • 类型断言与 type switch
  • 嵌入式组合(没有继承)
  • 包管理与可见性(首字母大小写)
Day 88 Thu
并发:goroutine + channel
  • goroutine 是什么(用户态轻量线程)
  • Go runtime GMP 调度模型
  • channel:无缓冲 vs 有缓冲
  • channel 方向、关闭信号
  • select 多路复用
  • 经典并发模式:fan-out / fan-in / pipeline / worker pool
  • "Don't communicate by sharing memory; share memory by communicating"
Day 89 Fri 🔧
LAB:Go 实战
  • 写并发 web 爬虫
  • 用 channel + worker pool 控制并发数
  • 用 go test 写单元测试
  • pprof 性能分析(CPU、内存、goroutine)
  • race detector 检测数据竞争
Day 90 Sat 🔐
Go 安全编码
  • SSRF 模式(net/http 客户端误用)
  • 反序列化风险(gob、json、xml)
  • SQL 注入 + 参数化查询
  • 命令注入(exec.Command vs system shell)
  • goroutine 泄漏排查
  • unsafe 包的危险
  • 静态分析工具:gosec / staticcheck
Day 91 Sun 🌐
sync + context + 周复盘
  • sync.Mutex / sync.RWMutex / sync.Once
  • sync.WaitGroup / sync.Map / sync.Pool
  • 原子操作 sync/atomic
  • context.Context:取消、超时、传值
  • 错误处理最佳实践(errors.Is / As / Wrap)
  • 周复盘 + Week 14 预告

Week 14 · Go 语言 ii + 微服务基础

Day 92 Mon
HTTP 服务
  • net/http 包基础
  • handler 与 ServeMux
  • 中间件模式
  • 路由库:gin / chi / echo
  • JSON 编解码 + struct tag
  • 请求验证 validator
  • 优雅停机
Day 93 Tue
gRPC 服务
  • Protobuf 定义、IDL
  • protoc 生成 Go 代码
  • server / client 完整写法
  • 4 种调用模式实战
  • interceptor(拦截器)
  • 错误码 / 元数据 / 超时
  • gRPC reflection
Day 94 Wed
数据库访问
  • database/sql 包
  • 连接池配置
  • sqlx 增强
  • GORM ORM
  • 事务管理
  • migration 工具(goose、migrate)
Day 95 Thu
服务注册与发现
  • 注册中心:Consul / etcd / Nacos
  • 客户端发现 vs 服务端发现
  • 心跳与健康检查
  • 配置中心模式
  • 分布式配置热更新
  • k8s 内置服务发现(DNS + Service)
Day 96 Fri 🔧
LAB:完整微服务
  • 写一个 Go HTTP + gRPC 双协议服务
  • 调另一个 service
  • 接 PostgreSQL
  • 单元测试 + 集成测试
  • 构建 Docker 镜像
  • 本地 docker-compose 联调
Day 97 Sat 🔐
内网渗透概览
  • 红队 kill chain:侦察 → 武器化 → 投递 → 利用 → 持久化 → 横向移动 → 目标达成
  • 信息收集:端口扫描、服务识别(nmap / masscan)
  • 横向移动:SOCKS 代理(frp / Stowaway / nps)
  • SSH tunneling 技巧
  • 持久化:cron / systemd unit / SSH key
  • 痕迹清理思路
  • 蓝队视角的检测点(异常进程、可疑出网、日志异常)
Day 98 Sun 🌐
Go + Python 协作 + 周复盘
  • 典型架构:Go 写网关 + Python 写推理
  • 跨语言通信选择(gRPC vs HTTP vs IPC)
  • 共享数据结构(protobuf 作为契约)
  • 性能对比与场景选型
  • 周复盘 + Week 15 预告

Week 15 · 消息中间件

Day 99 Mon
为什么用消息队列
  • 同步 vs 异步通信
  • 四大用途:解耦、削峰、广播、缓冲
  • 消息语义:at-most-once / at-least-once / exactly-once
  • 消息一致性难题
  • 选型决策树
Day 100 Tue
Kafka 深入
  • 架构:Producer / Broker / Consumer / Topic / Partition / Replica
  • 持久化机制(log segment)
  • Consumer group 与分区分配策略
  • offset 管理
  • ISR、Leader Election
  • Exactly-once 实现(事务 + 幂等 producer)
  • 性能调优要点
Day 101 Wed
RabbitMQ + Pulsar
  • AMQP 0.9.1 协议
  • Exchange / Queue / Binding / Routing key
  • 4 种 Exchange 路由模式
  • 消息确认与重试
  • 死信队列 DLX
  • Pulsar 与 Kafka 对比(存算分离)
Day 102 Thu
Redis 作为消息队列
  • Pub/Sub 模式(at-most-once)
  • Stream 类型:XADD / XREAD / XGROUP
  • Consumer group + 确认机制
  • 与专业 MQ 的取舍
  • 典型场景:异步任务、实时消息
Day 103 Fri 🔧
LAB:Kafka 实战
  • 起 KRaft 模式的单机 Kafka
  • 用 Go / Python 写 producer + consumer
  • 测试消息重放
  • 观察 consumer lag
  • 用 kafdrop 看 broker 状态
Day 104 Sat 🔐
API 安全
  • 认证:API Key / OAuth 2.0 / OIDC / JWT
  • JWT 误用案例:none 算法、key confusion、未验签
  • IDOR(Insecure Direct Object Reference)
  • SSRF 完整分类与利用
  • 签名机制:HMAC、时间戳防重放
  • BOLA / BFLA(API1-API2 OWASP API Top 10)
  • 速率限制策略
Day 105 Sun 🌐
LLM 异步服务设计 + 周复盘
  • 同步推理 vs 异步任务的取舍
  • 队列削峰用于 LLM
  • 批量推理任务架构
  • Webhook 回调模式
  • 周复盘 + Week 16 预告

Week 16 · API 网关 + 服务网格

Day 106 Mon
API 网关
  • 网关的 5 大职责:路由 / 鉴权 / 限流 / 日志 / 协议转换
  • Kong / APISIX / Traefik / Envoy 对比
  • 插件机制
  • 灰度发布与金丝雀
  • 蓝绿部署
  • 多租户网关设计
Day 107 Tue
限流 + 熔断 + 降级
  • 限流算法对比与实现
  • 分布式限流(Redis + Lua)
  • 熔断器模式:closed / open / half-open
  • Hystrix / Resilience4j / Sentinel
  • 降级策略与默认值
  • 客户端限流 vs 服务端限流
Day 108 Wed
Service Mesh 与 Istio
  • Service Mesh 是什么
  • 数据平面(Envoy)vs 控制平面(istiod)
  • Sidecar 模式
  • Istio 资源:VirtualService / DestinationRule / Gateway
  • 流量切分与灰度
  • 策略与遥测
  • Linkerd 对比
Day 109 Thu
可观测性进阶
  • OpenTelemetry 标准
  • tracing 数据模型:span / trace / context
  • 三大支柱:metrics / logs / traces
  • 采样策略(head-based vs tail-based)
  • 关联三大信号
  • eBPF 观测:Pixie / Parca
Day 110 Fri 🔧
LAB:网关 + 监控
  • 用 APISIX 起网关
  • 配置 JWT 鉴权 + 限流插件
  • 接 Prometheus 抓指标
  • 压测触发限流
  • 看 Grafana 面板
Day 111 Sat 🔐
零信任 + mTLS
  • 零信任理念:never trust, always verify
  • BeyondCorp 模型
  • mTLS 工作原理与实现
  • SPIFFE / SPIRE 工作负载身份
  • 服务身份 vs 用户身份
  • 身份联邦
  • K8s 中的零信任落地
Day 112 Sun 🌐
Phase 4 综合 + Phase 5 预告
  • 一个完整的微服务架构图绘制
  • 从 ingress → 网关 → mesh → 服务 → 数据库的完整路径
  • 本阶段复盘 + 数据库章节预告
Phase 5 · 数据库与存储(Week 17-20)

Week 17 · PostgreSQL

Day 113 Mon
关系数据库基础
  • 关系模型与集合理论基础
  • SQL 关键语法快速过
  • 范式:1NF / 2NF / 3NF / BCNF
  • 反范式的取舍
  • PostgreSQL vs MySQL 对比
  • 常见数据类型与选型
Day 114 Tue
索引
  • B-tree 索引原理(多叉平衡树)
  • Hash / GIN(全文 + 数组)/ GiST(几何) / BRIN
  • 聚簇 vs 非聚簇索引
  • 覆盖索引、回表
  • 联合索引最左前缀原则
  • 索引失效场景
  • 部分索引、表达式索引
Day 115 Wed
事务 + 隔离 + MVCC
  • ACID 完整含义
  • 隔离级别:read uncommitted / committed / repeatable read / serializable
  • 4 大异常:脏读 / 不可重复读 / 幻读 / 写偏
  • MVCC 原理(PG 多版本实现)
  • WAL 预写日志
  • VACUUM 与表膨胀
  • 死锁检测
Day 116 Thu
查询优化
  • EXPLAIN / EXPLAIN ANALYZE 解读
  • 统计信息 ANALYZE
  • 优化器原理
  • Join 算法:nested loop / hash join / merge join
  • 常见慢查询模式
  • pg_stat_statements 找慢查询
Day 117 Fri 🔧
LAB:PG 实战
  • 本地起 PG,建表
  • 百万行数据生成
  • 对比有无索引的查询性能
  • 看执行计划演变
  • pgbench 压测
  • 用 pgcli 提升体验
Day 118 Sat 🔐
SQL 注入深入
  • 经典 union-based 注入
  • boolean-based 盲注
  • time-based 盲注
  • 二阶注入
  • ORM 绕过案例
  • NoSQL 注入
  • 防御:参数化查询、最小权限、WAF
  • sqlmap 工具用法
Day 119 Sun 🌐
复制 + 备份 + 周复盘
  • 流复制(物理复制)
  • 逻辑复制:发布订阅
  • 同步 vs 异步复制
  • 读写分离架构
  • PITR 时间点恢复
  • pg_dump / pg_basebackup
  • 周复盘 + Week 18 预告

Week 18 · Redis

Day 120 Mon
Redis 基础 + 数据结构
  • 5 大基础类型:string / list / hash / set / sorted set
  • 高级类型:HyperLogLog / Bitmap / Stream / GEO
  • 内部实现:SDS / 跳表 / ziplist / intset
  • 单线程模型 + IO 多路复用
  • 6.0+ 多线程网络
  • 过期策略
Day 121 Tue
持久化
  • RDB 快照原理
  • AOF 日志(append-only file)
  • AOF 重写
  • 混合持久化(4.0+)
  • 持久化选择权衡
  • 故障恢复流程
Day 122 Wed
集群
  • 主从复制(PSYNC)
  • 哨兵 Sentinel:failover、quorum
  • Cluster 模式:16384 槽位、CRC16
  • 客户端路由(MOVED / ASK)
  • 一致性哈希 vs 槽位映射
  • 跨槽位事务限制
Day 123 Thu
使用模式与陷阱
  • 缓存模式:cache-aside / read-through / write-through / write-behind
  • 缓存穿透 / 击穿 / 雪崩 + 各自方案
  • 分布式锁:SET NX EX + Lua + token 校验
  • Redlock 算法及争议
  • 限流:固定窗口 / 滑动窗口 / 令牌桶(Lua 实现)
  • 大 key / 热 key 问题
Day 124 Fri 🔧
LAB:Redis 实战
  • 起 3 主 3 从 cluster
  • 性能测试 redis-benchmark
  • 模拟缓存雪崩 + 验证缓解方案
  • 写 Lua 脚本实现分布式限流
  • 用 RedisInsight 看数据
Day 125 Sat 🔐
Redis 安全
  • 未授权访问漏洞历史(默认无密码)
  • 主从复制 RCE 漏洞详解
  • 恶意 Lua 脚本
  • 缓存投毒攻击场景
  • 慢查询 DoS
  • 防御:ACL(6.0+)、bind、protected-mode、密码、rename-command
Day 126 Sun 🌐
LLM 服务中的 Redis + 周复盘
  • 用 Redis 做 LLM 限流 + 配额
  • 会话存储(多轮对话上下文)
  • KV cache 元数据
  • 实时排行榜(Tool 调用统计)
  • 周复盘 + Week 19 预告

Week 19 · 向量数据库 + RAG

Day 127 Mon
向量数据库基础
  • 为什么需要向量数据库(embedding 时代)
  • 向量空间与相似度度量:cosine / dot product / Euclidean
  • 暴力检索的代价
  • 近似最近邻 ANN 算法概览
  • HNSW 算法详解(分层导航图)
  • IVF 倒排索引
  • PQ 乘积量化压缩
  • 召回率 vs 速度的权衡
Day 128 Tue
主流向量数据库对比
  • FAISS(Meta,库非服务)
  • Milvus(云原生、分布式)
  • pgvector(PG 扩展、SQL 友好)
  • Qdrant(Rust 实现)
  • Weaviate(带 schema、混合检索)
  • Chroma(轻量、开发友好)
  • 选型决策矩阵
Day 129 Wed
RAG 架构
  • RAG pipeline 全景
  • chunking 策略:固定大小 / 语义 / 递归
  • embedding 模型选择
  • 检索 + reranker 两阶段
  • hybrid search(向量 + BM25)
  • context 拼接策略
  • 评估指标:召回@k、MRR、答案准确率
Day 130 Thu
Embedding 工程
  • 常用 embedding 模型对比(OpenAI、BGE、E5、Cohere)
  • 向量维度选择
  • 量化 embedding(节省存储)
  • 多模态 embedding(CLIP 等)
  • 领域适配与微调
  • 批量 embedding 优化
Day 131 Fri 🔧
LAB:RAG 端到端
  • 用 pgvector 建本地 RAG
  • chunk + embed + 索引化
  • 查询 + 测召回率
  • 加入 reranker(cohere-rerank 或开源)
  • 评测一组 ground truth
Day 132 Sat 🔐
检索投毒 + indirect prompt injection(重点)
  • 知识库投毒攻击模型
  • 恶意文档构造(SEO style + prompt 注入)
  • indirect prompt injection 完整案例库
  • 跨用户信息泄露场景
  • 工具调用劫持
  • 防御:内容过滤、来源标记、prompt 隔离、输出审查
  • SecGPT 等防御框架
Day 133 Sun 🌐
向量数据库性能调优 + 周复盘
  • 索引参数调优(HNSW M / ef)
  • 分片与副本
  • 预热与冷启动
  • 更新策略
  • 周复盘 + Week 20 预告

Week 20 · 对象存储 + 时序数据库 + 数据安全

Day 134 Mon
对象存储
  • 对象存储 vs 块存储 vs 文件存储
  • S3 协议核心 API
  • 桶 / 对象 / 版本
  • 多部分上传 multipart upload
  • 预签名 URL(临时访问授权)
  • 生命周期策略
  • 跨区复制
  • MinIO 自建
Day 135 Tue
时序数据库
  • 时序数据特性(时间维度、追加为主)
  • Prometheus TSDB 内部结构
  • InfluxDB / VictoriaMetrics / TimescaleDB 对比
  • 压缩算法:delta-of-delta、Gorilla
  • 下采样 + 保留策略
  • PromQL 入门
  • 用于 LLM 监控的指标设计
Day 136 Wed
大数据存储概览
  • HDFS 设计基础
  • Parquet / ORC 列式存储
  • 数据湖 vs 数据仓库 vs 湖仓一体
  • Delta Lake / Iceberg / Hudi
  • LLM 训练数据 pipeline 视角
  • 对象存储 + 元数据 表的现代架构
Day 137 Thu
存储选型实战
  • OLTP vs OLAP vs 时序 vs 向量 vs 对象 决策树
  • Agent 安全产品的完整存储栈设计
  • 会话数据 / 审计日志 / 知识库 / 模型权重各自落地
  • 成本与性能权衡
Day 138 Fri 🔧
LAB:MinIO + Prometheus
  • 起 MinIO 单机
  • 用 boto3 操作 S3 API
  • 生命周期策略实验
  • 起 Prometheus 抓自定义 metrics
  • 用 Thanos / Mimir 实现长期存储
Day 139 Sat 🔐
数据脱敏 + 密钥管理
  • 数据分类分级(公开 / 内部 / 机密 / 高度机密)
  • 脱敏策略:masking / tokenization / pseudonymization / 差分隐私
  • 加密:传输中(TLS)+ 静态(KMS / SSE)
  • 密钥管理:Vault / AWS KMS / GCP KMS
  • SOPS GitOps 友好密钥
  • 密钥轮转
  • BYOK / HYOK 模式
Day 140 Sun 🌐
Phase 5 综合 + Phase 6 预告
  • Agent 安全产品的完整数据栈
  • 用户数据流 / 审计流 / 模型流
  • 本阶段复盘 + 分布式章节预告
Phase 6 · 分布式 + 综合实战(Week 21-24)

Week 21 · 分布式系统理论

Day 141 Mon
分布式系统基础
  • 为什么分布式系统难
  • 8 大错误假设(Fallacies of Distributed Computing)
  • 时钟问题(绝对时间不可靠)
  • 逻辑时钟 / 向量时钟 / TrueTime
  • 故障模型:crash-stop / crash-recovery / 拜占庭
  • 网络分区与脑裂
Day 142 Tue
CAP + 一致性模型
  • CAP 定理精确表述
  • BASE 哲学
  • 一致性模型谱系:linearizability / sequential / causal / eventual
  • PACELC 扩展
  • 读写一致性配置:N / R / W
  • 典型系统的 CAP 选择
Day 143 Wed
共识算法
  • 原子提交:2PC / 3PC 及其问题
  • Paxos 概念性理解(不必死磕证明)
  • Raft:leader / log / term 三大概念
  • Raft leader 选举完整流程
  • Raft 日志复制
  • 拜占庭容错算法概览(PBFT)
  • etcd 内部用 Raft 的实战
Day 144 Thu
分布式存储
  • 复制策略:单主 / 多主 / 无主
  • 分片策略:hash / range / lookup
  • 一致性哈希深入
  • Gossip 协议
  • 反熵机制
  • Cassandra / DynamoDB 设计借鉴
Day 145 Fri 🔧
LAB:Raft 实战
  • 起 3 节点 etcd 集群
  • 观察 leader election
  • 模拟节点故障
  • 看日志复制过程
  • 用 etcdctl 操作
  • 制造网络分区
Day 146 Sat 🔐
分布式系统攻击面
  • 拜占庭故障与防御
  • Eclipse 攻击(围攻单节点)
  • Sybil 攻击(伪造多身份)
  • 共识层攻击
  • 时钟攻击
  • LLM 分布式推理的潜在攻击
Day 147 Sun 🌐
综合 + Week 22 预告
  • 典型分布式系统案例梳理
  • 分布式系统设计中的常见陷阱
  • 本周复盘

Week 22 · 高可用 + 混沌工程

Day 148 Mon
可用性指标
  • SLI / SLO / SLA 完整定义
  • 错误预算 error budget
  • 不同 9 数对应的允许停机时长
  • MTBF / MTTR / MTTF
  • SLO 的多窗口告警(burn rate)
  • 谷歌 SRE 实践
Day 149 Tue
高可用模式
  • 主备 / 主主 / 多活
  • 同城双活 / 异地多活
  • 异地容灾
  • 灾难恢复 RTO / RPO
  • 金丝雀部署
  • 蓝绿部署
  • 定期演练(DR drill)
Day 150 Wed
混沌工程
  • 混沌工程 4 大原则
  • Netflix Chaos Monkey 历史
  • 故障注入工具:chaos-mesh / Litmus / ChaosBlade / Gremlin
  • 常见故障注入:网络延迟 / 丢包 / 杀进程 / 磁盘满
  • 稳态假设的建立
  • 实验的 blast radius 控制
Day 151 Thu
系统设计案例
  • 设计 URL shortener
  • 设计 chat 服务(千万用户)
  • 设计 LLM gateway(多模型 + 限流 + 计费)
  • 容量估算方法
  • 瓶颈分析方法论
Day 152 Fri 🔧
LAB:混沌实验
  • K8s 上部署 chaos-mesh
  • 对 LLM 推理服务注入网络延迟
  • 杀 Pod 测试 readiness
  • 磁盘填满测试
  • 观察服务降级表现
Day 153 Sat 🔐
供应链 + log4shell 复盘
  • log4shell 漏洞机制深入(JNDI + LDAP)
  • 影响范围与教训
  • 依赖混淆攻击(dependency confusion)
  • typosquatting / namespace hijack
  • SBOM(软件物料清单)
  • 镜像投毒
  • 模型权重供应链风险
  • SLSA framework
Day 154 Sun 🌐
综合 + Week 23 预告
  • SRE 视角的服务运行
  • 事故复盘文化(blameless postmortem)
  • 本周复盘

Week 23 · LLM 服务化深入 + Agent 架构

Day 155 Mon
LLM 推理引擎全景
  • vLLM 详解
  • SGLang(RadixAttention)
  • TensorRT-LLM
  • TGI (HuggingFace)
  • llama.cpp / MLC-LLM(端侧)
  • 选型决策矩阵
  • 性能对比
Day 156 Tue
推理网关
  • 多模型路由(按 model / 按用户 / 按 cost)
  • 模型版本管理与 A/B
  • fallback 策略
  • 计费与配额
  • 缓存层(前置 KV cache)
  • LiteLLM / OneAPI 类网关
Day 157 Wed
Agent 系统架构
  • Agent 核心组件:planner / executor / memory / tools
  • tool calling 协议(OpenAI function calling、MCP)
  • 沙箱设计(语言级 vs 进程级 vs VM)
  • 记忆系统:short-term / long-term / episodic
  • 计划-执行-反思循环
  • 错误恢复
Day 158 Thu
多 Agent 协同
  • Agent-to-Agent 通信协议(A2A)
  • 共享内存模式 vs 消息传递
  • 编排框架:LangGraph / CrewAI / AutoGen
  • 多 Agent 一致性
  • 角色分工模式
Day 159 Fri 🔧
LAB:完整 Agent 服务
  • 实现一个有 tool calling 的 Agent(vLLM + 自写网关)
  • 接 pgvector 做 RAG
  • 用 Docker 沙箱执行 code tool
  • 部署到本地 K8s
  • 压测 + 监控
Day 160 Sat 🔐
LLM / Agent 攻击面综述(你本职的本职)
  • prompt injection 完整分类:direct / indirect / multimodal
  • jailbreak 技术演进史
  • tool abuse 攻击
  • code execution 沙箱逃逸
  • memory poisoning(长程记忆攻击)
  • multi-agent 攻击(社工链)
  • data exfiltration(通过 tool / response)
  • 防御纵深策略:input filter / instruction hierarchy / output filter / human in the loop
Day 161 Sun 🌐
综合 + Week 24 预告
  • 典型 Agent 安全产品形态梳理
  • 本周复盘 + 毕业项目预告

Week 24 · 毕业项目:10 万用户 Agent 安全平台

Day 162 Mon
需求与目标
  • 核心功能:实时检测 / 策略管理 / 审计 / 告警
  • 非功能:10 万 DAU、P99 < 200ms、99.9% 可用
  • 合规要求
  • 核心场景拆解
Day 163 Tue
架构设计
  • 容量估算(QPS、存储、带宽)
  • 技术栈选型(综合应用前 23 周知识)
  • 组件交互图
  • 关键决策点
Day 164 Wed
数据流设计
  • 推理路径(同步、低延迟)
  • 审计路径(异步、高吞吐)
  • 监控路径
  • 反馈/学习路径
Day 165 Thu
部署架构
  • K8s 集群规划(多 AZ)
  • GPU 节点池设计
  • 数据库部署模式
  • CI/CD 流水线
  • 灰度发布策略
Day 166 Fri 🔧
LAB:写设计文档
  • 完整一份 system design doc
  • 包含组件图、时序图、数据模型
  • 容量计算
  • 降级方案
  • 渐进式上线计划
Day 167 Sat 🔐
威胁建模 + 红蓝对抗
  • STRIDE 方法应用
  • 攻击树构建
  • 红蓝演练流程设计
  • 表格化威胁清单
  • 对应防御措施
Day 168 Sun 🎓
毕业总结
  • 24 周完整回顾
  • 你现在能做什么(能力评估)
  • 下一步学习方向建议
  • 推荐进阶资源
  • 结业证书 :)