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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章