名词百科
什么是 CI/CD / DevOps?
一句话定义
CI(持续集成)是开发者频繁提交代码并自动构建、测试的实践;CD(持续交付/持续部署)是在此基础上自动发布到环境。DevOps 是打通开发与运维协作的文化与实践体系。
它到底是什么
CI 解决的是「合并时才炸」:多人各写几天再合并,冲突与问题集中爆发。改为频繁合并、每次自动构建测试,问题在产生的当天就被发现。
CD 解决的是「发布靠人」:把打包、部署、验证流程自动化,减少手工操作失误。持续交付与持续部署的区别在最后一步是否自动上线。
怎么运作的
代码检查:提交触发静态检查与代码规范校验,把低级问题挡在合并前。
自动化测试:单元测试、集成测试在流水线中执行。测试不稳定(时好时坏)会让人逐渐忽略结果,需优先治理。
构建与产物:生成可部署的包并版本化,产物可追溯对应代码提交。
部署:自动部署到测试环境,按需部署到生产。生产部署通常与灰度策略配合。
前置条件:环境一致、配置外置、数据库变更脚本化。这几项不解决,自动化部署会把问题放大。
容易混的几个概念
- CI/CD 与 DevOps:前者是工具与流程,后者是更宽的协作体系。
- 持续交付与持续部署:前者随时可发布但需人工确认,后者自动发布。
- 流水线:CI/CD 的执行载体。
- 基础设施即代码:用配置描述环境,是自动化的基础之一。
常见问题
小团队需要 CI/CD 吗?
需要基础的 CI:自动构建与测试能显著减少「在我机器上是好的」这类问题。CD 可按团队成熟度逐步推进,不必一次做到自动上线。
流水线跑得太慢怎么办?
分层执行:提交时跑快速检查,合并或定时跑完整测试。并行化任务、缓存依赖也能明显缩短时间。
J 项目运维 · 同组词条
灰度发布灰度发布是把新版本先开放给小部分用户,观察运行情况后再逐步扩大范围的上线方式。它用于降低全量发布带来的风险。监控告警监控告警是持续采集系统运行指标并在异常时通知相关人员的机制。监控负责「看得见」,告警负责「叫得应」。BUG管理BUG 是软件中不符合预期的缺陷;缺陷管理是记录、分级、分配、跟踪与验证缺陷直至关闭的流程,通常借助缺陷跟踪系统实现。SLASLA(Service Level Agreement,服务等级协议)是服务提供方与使用方之间关于服务质量的约定,通常包含可用性、响应时间、故障恢复时间与违约处理方式。安全测试安全测试是检查系统是否存在可被利用的漏洞的测试活动;渗透测试是模拟攻击者视角,尝试实际攻破系统,以验证防护是否有效。交付验收交付验收标准是判断项目是否完成的具体条件,通常包括功能符合度、质量指标、交付物清单与上线运行情况。它是付款与移交的依据。性能测试性能测试是评估系统在特定负载下的响应时间与资源消耗;压力测试是逐步加压直到系统崩溃,用于找出容量上限与瓶颈位置。售后维护售后维护是系统上线后对缺陷、咨询与使用问题的响应与处理;技术运维是保障系统稳定运行的工作,涵盖部署、监控、备份、扩容与故障处理。