持續集成與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上的工做流框架,將本來獨立運行於單個或者多個節點的任務鏈接起來,實現單個任務難以完成的複雜流程編排與可視化。工具

相關文章
相關標籤/搜索