DevOps 初學者的入門指南

原文地址:http://blog.csdn.net/FIRim/article/details/52681704html

當咱們談到 DevOps 時,可能討論的是:流程和管理,運維和自動化,架構和服務,以及文化和組織等等概念。那麼,到底什麼是」DevOps」呢?ios

什麼是DevOps

隨着軟件發佈迭代的頻率愈來愈高,傳統的「瀑布型」(開發—測試—發佈)模式已經不能知足快速交付的需求。2009 年左右 DevOps 應運而生,簡單地來講,就是更好的優化開發(DEV)、測試(QA)、運維(OPS)的流程,開發運維一體化,經過高度自動化工具與流程來使得軟件構建、測試、發佈更加快捷、頻繁和可靠。git

flow.ci

關於 DevOps 是什麼,DevOps 的合著者 John Willis 寫了一個很是好的帖子,在這裏.docker

Devops 的好處與價值

2016 DevOps 新趨勢調查報告顯示,74% 的公司在嘗試接受 DevOps,那麼 Devops 有哪些好處與價值呢?shell

  • 代碼的提交直接觸發:消除等待時間,快速反饋api

  • 每一個變化對應一個交付管道:使問題定位和調試變得簡單markdown

  • 全開發流程高效自動化:穩定,快速,交付結果可預測架構

  • 持續進行自動化迴歸測試:提高交付質量併發

  • 設施共享並按需提供:資源利用最大化運維

以上能夠看出,DevOps 的好處更多基於在於持續部署與交付,這是對於業務與產品而言。而 DevOps 始於接受 DevOps 文化與技術方法論,它是部門間溝通協做的一組流程和方法,有助於改善公司組織文化、提升員工的參與感。

Devops與持續集成

DevOps 是一個完整的面向IT運維的工做流,以 IT 自動化以及持續集成(CI)、持續部署(CD)爲基礎,來優化程式開發、測試、系統運維等全部環節。

縱觀各個 DevOps 實踐公司的技術資料,最全面最經典的是 flickr 的10+ deploys per day最佳實踐提到的 DevOps Tools 的技術關鍵點:

1.Automated infrastructure(自動化,系統之間的集成) 2.shared version control(SVN共享源碼) 3.one step build and deploy(持續構建和部署) 4.feature flags(主幹開發) 5.Shared metrics 6.IRC and IM robots(信息整合)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

以上的技術要點由持續集成/部署一線貫穿,主幹開發是進行持續集成的前提,自動化以及代碼周邊集中管理是實施持續集成的必要條件。毫無疑問,DevOps 是持續集成思想的延伸,持續集成/部署是 DevOps 的技術核心,在沒有自動化測試、持續集成/部署之下,DevOps就是空中樓閣。

咱們作了一款 Hosted 持續集成產品—— flow.ci ,它融入了 workflow 機制的持續集成(CI)服務,也能夠理解爲自動化流程平臺,除了集成代碼、編譯、測試以外,還能夠集成經常使用的工具、靈活自定義流程,幫助大家塑造一個更優秀智能的 DevOps 環境。

flow.ci

DevOps 的技術棧與工具鏈

Everything is Code,DevOps 也一樣要經過技術工具鏈完成持續集成、持續交付、用戶反饋和系統優化的整合。Elasticbox 整理了 60+ 開源工具與分類,其中包括版本控制&協做開發工具、自動化構建和測試工具、持續集成&交付工具、部署工具、維護工具、監控,警告&分析工具等等,
補充了一些國內的服務,可讓你更好的執行實施 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

flow.ci

順便再分享一個 DevOps BookMarks,涉及了DevOps方方面面的工具和內容,有興趣的同窗能夠去學習下。

DevOps 最佳實踐

自 2009 年提出 DevOps 的概念起,不少公司都開始實施 DevOps,國外比較著名的有Amazon 、Google、Facebook等,國內著名的有百度、華爲、阿里等。Amazon 是 DevOps 最佳實踐的最有說服力的表明之一。這是 Amazon 在 Why We Need DevOps 一個月的 DevOps 快照:

11.6 seconds: 平均部署時長 (工做日) 1,079: 一小時的最大部署量 10,000: 主機平均併發接收部署量 30,000: 主機最高併發接收部署量
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

從早期的大型 SOA (Service Oriented Architecture)到 DevOps 文化的造成,Amazon 的每一個工程師均可以徹底獨立地編寫代碼,測試代碼,版本管理,部署上線,服務監測等任務。這套內部強大的 DevOps 文化最終造成核聚變, Amazon 一躍成爲世界級別的雲服務領導者 —— Amazon Web Services (AWS)。

除了 Amazon 外還有一些國內外的 DevOps 實踐公司,一塊兒來看看。

  • flickr

最全面最經典的是 flickr 的10+ deploys per day,簡直是 DevOps 教科書般的存在。

  • 百度

百度技術團隊是如何利用DevOps,來看看解密百度持續交付方法與實踐

  • 騰訊

百度技術團隊是如何利用DevOps,來看看解密百度持續交付方法與實踐

  • Netflix

解密Netflix 技術團隊在整個 DevOps 過程當中使用的部署工具和服務.

How We Build Code at Netflix.

  • Etsy

2009年,Etsy創建本身的工具來更好更快地部署發佈,「Etsy 如何應用 DevOps」值得一讀。

  • LinkedIn

2009年,LinkedIn 團隊就開始使用自動化部署工具,用於管理在1000+節點環境下發布上千個應用/服務的複雜性。這是 LinkedIn 本身造的輪子 >>Deployment and Monitoring Automation with glu.

  • Airbnb

Airbnb 做爲第三方平臺公司,須要迅速發佈多個小型部署。關於 Airbnb 的數據和基礎設施,能夠參考這個slides

  • Starbucks

星巴克的 DevOps 計劃>> Starbucks Announces #DevOpsTogether.

  • Ancestry.com

Ancestry.com 是 DevOps 運動的早期採用者,是 Continuous Delivery 和 DevOps 運動的先鋒。想了解更多關於他們的過程、遷移和 DevOps 文化,不妨查看一下他們的系列文章http://blogs.ancestry.com/techroots/category/devops/

DevOps = Culture + Tools

若是想整個業務部署 DevOps,不但須要軟性要求即從上而下的培養 DevOps 文化自上而下地進行探索,也有硬性工具鏈要求,才能得到更高質量的軟件交付。

最後,不論你是技術Leader,仍是一名Dev、QA 或 Ops,實現全面的 DevOps 很是理想化也十分有挑戰,但願這份 DevOps 初學者指南是一個好的開始:)


flow.ci 是融入了 workflow 機制的持續集成(CI)服務,也能夠理解爲自動化流程平臺,除了集成代碼、編譯、測試以外,還能夠集成經常使用的工具、靈活自定義流程。1 分鐘便可完成開發測試環境搭建,開啓第一個 Build。

本文來自 flow.ci 官方博客,轉載請聯繫:)

相關文章
相關標籤/搜索