持续集成与部署(一):CI/CD简介

简介: 持续集成与部署(一):CI/CD简介

本篇文章目标

  1. CI/CD是什么?
  2. CICD 的实现

1. CI/CD是什么?

  • CI的全称是 Continuous Integration 也就是持续集成
  • CD其实对应两个概念:

    • CD-持续交付(Continuous Delivery
    • CD-持续部署(Continuous Deployment

1.1 CI:持续集成(Continuous Integration)

“In software engineering,continuous integration (CI) is the practive of merging all developers' working copies to a shared mainline several times a day”

开发人员提交新代码之后,立即进行构建、(单元)测试。根据测试结果骂我们可以确定新代码和原有代码能否正确地集成在一起。

image.png

CI就是高频地、自动化地将个人开发的代码集成到开发主线中

  • 高频:高频才能保证不会出现巨大变更引起的严重问题
  • 自动化:自动化才可以保证高频
  • 主线:不一定是master分支

1.2 CD-持续交付(Continuous Delivery)

“Continuous delivery(CD) is a software engineering approach in which teams produce software in short cycles,ensuring that the software can be reliably released at any time and, when releasing the sofeware,doing so manually”

在持续继承的基础上,将集成后的代码部署到更贴近真实运行环境的类生产环境

  • 尽快的交付给 QA 人员
  • 类生产环境中测试
  • 保证有一个“随时可发布”的版本
  • 部署可以是手动的

1.3 CD-持续部署(Continuous Deployment)

“Continuous Deployment(CD) is softwrae engineering approach in which software functionalities are delivered frequently through automated deployments”

在持续交付的基础上,能够自动化地讲软件部署在真实生产环境

  • 尽快地交付给用户
  • 敏捷开发思想的体现

image.png

实际上持续交付和持续部署这两个概念不用分的特别清楚,在实践中,我们往往认为持续交付和持续部署这两者是一体的

1.4 CI/CD的意义和价值

  • 敏捷开发思想的体现
  • 频繁自动化可重复。流程像管道,代码像水
  • 快速失败,尽早出现问题,尽早解决
  • 不能保证BugFree,所以提高发布频率,降低单次发布风险
  • 快速交付用户价值,拥抱市场变化

2. CI和CD的实现

2.1 CI的实现

CI重在个人对团队的交付,所以他关注的点有两个:

  • 保证协作质量

    • 代码风格检查
    • 版本规范
    • Git分支规范
    • 自动化单元测试、端到端测试
    • ...
  • 保证失败可回溯

    • 测试结果通知
    • Changelog记录
    • Code Review机制
    • ...

2.2 CD的实现

持续交付和持续部署的过程是对QA和最终用户的交付的过程

  • 持续交付

    • 多种级别的测试环境
    • QA团队对功能测试的快速响应
    • 自动化测试覆盖率的检查
    • 发布流程的标准化
    • ...
  • 持续部署

    • 完善的项目迭代机制
    • 渐进式的发布策略
    • 线上监控告警
    • 快速回滚能力
    • ...
相关文章
|
4月前
|
存储 文字识别 自然语言处理
通义大模型在文档自动化处理中的高效部署指南(OCR集成与批量处理优化)
本文深入探讨了通义大模型在文档自动化处理中的应用,重点解决传统OCR识别精度低、效率瓶颈等问题。通过多模态编码与跨模态融合技术,通义大模型实现了高精度的文本检测与版面分析。文章详细介绍了OCR集成流程、批量处理优化策略及实战案例,展示了动态批处理和分布式架构带来的性能提升。实验结果表明,优化后系统处理速度可达210页/分钟,准确率达96.8%,单文档延迟降至0.3秒,为文档处理领域提供了高效解决方案。
492 0
|
5月前
|
JSON 缓存 并行计算
NVIDIA 实现通义千问 Qwen3 的生产级应用集成和部署
阿里巴巴近期开源了通义千问Qwen3大语言模型(LLM),包含两款混合专家模型(MoE)235B-A22B与30B-A3B,以及六款稠密模型(Dense)从0.6B到32B不等。开发者可基于NVIDIA GPU使用TensorRT-LLM、Ollama、SGLang、vLLM等框架高效部署Qwen3系列模型,实现快速词元生成和生产级应用开发。
|
3月前
|
Cloud Native 中间件 调度
云原生信息提取系统:容器化流程与CI/CD集成实践
本文介绍如何通过工程化手段解决数据提取任务中的稳定性与部署难题。结合 Scrapy、Docker、代理中间件与 CI/CD 工具,构建可自动运行、持续迭代的云原生信息提取系统,实现结构化数据采集与标准化交付。
128 1
云原生信息提取系统:容器化流程与CI/CD集成实践
|
3月前
|
物联网 Linux 开发者
快速部署自己私有MQTT-Broker-下载安装到运行不到一分钟,快速简单且易于集成到自己项目中
本文给物联网开发的朋友推荐的是GMQT,让物联网开发者快速拥有合适自己的MQTT-Broker,本文从下载程序到安装部署手把手教大家安装用上私有化MQTT服务器。
993 5
|
5月前
|
人工智能 安全 Shell
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
Jupyter MCP服务器基于模型上下文协议(MCP),实现大型语言模型与Jupyter环境的无缝集成。它通过标准化接口,让AI模型安全访问和操作Jupyter核心组件,如内核、文件系统和终端。本文深入解析其技术架构、功能特性及部署方法。MCP服务器解决了传统AI模型缺乏实时上下文感知的问题,支持代码执行、变量状态获取、文件管理等功能,提升编程效率。同时,严格的权限控制确保了安全性。作为智能化交互工具,Jupyter MCP为动态计算环境与AI模型之间搭建了高效桥梁。
357 2
Jupyter MCP服务器部署实战:AI模型与Python环境无缝集成教程
|
4月前
|
缓存 安全 Java
Shiro简介及SpringBoot集成Shiro(狂神说视频简易版)
Shiro简介及SpringBoot集成Shiro(狂神说视频简易版)
355 6
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
11月前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
341 0
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
1036 6
|
Java 关系型数据库 MySQL
如何实现Springboot+camunda+mysql的集成
【7月更文挑战第2天】集成Spring Boot、Camunda和MySQL的简要步骤: 1. 初始化Spring Boot项目,添加Camunda和MySQL驱动依赖。 2. 配置`application.properties`,包括数据库URL、用户名和密码。 3. 设置Camunda引擎属性,指定数据源。 4. 引入流程定义文件(如`.bpmn`)。 5. 创建服务处理流程操作,创建控制器接收请求。 6. Camunda自动在数据库创建表结构。 7. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
888 4