【前端工程化面试题】什么是 CI/CD

 CI/CD 到底是什么

CI/CD 是软件开发中的两个重要实践,分别代表持续集成(Continuous Integration)和持续交付/持续部署(Continuous Delivery/Continuous Deployment)。

  1. 持续集成 (Continuous Integration, CI):持续集成是一种软件开发实践,通过将代码频繁地集成到共享存储库(如版本控制系统)中,并自动运行测试来验证新代码的正确性。主要目标是尽早地发现和解决代码集成问题,以便快速反馈给开发人员。CI 通常涉及以下几个关键步骤:

    • 开发人员提交代码到共享存储库。
    • CI 服务器自动获取最新的代码,并进行构建和测试。
    • 如果构建和测试通过,则发布构建结果或者集成结果,否则通知开发人员存在问题。
  2. 持续交付/持续部署 (Continuous Delivery/Continuous Deployment, CD)

    • 持续交付 (Continuous Delivery, CD):持续交付是一种软件开发实践,旨在确保软件能够随时随地以可部署的状态交付给用户。在持续交付中,每次成功的 CI 构建都会生成一个可部署的软件包,但部署的时机由人工决定。
    • 持续部署 (Continuous Deployment, CD):持续部署是持续交付的自动化形式,其中每次成功的 CI 构建都自动部署到生产环境中,不需要人工干预。持续部署通常在具有高度自动化的软件交付管道中使用,以实现快速、可靠地交付软件。

综合来说,CI/CD 是一种在软件开发中广泛应用的实践,旨在通过自动化、持续化地集成、测试和交付软件来提高开发团队的效率、质量和反应速度。

如何实现 CI/CD

  1. 实现持续集成 CI   
    1. 版本管理 Git
    2. 自动化构建
      1. 设置自动化构建流程,包括代码检查,编译,测试
      2. 确保每次代码提交都能自动触发构建过程
    3. 自动化测试
      1. 编写单元测试、集成测试,端到端测试等不同类型测试
      2. 并集成到自动化构建流程中,每次构建自动运行测试
    4. 代码质量检查
      1. 配置代码质量工具 eslint tslint prettier对代码进行语法检查、格式化、代码风格检查
    5. 持续集成服务器
      1. 配置持续集成服务器,监控代码仓库的变化,自动触发构建流程
      2. 管理构建任务和构建结果,生成构建日志和报告,以及通知团队成员构建状态。
      3. 可以使用 GitLab CI/CD 、GitHub Actions、CircleCI、Travis CI
  2. 实现持续交付/部署
    1. 自动化部署
      1. 配置自动化部署流程,将构建好的代码部署到测试环境、预生产环境和生产环境等不同的环境中
      2. 部署工具如 Ansible、Docker、Kubernetes 等。
    2. 环境管理
      1. 管理不同环境的配置信息、数据库版本、依赖库版本等,确保环境之间的一致性和稳定性。
    3. 会滚和发布策略
      1. 设计和实现自动回滚和发布策略,包括灰度发布、蓝绿部署、滚动发布等,确保部署过程的安全性和稳定性。
    4. 监控和部署
      1. 配置监控工具如 Prometheus、Grafana、ELK Stack 等,监控项目的运行状态和性能指标,并设置报警规则,及时发现和解决问题。
    5. 持续反馈和优化
      1. ​​​​​​​对 CI/CD 流程进行持续的监控和优化,收集团队成员的反馈和建议,不断改进流程和工具,提高持续集成和持续部署的效率和质量。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值