TT Lab — 실습으로 배우는 IT
읽고 끝나지 않습니다. 브라우저의 실제 서버에서 실습합니다.
IT 基础
无论是不是科班出身,工作中卡住的地方通常就是基础有洞的地方。这条路径依次走过计算机组成、操作系统、网络与数据库,把那些洞补上。学完后遇到故障能自己收敛到「哪一层的什么问题」。
Linux 与终端精通
在只剩终端的服务器上,把问题一路收敛到底的能力。从文件、权限、进程这些基本功开始,动手走过 shell 脚本、vim 与 tmux,磁盘、内存、fd 与负载的故障处理,以及名称解析与套接字诊断。学完后能用几行命令说清「df 明明有空间为什么写不进去」「负载 24 为什么 CPU 还在闲着」。
- Linux 基础 — 第一次用终端也没关系。
- Shell 脚本 — 不是用完就扔的脚本,是敢放到服务器上的脚本。
- vim 与 tmux — 没有鼠标的环境里反而更快。
- Linux 故障处理 — df 明明有空间,为什么写不进去。
- Linux 网络诊断 — 是名字解析不了,是连不上,还是服务器慢。
容器精通
从第一次启动容器,到命名空间与 cgroup、OCI 镜像格式,四门课层层递进。不背命令,而是靠一个退出码收敛原因、指出打断缓存的那一行、用 inspect 证明镜像里烙进了什么。学完后能在三分钟内评审别人的 Dockerfile。最小权限镜像在安全路径中继续。
- Docker 基础 — 给第一次启动容器的人的第一门课。
- 构建镜像 — 构建慢,多半不是缓存的问题,是顺序的问题。
- 卷、网络与 Compose — 一个容器成不了一个服务。
- 容器内部原理 — 内核里根本没有「容器」这个东西。
Kubestronaut — Kubernetes 五冠
CNCF Kubestronaut 是集齐 KCNA、KCSA、CKA、CKAD、CKS 五项认证才能获得的头衔。这条路径从概念(KCNA)开始,在真实集群上动手走过运维(CKA)、开发(CKAD)、安全基础(KCSA)与安全实务(CKS)五场考试的考纲。学完后看一眼清单就能在三分钟内说出哪里错了。
- KCNA — Kubernetes 与云原生入门 — 先把术语理清,再动手打开集群
- CKA — Kubernetes 管理员 — 练出修集群的那双手。
- CKAD — Kubernetes 应用开发者 — 手写清单,当场判分
- KCSA — Kubernetes 安全助理 — 用攻击者的眼睛重新看一遍集群
- CKS — Kubernetes 安全专家 — 练出真正把集群锁上的那双手。
黄金 Kubestronaut
在Kubestronaut学习之后,继续学习可观测性(PCA、OTCA)、网络(ICA、CCA)、交付(CAPA、CGOA)、策略(KCA)、平台(CNPA、CBA、CNPE)和Linux(LFCS)。通过理论、测验和练习备考;完成课程不代表获得官方认证,也不保证通过考试。首次获得Golden Kubestronaut称号需要CNCF指定的认证及LFCS均有效。制定考试计划时请核对官方清单和生效日期。
- PCA — Prometheus 认证助理 — 从指标回答什么问题,到实战里的 PromQL 判断
- OTCA — OpenTelemetry 认证助理 — 传播断掉的四个地方,以及 collector 流水线
- ICA — Istio 认证助理 — 光有一个 VirtualService 什么都不会发生。
- CCA — Cilium 认证助理 — 删掉 iptables,把策略种进内核。
- CAPA — Argo 项目认证助理 — 把 Argo 四个项目动手拼起来。
- CGOA — GitOps 认证助理 — Git 是真相,集群自会跟上
- KCA — Kyverno 认证助理 — 把策略写成不会拖垮集群的样子。
- CNPA — 云原生平台工程助理 — 把平台当产品来做
- CBA — Backstage 认证助理 — 我们有多少个服务,谁是主人
- LFCS — Linux 基金会认证系统管理员 — 动手证明 Kubernetes 底下的那层 Linux
- CNPE — 云原生平台工程师 — 设计并守住平台的判断力
云计算基础
很多课程把 Kubernetes 和 Linux 讲得很深,却把底下的云留成空白。这条路径填上那个洞。从区域与责任共担模型开始,亲手读 IAM 策略文档,手工划分 CIDR,最后用计费模型比较两种架构。因为讲的是判断依据而不是控制台按钮的位置,所以无论学 AWS 还是 Azure 都留得住。学完后能在架构评审里用「付出什么、得到什么」来讲话。
云原生架构
把一个服务拆开的那一刻起就需要的零件,全部动手做一遍。服务间通信与韧性、队列与异步 API、Redis 缓存与实时排行榜、S3 与 SeaweedFS、用 Kafka 传递的订单事件,以及出现两个领导者的 Raft 共识,共六门课。学完后能在架构评审里用「付出什么、得到什么」来讲话。
基础设施自动化 — Ansible 与 Terraform
把登录服务器敲命令的工作写成 playbook,把在控制台点击的操作变成声明。用 Ansible 构建幂等配置并组织成角色,再用 Terraform(OpenTofu)读懂状态与计划,并通过模块和工作区扩展。学完后,基础设施变更就是一份可以评审的代码。
- Ansible 基础 — 结束手动登录服务器的日子。
- Ansible 实战 — 把复制粘贴的 playbook 折成角色。
- Terraform/OpenTofu 基础 — 声明它、用状态管住它、读懂 plan。
- Terraform 实战 — 动手处理模块、状态与漂移。
- 用 Kubespray 与 Terraform 搭建集群 — 在一台 VM 上用 Kubespray 搭建,再用 Terraform 串起来
Kubernetes 平台
从使用 Kubernetes 再往前一步,搭建让多个团队走同一条路交付的平台。从集群日常运维和发行版比较开始,编写 Helm chart 并回滚发布,用 CRD 与 Operator 扩展 API,用 Istio 处理服务之间的通路,再用 Argo CD 收敛到声明的状态。Ansible 与 Terraform 在基础设施自动化路径中。
- Kubernetes 运维实务 — 只收集凌晨三点会把你叫起来的那些事。
- Kubernetes 发行版 — 自己搭 — 搭起 k3s 与 k0s,再恢复一次 etcd
- Helm Chart 的制作与发布 — 自己写 chart,用 revision 回滚。
- Helm 发布与回滚 — 能回滚才叫发布 — 在真集群上
- CRD 与 Operator — 给 Kubernetes API 加上自己的类型。
- Istio 服务网格 — 把流量和安全从代码里剥出来。
- GitOps 与 Argo CD — 一次提交就把部署做完。
系统管理员
把服务器前每天发生的事动手走一遍。装包、用密钥连上去搬文件、把 fstab 那一行写准、按步骤处理 RAID、LVM 与 iSCSI、处理 qcow2 与 rootless 容器、把备份一直做到恢复演练。最后用数字算出何时扩容、何时中止变更。
- 包管理 — 一行 install 背后发生的事。
- SSH 与文件传输 — 用密钥连上、安全地搬、再挖条隧道。
- 存储与挂载 — fstab 的一行能救活也能弄死一次启动。
- 存储实务 — RAID、快照、iSCSI、fio — 磁盘坏了、变更错了,数据依然保住
- 虚拟化与 QEMU/KVM — qcow2 的 backing chain 造就了黄金镜像。
- Rootless Podman 运维 — 没有守护进程,没有 root,照样是容器。
- 备份与恢复 — 没做过恢复演练的就不是备份。
- 容量规划与变更管理 — 算出何时写满,先写下何时停手 — 下单截止日、中止判断时刻、实测 RPO 与 RTO
- RHEL 系管理 — dnf、rpm、createrepo,还有 unit 文件。
隔离网络基础设施
让安装在被隔离于互联网的网络中也能完成。为 pip、npm、Maven、Go 与 dnf 搭建内部镜像源和私有 CA,把 GPU 驱动和 CUDA 带入并安装,用 Slurm 分配作业,在 Kubernetes 上用 GPU Operator 管理从驱动到指标的一切。这是在公共、金融或研究机构接手服务器时第一周要做的事的顺序。
- 隔离网络镜像与私有 CA — 下载端与使用端,内部镜像与信任库。
- 闭网环境的 GPU 驱动搬入与安装 — 一趟 U 盘就搞定的搬入流程。
- HPC 与 Slurm — 多人分享八张 GPU 的方法。
- GPU Operator 与时间片 — 从一次让四张 GPU 同时失效的事故讲起。
网络进阶
从地址与网关这样的基本功,到在家开服务器必然撞上的发夹 NAT,再到服务网格的真身 Envoy 以及其上的 Istio。
- 地址、子网与网关 — A、B、C 类为什么消失了,取而代之的是什么
- 网络基础 — 在 Linux 虚拟机里动手 — 用 netns 和 tcpdump 亲手摸 ARP、路由、DNS、TCP、防火墙和 NAT
- 网络排障 — 把「连不上」的报告拆成层。
- Kubernetes 网络 — 在真集群上 — 亲手数一数名字怎么解析、策略挡住了什么
- Envoy 内部结构 — 服务网格的流量,最终是这个代理在处理
- Istio 进阶 — 为什么会那样流 — 光有一个 VirtualService 什么都不会发生
- 证书已经续期,浏览器却还显示旧证书 — 在 Pod 里亲手重现 DNS 缓存与 TLS 证书
- 会话与令牌 — 从浏览器到服务网格 — 登录之后有什么在流动,又在哪里断掉。
- Istio 实测实验室 — 在真实网格上实测网关、Ambient 与升级
套接字与实时系统
亲手实现字节边界与连接生命周期,复现故障,学习实时应用的基础。
- TCP 包裹碎成几段才送到 — 从字节片段中重建消息
- 一个慢订阅者让直播停了下来 — 隔离停滞的订阅者,让其他人继续接收
- ACK前停机的零食售货机 — 重新连接也不重复增加库存
- 一个连接变慢,其余全都停住了 — 用一个循环盯住数百个连接
- 实时通信 — WebSocket、gRPC 流式调用与 WebRTC — 从 HTTP/2 到 WebRTC,用真实连接动手搭建并测量
SRE / DevOps 工程师
流水线、GitLab CI、IaC、可观测性、Git、压测六门课,讲的是让部署从事件变成日常的手艺。碰的是机制而不是工具名 — 门禁为什么必须用退出码说话、plan 的三个符号各是什么意思、燃烧率 14.4 这个数字从哪来。学完后看到凌晨三点响的告警,能判断此刻该做什么。
可观测性与日志进阶
边车里该挂什么、日志在哪里切、链路在哪里断、Loki 与 OpenSearch 在什么问题上分道扬镳。讲的是设计判断,不是工具用法。
- SLO — 定下能坏到什么程度 — 99.9% 就是一个月 43 分钟
- 边车与多容器组合模式 — 为什么要在一个 Pod 里放两个容器
- 日志流水线设计 — 收集容易,日后找出来难
- 分布式链路断掉的地方 — 边车照样生成 span,链路照样断
- Loki — 不索引日志的日志库 — 只索引标签这个决定改变了一切
- Grafana — 仪表盘是一个问题 — 多加图表和得到答案,方向相反
系统故障侦探团
在隔离的实验环境中复现故障并缩小原因范围。比较状态指示和实际请求,学习运维与调试的思路。
- CPU 与内存泄漏的判定 — 在相信 top 的数字之前该确认什么
- 把K8s弄坏吧 — 原来是我的YAML — 找出绿色状态背后隐藏的故障
- 由我来搞坏 — 先写假设的混沌实验室 — 动手之前,先写下会发生什么
- 日志来自未来 — 时钟制造的五起事故 — 时间戳不是证据,而是主张
安全
把分散在各处的安全课程集中到一个书架上。以最小权限运行容器,核实镜像的来源与签名,用 Keycloak 接入身份,用策略引擎设立护栏,并根据审计日志编写检测规则。Kubernetes 安全认证(KCSA、CKS)在 Kubestronaut 路径中。
- 容器安全 — 先打破「已经隔离了所以没事」这句话。
- 构建是绿灯,可那个库是谁加进来的 — 用清单、签名与来源证明产物
- Keycloak 与企业认证 — 一个登录按钮背后的协议。
- 策略即代码 — 把规则刻进集群,而不是写进文档。
- cron 在凌晨三点执行了 curl — 编写检测规则,跑通响应流程
数据工程
从失败后仍然安全的流水线开始,学会依据引擎留下的数字做判断 — Spark 与 Hadoop 的执行计划、Iceberg 表的快照、Flink 的状态与检查点、ClickHouse 的存储结构。学完后收到「数据不对」的报告时,能用数字收敛到是哪个阶段出了问题。
- 数据流水线 — 失败后重跑,结果必须一样
- Apache Spark — 慢作业的答案在执行计划和事件日志里 — 用本地模式 Spark 通过事件日志测量 shuffle、连接与数据倾斜
- Apache Hadoop — 在一个 Pod 里搭起并运维 HDFS 与 YARN — 在伪分布式 HDFS·YARN 上亲手操作块、权限、配额与 MapReduce
- 湖仓表格式 — 从元数据理解 Apache Iceberg — 用元数据验证快照、模式演进、分区演进、MERGE 与表维护
- Apache Flink — 用真正的引擎跑流处理 — 用引擎自己的输出验证水位线、状态和检查点
- ClickHouse — 从内部理解列式分析数据库 — 用 system 表里的数字读懂排序键、数据部分与合并
LLM 应用 — 检索、智能体、语音
亲手构建并测量 LLM 应用的各个部件。从 token 与检索开始,用智能体和 MCP 服务器接入工具,最后把能听、能找答案、能说话的语音助手完整串起来。模型内部与推理服务成本在「LLM 模型与推理服务」路径中。
- LLM 工程 — 从分词器到 RAG 评测,从地基开始
- AI 智能体 — 是图不是模型 — 停止条件、失败路径、留痕。demo 与产品的分水岭
- 智能体删掉了我的数据库 — 用标准库编写 MCP 服务器,并设置三层防护
- 语音 AI 智能体 — 会听、会查、会说的流水线 — 在一个 CPU Pod 里把听到说完整串起来,并测量延迟
LLM 模型与推理服务
从调用模型再往里走一步,打开模型内部。亲手编写 Transformer,从零训练一个小型语言模型,用推理引擎的批处理、KV 缓存和量化降低成本,并用实验追踪让模型可以重建。
- Transformer — 手算一遍注意力 — 用数字确认为什么要除以 √d
- MiniMind — 亲手从头到尾训练一个小型语言模型 — 用两颗 CPU 从分词器到 DPO 烤出一个小模型
- LLM 服务 — 不用模型,也能学会服务这套机械装置。
- AI瘦身失败事件 — 亲手构建INT8模型并测量准确率与性能
- 上周那个模型更好,可没人找得到 — 亲手搭建实验台账、注册表与晋升闸门
数据库运维
写好查询和运维数据库是两回事。你会搭起复制、真的做一次主从切换、亲眼看到时间线分叉。然后诊断一个还活着却已经不对劲的数据库。
- SQL 实战 — 从查询到执行计划,全部动手跑一遍
- PostgreSQL 复制与提升 — 搭起备库,再真的提升一次
- 备份 — 把删掉的数据找回来 — 没恢复过的备份不算备份
- 改表结构 — 别让发版停掉服务 — 一行迁移能把所有请求排成队
- PostgreSQL 故障处理 — 诊断一个还活着却不对劲的数据库
- MongoDB — 文档数据库的判断 — 学的不是查询语法,而是嵌到什么程度
后端工程
逐句阅读招聘启事来决定准备顺序,用 Node.js 与 FastAPI 亲手补齐服务器缺的部分,通过测量重新学习服务所依赖的计算机基础,再经过幂等性、锁与 gRPC 契约,在真实的 PostgreSQL 与 HTTP 边界上把数据完整性、授权、可观测性与部署连成一个可验证的后端系统。
- 从招聘启事读出的后端路线图 — 先决定从什么开始,再动手
- Node.js 后端 — 框架藏起来的东西 — 不装 Nest,自己把 Nest 做的事搭出来
- 慢的不是一个请求,而是全部 — 堵住的是一个请求,变慢的是全部
- FastAPI — 类型就是契约 — 一个 async def 写错,整台服务器就卡住
- 打造好服务的计算机科学 — 用测量重新学习教科书概念 — 先测量再选择:数据结构、并发、缓存与时钟
- 幂等性 — 点两次也只扣一次款 — 重试挡不住,能挡住的只有重复
- 并发 — 两个人碰同一行时 — 库存变负数不是代码的错,是顺序的错
- 改了字段编号,旧客户端悄悄读出了错误的值 — 亲手验证 protobuf 字节与 schema 演进规则
- 生产级后端 API 综合项目 — 从 PostgreSQL 与真实 HTTP 一直到运维证据,用一个系统证明
开发工具与语言
测试工具、Go 与 Rust,以及运维工具。不讲用法,而是讲每种工具和语言如何改变代码的形状。后端框架在后端工程路径中。
- 测试工具实战 — 100% 覆盖率保证不了什么
- 用 Go 写服务器 — 没有异常这件事,会改变代码的形状
- Rust — 编译器拦下的那些 — 借来的值用两次,构建就拒绝
- 失败了,退出码却是 0 — 把 Python 脚本变成运维工具 — 退出码、重试、指标、测试
- 编译器 — 从头到尾亲手打造一门小语言 — 从词法分析器到 x86-64,亲手做一门小语言
前端进阶
状态库为什么强制不可变,流式传输实际上在哪里断掉,浏览器如何读 HTML,层叠如何计算。不看用法之上,而看之下。
- HTML — 一个标签顶一项功能 — 用 div 做的按钮为什么不是按钮
- CSS — 后写的规则获胜 — 你最终动手写 !important 的真正原因
- 状态管理 — 自己写一个库 — 为什么它们都强制不可变
- 明明在找鲸鱼,却出现了猫 — 修复 React 搜索竞态,构建显示一万条结果的界面
- SSE — 服务端先说话的方式 — 明明在工作,为什么画面上一次性全出来
- SSR — 服务端先画 — 当服务端和客户端画出不同的 HTML
韩国 SI 实务
按顺序讲韩国 SI/SM 现场新人第一周就会遇到的事。从需求规格书、割接检查表这类交付物开始,在真实服务器上动手走过 Tomcat/nginx 运维、LDAP 与 SSO 认证对接、系统间接口、数据库迁移。标准是那些学校不教、现场第一天就要你做的事。
- SI 项目流程 — 从需求到上线与稳定化,走一整圈
- Tomcat 与 nginx 运维 — WAS 前后真正会去改的全部配置
- nginx 故障处理 — 自己制造故障,再从日志里指出真凶
- 企业认证对接 — LDAP、SSO、DRM — 客户现场早就有的那些
- 系统间对接 (EAI) — 从接口规格书到重处理设计
- SI 的数据库运维 — 标准、变更管理、调优、迁移,全部动手
- Spring Boot — 数一数发了几条查询 — @Autowired 为什么不该写在字段上
- 堆还有空间,服务却停了 — 用 GC 日志、线程转储、连接池耗尽和堆转储读懂 JVM 停顿
- 构建 EAI 中间层 — 从报文头、路由、转换到 MQ、对外网关与熔断器
FDE — 前置部署工程师
Palantir 创造、OpenAI 与 Anthropic 争相招聘的岗位 Forward Deployed Engineer,这条路径让你动手练。侦察没有文档也没有仪表盘的客户系统,调试别人写的代码,清洗脏的客户数据,只凭日志复原故障时间线。学完后即使面对第一次见的环境,最初三十分钟做什么也已经定好。对接、变更与交付在 FDE 实战路径中继续。
FDE 实战 — 对接、变更、交接
这是能读懂陌生系统之后的下一步。对接客户的 API,设计可以安全重跑的重试,第一次向别人的生产系统提交变更,最后用交付物和交接文档做好离场准备。
- 集成与部署 — 接上、守住、讲清楚。
- 不可撤销的变更 — 一直只读的那双手,第一次动笔的日子。
- FDE综合实战:仓库收到了三次相同订单 — 从客户CSV到无重复预订与交接
领域知识 — 银行、资本市场、保险、国防
进入金融、保险、国防现场的 IT 人员,第一个月撞上的不是技术,而是业务语言。依次处理银行的总账与对账、资本市场的委托、成交与结算、保险的合同与理赔,以及不能搜索、不能安装、不能带出任何东西的隔离网络国防现场。学完后你能听懂业务人员说的话,也能验证他们的数字为什么是那样。
- 银行现场的语言 — 找到原因,不懂业务也说不清楚。
- 资本市场与清结算 — 毫秒会变成事故,顺序会变成钱的地方。
- 保险领域进阶 — 在保险公司现场,第一周卡住你的不是技术而是术语。
- 闭网现场 — 国防领域 — 在不能搜索、不能安装、不能带出的地方怎么工作。
产品与创业
从验证客户问题到产品指标、实验统计、定价与单位经济、股权与融资 — 用真实数据计算,练习开发者在创业或接手新产品时要做的判断。
- 开发者创业 — 先验证再动手 — 用数字判断访谈、同期群、A/B 测试与单位经济
电子电路与电路板验证
用模型验证电压、电流、负载与 ADC 输入,明确区分仿真和实体电路板测量。
- 电子电路入门 — 传感器输入验证 — 为什么接上负载后分压值会改变
- 冰箱坚称自己有255°C — 用C排查符号、部分读取、重试与期限错误
- 电缆也有回声 — 用 ngspice 与 Python 验证传播、反射与端接
- 传感器没坏,是板子听不懂 — 亲手解读采集到的波形,找出故障
3D 图形与物理引擎
亲手做出一个三角形出现在屏幕上、以及一摞箱子不塌地立着,背后跑的是哪些计算。讲的不是怎么用引擎,而是引擎里面发生的事。不用任何库,只用标准 Python,每个实验都把结果留成 PNG,在网页预览里用眼睛确认。
- 3D 数学与软件光栅化器 — 把一个三角形画到屏幕上的计算,全部亲手写出来。
- 物理引擎的骨架 — 自己写积分器、碰撞检测、冲量、约束,再把箱子摞起来。
- 着色器与 GPU 管线 — 在 CPU 上模仿顶点着色器和片段着色器,学 GPU 在算什么。