持续集成与部署(一):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团队对功能测试的快速响应
    • 自动化测试覆盖率的检查
    • 发布流程的标准化
    • ...
  • 持续部署

    • 完善的项目迭代机制
    • 渐进式的发布策略
    • 线上监控告警
    • 快速回滚能力
    • ...
相关文章
|
8天前
|
JavaScript 前端开发 持续交付
Prettier 高级应用:集成 CI/CD 流水线与插件开发
【10月更文挑战第18天】Prettier 是一款流行的代码格式化工具,它能够自动将代码格式化成一致的风格,从而提高代码的可读性和维护性。对于希望进一步发挥 Prettier 潜力的高级用户而言,将 Prettier 集成到持续集成(CI)和持续部署(CD)流程中,确保每次提交的代码都符合团队标准,是非常重要的。此外,通过开发自定义插件来支持更多语言或扩展 Prettier 的功能也是值得探索的方向。本文将详细介绍这两方面的内容。
25 2
|
19天前
|
运维 监控 Devops
DevOps实践:持续集成与部署的自动化之旅
【10月更文挑战第7天】在软件开发领域,DevOps已成为提升效率、加速交付和确保质量的关键策略。本文将深入探讨如何通过实施持续集成(CI)和持续部署(CD)来自动化开发流程,从而优化运维工作。我们将从基础概念入手,逐步过渡到实际操作,包括工具选择、流程设计以及监控和反馈机制的建立。最终,我们不仅会展示如何实现这一自动化流程,还会讨论如何克服常见的挑战,以确保成功实施。
55 9
|
17天前
|
缓存 监控 测试技术
掌握容器化持续集成/持续部署(CI/CD)的最佳实践
【10月更文挑战第8天】本文介绍了容器化持续集成/持续部署(CI/CD)的最佳实践,涵盖容器化CI/CD的概念、优势和实施步骤。通过使用容器技术,可以实现环境一致性、快速迭代和易于扩展,提高软件开发的效率和可靠性。文章还详细讨论了编写高效的Dockerfile、自动化测试、安全性、监控和日志管理等方面的最佳实践。
|
4天前
|
运维 安全 Devops
DevOps实践:持续集成与持续部署(CI/CD)的自动化之路
【10月更文挑战第22天】在软件交付的快速迭代中,DevOps文化和实践成为企业加速产品上市、保证质量和提升客户满意度的关键。本文将通过一个实际案例,深入探讨如何利用持续集成(Continuous Integration, CI)和持续部署(Continuous Deployment, CD)实现软件开发流程的高效自动化,包括工具选择、流程设计以及问题解决策略。我们将一起探索代码从编写到部署的全自动化旅程,揭示其对企业运维效率和产品质量所带来的深远影响。
|
12天前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
|
26天前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
75 0
|
4月前
|
监控 druid Java
spring boot 集成配置阿里 Druid监控配置
spring boot 集成配置阿里 Druid监控配置
260 6
|
4月前
|
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. 启动应用,测试流程启动,如通过服务和控制器开始流程实例。 示例代码包括服务类启动流程实例及控制器接口。实际集成需按业务需求调整。
317 4
|
4月前
|
消息中间件 Java 测试技术
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
【RocketMQ系列八】SpringBoot集成RocketMQ-实现普通消息和事务消息
288 1
|
5月前
|
消息中间件 Java Kafka
springboot集成kafka
springboot集成kafka
162 2