目 录CONTENT

文章目录

DevOps and CI/CD

TalentQ
2025-09-05 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

1 什么是 DevOps 和 CI/CD

DevOps 是 Development 和 Operations 的混写,即“开发和运维”一体。

CI/CD 是持续集成和持续交付/部署(Continuous Integration / Continuous Delivery(Deployment))的缩写。

DevOps 是一种文化理念,CI/CD 是 DevOps 的核心实践。

2 DevOps

DevOps 是一套集文化理念、实践和工具的组合,旨在通过自动化软件交付和基础设施变更的流程,缩短系统开发生命周期,并持续提供高质量的软件。

其核心是打破开发(Dev)和运维(Ops)部门之间的传统隔阂,通过高度协同、自动化(如CI/CD流水线)和快速反馈,实现更频繁、更可靠的软件发布。

3 CI/CD

CI/CD 是现代软件开发中的一套核心实践和自动化流程,旨在频繁且可靠地交付软件。

它包含两个紧密相关的概念:

  • 持续集成 (CI):指开发人员频繁地(每天多次)将代码变更合并到共享主干。每次合并都会自动触发构建和自动化测试,以便快速发现和修复集成错误,保证代码质量。

  • 持续交付/部署 (CD)

    • 持续交付:是CI的延伸,指除了自动化测试,还自动化了整个软件发布流程(如打包、环境配置)。使得代码在任何时刻都能以手动方式快速、安全地部署到生产环境。

    • 持续部署:是持续交付的更进一步,指所有通过自动化测试的变更都会自动部署到生产环境,无需任何人工干预。

核心价值:通过高度自动化,形成一个从代码提交到最终部署的自动化流水线,从而显著提升软件交付的速度、频率和可靠性。它是实现DevOps理念的关键技术支柱。

常用的工具有:

  • 版本控制:Git(GitHub、GitLab、Bitbucket)

  • CI/CD 工具:Jenkins、GitHub Actions、GitLab CI/CD

  • 容器化:Docker、Kubernetes

  • 监控与日志:Prometheus、Grafana、ELK(Elasticsearch、Logstash、Kibana)

4 启示

DevOps 与 CI/CD 通过自动化和文化协同,为软件交付带来多重关键价值:

  • 加速交付:自动化流水线显著缩短从开发到部署的周期,实现快速迭代和反馈。

  • 提升质量:持续集成自动运行测试和检查,提前发现缺陷,保障代码可靠性。

  • 发布稳定:支持灰度发布、一键回滚等机制,大幅降低发布风险。

  • 促进协作:打破团队壁垒,通过透明流程和统一工具提升协作效率。

自动化流程有效替代繁琐人工操作,减少错误与环境差异,使团队能更专注于高价值任务,持续优化产品与架构。

实践中的感受:

在个人线上项目中,每次修改代码,虽然借助github托管代码,有git进行历史追溯和版本控制,但是每次都需要手动部署和测试。尤其当提交代码并手动部署后出现问题,又得重新测试、修改、部署,非常耗费心力。

在工作经历中,由于公司存在较完善的CI/CD,提交代码、自动化测试、云端部署一气呵成。虽然云端测试和部署比较完善,但是线下测试却依然很麻烦。由于每次修改完代码,需要线下手动编译、打包、推送到无人机设备、安装、测试、拉取日志...,整个过程有许多重复步骤劳心劳力,浪费了团队中许多人力。

其实这里也能够联想到SOP的重要性。尤其是带有自动化脚本的SOP。我个人非常支持对团队中SOP的进行标准化,可是在目前团队内部并没有相关标准,有的是各式各样风格和问题的SOP文档。

0

评论区