服务器运维之家
    • 服务器运维之家
    服务器运维之家
    • 首页
    • 服务器运维
      • Linux技巧
      • Linux教程
      • 环境搭建
      • 运维编程
      • Windows系统
    • DNS/CDN相关
    • VPS优惠
      • 韩国VPS
      • 香港VPS
      • 美国VPS
    • 域名
    • 白嫖的知识
    • 工具干货
    • 网站主题
      • WordPress
      • Typecho
    • 开源代码
    服务器运维之家
    首页 » 服务器运维 » 环境搭建 » DevOps之一--自动化CI、CD基础概念
    环境搭建

    DevOps之一--自动化CI、CD基础概念

    2022年08月27日
    收录于话题
    #Devops之CI #CD概念

    一、 基础概念

    1. DevOps

    个人理解DevOps是 开发(Development)、技术运营(Operations) 和 质量保障(QA) 三者的交集。

    • 是一种重视软件开发人员(Dev)和IT运维技术人员(Ops)之间沟通合作的文化、运动或惯例,改善团队之间的协作关系;
    • 是一组过程、方法与系统的统称,包含开发、测试和运维;
    • 用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合;
    • 透过自动化“软件交付”和“架构变更”的流程,使得构建、测试、发布软件能够更加地快捷、频繁和可靠,按时交付软件产品和服务;
     
    DevOps之一--自动化CI、CD基础概念

    2. CI

    • Continuous Integration(CI) 持续集成,可以帮助开发人员 更加频繁 地(有时甚至每天)将 代码更改 合并到 共享分支或"主干" 中。一旦开发人员对应用所做的更改被合并,系统就会通过 自动构建 应用并运行不同级别的 自动化测试(通常是单元测试和集成测试) 来验证这些更改,确保这些更改没有对应用造成破坏。
    • 自动化测试内容需要涵盖从类和函数到构成整个应用的不同模块。如果自动化测试发现新代码有 bug,或和已有代码之间存在冲突,CI 可以更加轻松地快速发现这些问题,方便开发人员快速修复这些错误。

    2.1 CI的目的
    在产品快速迭代的同时保证代码质量。
    2.2 CI核心措施
    1)代码集成到主干之前,必须通过自动化测试,只要有一个测试用例失败,就不能集成。
    2)通过Code Review、代码质量分析工具对代码质量进行把关,以便确定是否能够集成。

    持续集成并不能消除Bug,而是让他们非常容易发现和改正。—— Martin Flower

    2.3 CI流程

    • 开发人员提交代码到 Source Repository (源代码仓库)
    • 触发 CI Server(持续集成服务器)的相关功能,执行 编译 -> 测试 -> 输出结果 的流程。
    • 向开发人员反馈结果的 report
      可以看出,持续集成的 核心 在于 确保新增的代码能够与原先代码正确的集成。与后续要介绍的持续交付以及持续部署,其最主要的差别也就在于其目标不同。


       
      DevOps之一--自动化CI、CD基础概念

    2.4 CI 的优势

    • 容易定位问题,保证开发质量。每次代码集成都会执行自动化测试,如果有 bug可以及时发现并处理,以确保代码质量。
    •  

       

      可有效控制开发方向,避免出现以下情况
       
      DevOps之一--自动化CI、CD基础概念

    3. CD

    这里的 CD 有两层含义:

    3.1 CD 持续交付(Continuous Delivery)

    • Continuous Delivery 指的是,新版本为了能够快速安全的交付到生产环境中,需要先将代码 CI(持续集成) 到 类生产环境 中,以便进行相应的业务验证、安全验证、性能验证等过程。一旦 类生产环境 验证通过,新版本可以随时发布到 生产环境。
    • 持续交付强调的是,不管怎么更新,软件是随时随地可以交付的。

    3.2 CD 持续部署(Continuous Deployment)

    • Continuous Deployment 指的是,新版本通过类生产环境的验证后,自动部署 到生产环境中。持续部署的 前提 是 自动化完成测试、构建、验证 等步骤。
    • 持续部署强调的是,开发人员对应用的更改在编写后的几分钟内就能生效(假设它通过了自动化测试)。这更加便于持续接收和整合用户反馈。

    4. 瀑布型 VS 敏捷型 VS DevOps + 敏捷型开发

    DevOps之一--自动化CI、CD基础概念

    二、常用 DevOps 工具

    包括版本控制&协作开发工具、自动化构建和测试工具、持续集成&交付工具、部署工具、维护工具、监控,警告&分析工具等等。具体如下:

    • 版本控制&协作开发:GitHub、GitLab、BitBucket、SubVersion、Coding、Bazaar
    • 自动化构建和测试:Apache Ant、Maven 、Selenium、PyUnit、QUnit、JMeter、Gradle、PHPUnit
    • 持续集成&交付:Jenkins、Capistrano、BuildBot、Fabric、Tinderbox、Travis CI、flow.ci Continuum、LuntBuild、CruiseControl、Integrity、Gump、Go
    • 容器平台: Docker、Rocket、Ubuntu(LXC)、第三方厂商如(AWS/阿里云)
    • 配置管理:Chef、Puppet、CFengine、Bash、Rudder、Powershell、RunDeck、Saltstack、Ansible
    • 微服务平台:OpenShift、Cloud Foundry、Kubernetes、Mesosphere
    • 服务开通:Puppet、docker Swarm、Vagrant、Powershell、OpenStack Heat
    • 日志管理:Logstash、CollectD、StatsD
    • 监控,警告&分析:Nagios、Ganglia、Sensu、zabbix、ICINGA、Graphite、Kibana

    拉取、预处理、编译、构建、打包、镜像、发布


     

    上一篇 linux 一键安装 docker,docker-compose
    下一篇 DevOps之二--Docker快速安装Jenkins

    相关信息

    Docker----对已经存在的docker如何修改时区

    2022年08月28日

    已经在运行中的docker怎么让他always开机启动

    2022年08月28日

    怎么把文件放到docker容器里

    2022年08月27日

    gitlab安装、备份、恢复、升级、内存消耗问题

    2022年08月27日

    热门推荐信息

    gitlab安装、备份、恢复、升级、内存消耗问题

    2022年08月27日

    gitlab安装、备份、恢复、升级、内存消耗问题

    centos7下安装指定版本gitlab方法(联网+本地两种方法)

    2022年08月11日

    在centos7下安装指定版本的gitlab

    使用Mailu.io搭建域名邮箱

    2022年08月14日

    使用Mailu docker搭建域名邮箱

    Docker----对已经存在的docker如何修改时区

    2022年08月28日

    对已经存在的docker如何修改时区

    宝塔面板的安全防护措施

    2022年08月10日

    最新内容

    Docker----对已经存在的docker如何修改时区

    2022年08月28日

    已经在运行中的docker怎么让他always开机启动

    2022年08月28日

    怎么把文件放到docker容器里

    2022年08月27日

    gitlab安装、备份、恢复、升级、内存消耗问题

    2022年08月27日

    DevOps之二--Docker快速安装Jenkins

    2022年08月27日
    文章导航
    关于本站
    服务器运维之家

    服务器运维,VPS运维,VPS选择,云主机选择,Linux命令

    © 2025 服务器运维之家.
    • 联系我们
    • 返回首页

    按 回车 搜索. 按 Esc 取消.