持續集成與Devops關系


什么是持續集成

持續集成(Continuous Integration,簡稱CI),是一種軟件開發實踐,在實踐中指只要代碼有變更,就自動運行構建和測試,反饋運行結果。
通俗一點來講,就是綁定項目的代碼倉庫,SVN或者Git庫,自動抓取新的代碼,完成構建,甚至執行測試,部署到服務器。

持續集成的好處:

  • 能夠快速暴露錯誤。
  • 保證代碼提交質量。
  • 定位錯誤更加容易。
  • 降低整體集成風險。
  • 促進產品快速迭代。

持續集成的特點:

  • 統一的代碼庫
  • 自動構建/測試
  • 每個人每天都要向代碼庫主干提交代碼
  • 每次代碼遞交后都會在持續集成服務器上觸發一次構建
  • 保證快速構建
  • 模擬生產環境的自動測試
  • 每個人都可以很容易的獲取最新可執行的應用程序
  • 自動化的部署

什么是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上的工作流框架,將原本獨立運行於單個或者多個節點的任務連接起來,實現單個任務難以完成的復雜流程編排與可視化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM