持续集成与Devops关系

什么是持续集成

持续集成(Continuous Integration,简称CI),是一种软件开发实践,在实践中指只要代码有变更,就自动运行构建和测试,反馈运行结果。
通俗一点来讲,就是绑定项目的代码仓库,SVN或者Git库,自动抓取新的代码,完成构建,甚至执行测试,部署到服务器。

持续集成的好处:

  • 能够快速暴露错误。
  • 保证代码提交质量。
  • 定位错误更加容易。
  • 降低整体集成风险。
  • 促进产品快速迭代。

持续集成的特点:

  • 统一的代码库
  • 自动构建/测试
  • 每个人每天都要向代码库主干提交代码
  • 每次代码递交后都会在持续集成服务器上触发一次构建
  • 保证快速构建
  • 模拟生产环境的自动测试
  • 每个人都可以很容易的获取最新可执行的应用程序
  • 自动化的部署

什么是Devops

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。
通俗一点来讲,DevOps要求开发、测试、运维一体化,实现敏捷开发;DevOps从计划、编码、构建,测试、发布、部署,以及运营、监控打通,就是把敏捷开发部门和运维部门之间的围墙打通,形成闭环。

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

可以理解为devops是以持续集成为基础,衔接敏捷开发流程中的各个上下游环节形成的一套最佳实践。

持续集成中还有一个Pipeline流水线概念,简而言之,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。

原文地址:https://www.cnblogs.com/angryjj/p/11470456.html

时间: 2024-10-20 00:25:09

持续集成与Devops关系的相关文章

持续集成与devops

持续集成 持续集成(Continuous integration,简称C1),简单的说持续集成就是频紧地(一天多次)将代码集成到主干,它的好处主要有两个:1.快速发现错误.每完成一次更新,就集成到主干,可以快速发现错误,定位错误也比较容易.2.防止分支大幅偏离主干.如果不是经常集成,主干又在不断更新,会导致以后集成的难度变大,甚至难以集成.持续集成的目的,就是让产品可以快速迭代,同时还能保持高质量.. 持续交付 持续交付(Cortinuous delivery)指的是,频繁地将软件的新版本,交付

[转载]持续交付和DevOps的前世今生

作者/分享人:乔梁,20年IT老兵,腾讯公司高级管理顾问,敏捷和精益开发专家,持续交付领域先行者.曾就职于百度,国内多个知名互联网公司的企业教练. 历年QCon技术大会的讲师和专题出品人. 这是一个新概念风起云勇的时代. 就让我们从云端抓它几个名词下来,一起玩耍吧!!! “敏捷软件开发”,“增长黑客”,“持续集成”,“DevOps”,“精益创业”,“持续交付”,“大数据”... ... OK,就这四个啦: “敏捷软件开发”,“持续集成”,“DevOps”,“持续交付”. 先让我们在Wikiped

浅谈持续集成的理解以及实现持续集成,需要做什么?

一.持续集成是什么? 持续集成是一种软件开发的实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,也就意味着每天可能会发生多次集成.每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误.许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件. 持续集成指的是,频繁地(一天多次)将代码集成到主干,通过持续集成流程的进行自动化方式的构建,编译和测试,提供可以部署发布的单元包 持续集成的目的,就是让产品可以快速迭代,同时还能保持高

DevOps - 持续集成(Continuous Integration)

持续集成 持续集成(Continuous integration,简称CI)是软件的开发和发布标准流程中最重要的部分. 简单来说,就是持续不断地(一天多次)将代码合并(集成)到主干源码仓库,让产品可以快速迭代,同时保持高质量. 代码每次集成到主干之前,必须通过自动化测试,以便快速发现和定位错误. 持续集成并不能消除Bug,而是让它们非常容易发现和改正. 典型的CI流程 通用的CI流程 签出代码: 从源码管理系统里签出或者克隆最新的代码到本地开发环境 提交(commit): 基于主干分支创建一个新

DEVOPS技术实践_12:创建持续集成的管道

持续集成不仅包含了Jenkins或者相关其它的CI工具,也包含了包含代码如何控制,采用的什么分支策略等.不同的组织可能采用不同的类型的策略来完成CI,策略类型和项目的类型的有很大的关系. 一 分支策略 1.1 本实验分支 分支能够有效的对代码较好的管理,也是能够把工作的代码和开发环境的代码隔离的有效方式.主要有三种的分支策略类型– master分支– integration 分支– feature 分支 1.master分支 master分支也叫做生产分支,该分支的代码全部是经过测试OK的代码.

基于Jenkins打造符合DevOps能力成熟度三级标准的持续集成流水线

DevOps的核心是自动化,自动化的核心是标准化.而DevOps最重要的一环节是持续交付,持续交付中建设的重点是流水线,所以如何打造标准的持续交付流水线则为DevOps建设中最重要的一环,也是评估DevOps能力的一个重要的打分点.本文内容参照<研发运营一体化(DevOps)能力成熟度模型 第3部分:持续交付>,基于jenkins,对持续集成流水线建设的一些关键点进行技术应答,带领大家把方法论落地到具体的技术点上. 文中涉及到的几个名词解释:1,流水线:pipeline,一个应用程序从构建.部

Azure云中Web应用的持续集成实践

由于从事的工作领域关系,目前会或多或少的关注DevOps课题的相关领域,当然目前还在尝试多种适应于持续开发持续集成领域的工具和组合方式,个人粗浅的领会是DevOPS其实既不会只是开发者需要关注的,也是运维人员应该关注的领域,因为未来的IT世界其实是个"相对混合"的空间,发展之快超出想象:在开发测试领域的工具上看,Chef/Puppet/PowerShell DSC,到开源领域广泛应用Salt Stack, Ansible到 Docker生态圈等封装一系列基础架构即代码等概念的涌现,无时

CI/CD持续集成/持续部署 敏捷开发

敏捷软件开发(英语:Agile software development),又称敏捷开发,是一种从1990年代开始逐渐引起广泛关注的一些新型软件开发方法,是一种应对快速变化的需求的一种软件开发能力.它们的具体名称.理念.过程.术语都不尽相同,相对于"非敏捷",更强调程序员团队与业务专家之间的紧密协作.面对面的沟通(认为比书面的文档更有效).频繁交付新的软件版本.紧凑而自我组织型的团队.能够很好地适应需求变化的代码编写和团队组织方法,也更注重软件开发过程中人的作用. 1,CI/CD持续集

[首发]国内某大型银行的持续集成与交付实践

一.背景 随着架构的不断演进以及微服务技术在我行的深入应用,应用部署发布的复杂性大大增加,简单的代码配置管理模式.人工的版本记录及手工部署等发布操作和管理的模式,效率低.操作风险较大,因此急需从整体上提升我行软件持续交付的能力,降低应用部署发布的操作风险.通过引入构建自动化及可视化的软件交付流水线,整合从开发.构建.测试.部署.发布.运维等多个环节,加强各职能团队协助和沟通,全面实现项目构建持续自动化管理. 二.实施方法 1. 总体架构 DevOps是一组能够帮助软件开发团队极大的提高其软件交付