CI/CD 流水线
빌드 자동화, 테스트 게이트, 배포 전략을 벤더 UI 가 아니라 메커니즘으로 배웁니다. 실습 파드에는 Jenkins 도 GitHub Actions 러너도 없고 컨테이너를 띄울 수도 없습니다. 대신 셸과 git 과 이미지 도구로 재현 가능한 빌드, 병합을 막는 게이트, 블루그린과 카나리 전환을 직접 만들어 봅니다. 이어서 바이트까지 같은 빌드, 캐시 열쇠 설계, 시험 분할과 결과 합치기, 실패 분류와 이분 탐색, 비밀이 남는 자리, 브랜치 보호와 병합 대기열, 다이제스트로 하는 승격을 다룹니다. 도구가 바뀌어도 남는 원리를 손에 남기는 것이 목표입니다.
중급 · 레슨 30 · 实验 10
커리큘럼
构建自动化
- 可复现的构建要放在最前面 reading
- 用 shell 做一条三段流水线 lab
- 测验:可复现的构建 quiz
测试门禁
- 门禁这件事,就是定下「拦什么」的标准 reading
- 做一道拦住合并的门禁 lab
- 测验:测试门禁 quiz
发布策略:蓝绿与金丝雀
- 蓝绿与金丝雀,各自拿什么去换 reading
- 蓝绿切换与金丝雀分析 lab
- 测验:发布策略 quiz
制品与晋级
- 开发环境过了、生产却不过的真正原因 reading
- 标签没有变,生产环境跑的却是另一个镜像 lab
- 测验:制品与晋级 quiz
产出相同字节的构建
- 用哈希命名并不等于构建可复现 reading
- 同一份源码构建两次,摘要却不一样 lab
- 测验:产出相同字节的构建 quiz
缓存键的设计
- 缓存的成败全在于键怎么设计 reading
- 锁文件只改了一行,缓存却把旧依赖搬了回来 lab
- 测验:缓存键的设计 quiz
测试切分
- 切分能提速,但结论可能因此改变 reading
- 把分片数调大之后,原本失败的测试竟然通过了 lab
- 测验:测试切分 quiz
失败分类与缩小原因范围
- 红灯并不都是同一种红灯 reading
- 十个红色构建,却没人看过一行日志 lab
- 测验:失败分类与缩小原因范围 quiz
流水线中的机密处理
- 机密会留在日志和镜像层里 reading
- 以为已经删掉的令牌,却从镜像层和提交历史里原样冒了出来 lab
- 测验:流水线中的机密处理 quiz
基于主干的开发与分支保护
- 合并之后还是绿灯吗 reading
- 在分支上还是绿灯,合并之后立刻变成了红灯 lab
- 测验:基于主干的开发与分支保护 quiz