持续集成与Devops关系

什么是持续集成

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

持续集成的好处:shell

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

持续集成的特色:api

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

什么是Devops

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

图片1.png
 

 

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运维

 

图片2.png
 

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

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

相关文章
相关标签/搜索