CI与CD 基础与交付流程
CI/CD、云服务器与生产运维#Python全栈#第二十阶段#CI与CD、云服务器与生产运维#CI与CD 基础与交付流程约 1417 字 · 4 分钟阅读
追问显示点击任意追问卡片可收起 / 展开
本阶段学习说明
整体培养方向: Python 全栈开发就业,按北京 10~20k 岗位所需能力逐步推进。
本阶段定位: 在镜像、代理与部署基础上,建立自动化交付、运行观察和恢复流程,能够维护一个有真实用户访问的 Python 全栈服务。
适用环境: Python 3、pytest、Docker 与镜像仓库、Linux 云服务器,以及一种 CI 平台和监控方案。流水线以 GitHub Actions 为示例,可映射到 GitLab CI 或 Jenkins;指标与链路示例使用 Prometheus、OpenTelemetry。云资源按实际供应商核对,不要求同时搭建全部工具。
考查目标: 能建立可信的构建测试与发布链路,管理云访问和资源,观察业务与系统指标,设计可行动告警,并完成备份恢复、故障止损和事后改进。
题库结构: 100 道题,每题包含追问;从 CI/CD 与流水线,推进到发布、云资源、日常运维、可观测性、告警和恢复。本阶段提供题目,不包含参考答案;不重复上一阶段的 Dockerfile、Nginx 路由和基础容器命令,不展开 Kubernetes、专职 DBA 操作或下一阶段的 Python 性能优化专题。
答题约定: 明确提交、构建产物、环境和实际运行版本之间的关系;说明流水线运行身份、失败条件与重试边界。运维判断同时检查用户影响、系统证据和最近变更。恢复目标用允许丢失的数据时间与允许中断的时长表达,并通过隔离环境中的演练验证。
持续集成、持续交付与持续部署有什么区别?
追问 自动测试通过、产物可发布和自动进入生产分别属于哪个环节?需要人工选择发布时间时,怎样仍然保持可重复的交付流程?
一个 Python 全栈项目的流水线应包含哪些阶段?
追问 代码检查、测试、前端构建、镜像、部署和业务验证怎样连接?哪个阶段失败时,应阻止哪些后续步骤?
为什么流水线定义应与代码一起版本管理?
追问 项目依赖、测试规则与发布步骤怎样保持一致?修改流水线本身如何评审和验证,避免只有某台构建机知道实际操作?
Workflow、Job、Step 与 Runner 分别承担什么职责?
追问 哪些步骤共享工作目录,哪些任务可能在不同机器上运行?测试、构建和部署之间的数据应怎样显式传递?
Push、Pull Request、标签与手动触发应怎样分工?
追问 开发分支检查、主分支构建与正式发布怎样限定?同一次修改触发多个运行时,如何避免重复发布?
“构建一次,再逐级推广同一产物”解决什么问题?
追问 测试、预发布和生产重新构建同一提交是否一定得到相同内容?环境差异应怎样通过配置表达,而不是不受控地改变产物?
代码版本、构建编号、镜像摘要和部署记录怎样关联?
追问 用户报错时,如何找到对应代码、测试结果和运行实例?为什么一个可覆盖的镜像标签不能独自承担审计依据?
流水线成功与生产业务成功有什么区别?
追问 命令退出零、进程启动、版本切换和数据库写入分别证明什么?怎样把关键业务验证加入发布成功条件?
什么是质量门禁,怎样避免它变成形式检查?
追问 关键回归、依赖风险与覆盖率怎样按项目风险使用?为什么只比较测试数量或覆盖率阈值不能替代有效断言?
小团队怎样开始建设 CI/CD,而不一次引入过多工具?
追问 先实现自动测试、可追踪镜像和受控部署是否足够形成闭环?怎样根据重复劳动与故障记录确定下一步自动化范围?
流水线核对资料: GitHub Actions:Workflow syntax。课堂掌握基本对象与依赖关系,不把新增加的语法字段作为基础必考内容。