本文根據高效運維繫列微信羣的羣友投稿整理而成。「高效運維」公衆號做爲本系列羣的官方惟一公衆號,原創並獨家首發。git
歡迎關注「高效運維」公衆號,以避免費參加「運維講壇」每個月一次的線下交流活動;並搶先賞閱乾貨滿滿的各類原創文章(詳見文末)。github
王鵬(翻譯)sql
高浩淼(整理&發佈)docker
【編者按】近日,國外有技術專家在 SEI 攥文盤點了當下流行的 DevOps 思想和工具,其中包括Fabric、Ansible、Docker、Chaos Monkey等。本文系OneAPM與高效運維聯合編譯整理:數據庫
在2014年年末,SEI 博客發表了一系列有關 DevOps① 的博客文章,提供指南,實用的建議和教程。這些帖子針對愈來愈多的採用 DevOps 的企業(2011年以來,高達26%)。服務器
根據最近的研究②,這些組織部署變動代碼比傳統的方式快30倍。微信
儘管 DevOps 的好處顯而易見,可是許多企業仍不敢採用 DevOps,由於這須要轉變心態、文化和技術要求,對於傳統企業是很是大的挑戰。架構
鑑於這些障礙,CERT 研究人員的文章主要集中在介紹 Amazon③ 和 Netflix④ DevOps 的成功案例,以及一些 DevOps 流行技術的教程,如 Fabric⑤、Ansible⑤ 和 Docker⑥。運維
咱們將介紹2015年過去的六個月,10個最流行的 DevOps 相關文章(根據訪問次數排序)。本文介紹前5篇文章,後續有文介紹後5篇文章。點擊文末的「閱讀原文」便可欣賞本文的英文出處。nosql
這篇博客文章中,做者重點描述了使用 DevOps 部署過程相關的狀況,包括評估資源需求、設計生產系統、配置和生產服務器的配置、同步代碼等等。
如下爲摘錄:
部署代碼的工做流程幾乎和代碼自己同樣古老。有許多與部署過程相關聯的用例,包括評估資源需求、設計一個生產系統、配置和配置生產服務器、同步代碼等等。
在這篇博客文章中,我將會專一於配置一個遠程服務器上的軟件包和必要的軟件來執行您的代碼。這個用例可使用許多不一樣的,相互競爭的技術完成:
如:Chef、Puppet、Fabric、Ansible、Salt、Foreman,這些只是少數你可能已經聽到過的有關 DevOps 自動化運維之路的技術。
全部這些技術都有提供倉庫,能夠提交腳本到倉庫,並完成任務。這篇文章更深刻的探討了Fabric 和 Ansible。要了解更多關於其餘基礎設施即代碼的解決方案,看看關於 Docker 的文章⑥或關於 Vagrant 的文章⑦。
Fabric 和 Ansible 之間的一個區別是,Fabric 會讓你在幾分鐘內看到結果,而 Ansible 須要付出更多的努力去理解。一般來講,Ansible 是更強大的:
由於它提供了更深刻和更復雜的多層架構模型的語義,如 Web 和數據庫主機陣列。
從運維的角度看,Fabric 具備更直接和基本 API,可使用 Python 編寫,而 Ansible 使用 YAML,提供了豐富的操做(我之後再討論這篇文章)。咱們將經過這篇文章中的例子來講明。
閱讀完整的文章,DevOps 技術:Fabric 與 Ansible,請訪問
http://blog.sei.cmu.edu/post.cfm/devops-technologies-fabric-or-ansible
閱讀完整的文章,DevOps 之 Docker,請訪問
http://blog.sei.cmu.edu/post.cfm/devops-docker-015
Docker 這些日子在 DevOps 社區是至關火爆,這有很好的理由。Docker 容器使開發和部署應用軟件達到可控制的、隔離的、靈活的和高度可移植的基礎設施。
在這篇文章中,做者⑧介紹了使用 Docker 開發和部署軟件應用程序的可擴展性,資源效率,以及彈性。
如下爲摘錄:
Linux 容器技術(LXC),爲 Docker 的創建提供了基礎,然而這並非一個新想法。LXC 早已出如今 Linux 內核2.6.24版本中,當控制族羣(或 cgroups)正式被集成時。
實際上谷歌早在2006就使用了 Cgroups 技術,由於谷歌一直在尋找,在共享硬件上進行資源隔離和運行的方式。
事實上,谷歌認可每週會啓動200萬個容器,使用本身發佈的 LXC 容器imctfy ⑨。
不幸的是,這種技術並不容易被採用,直到 Docker 來簡化容器技術,使它更易於使用。
在沒有 Docker 的時代,開發者很難訪問,實現,更不用說要理解 LXC 的優勢。DotCloud⑩創始人、現任首席技術官 Solomon Hykes 發現 Docker 的潛力,在2013年三月份Docker做爲開源項目被髮布。
Docker的易用性是因爲其高層次抽象的API以及文檔。這使得 DevOps 社區充滿力量,並建立 Docker 教程、官方化應用程序和許多其餘的技術。經過下降進入容器技術的門檻,Docker 已經改變了開發人員共享、測試和部署應用程序的方式。
在這篇文章使用 Docker 開發⑪中,Yankel 描述瞭如何開始使用 Docker 在一個普通的軟件開發環境開發相應的軟件,經過啓動一個數據庫容器(MongoDB),一個 Web 服務容器(Python Bottle APP),並配置它們能夠互相訪問。這是一個多容器應用程序。
閱讀完整的文章,使用 Docker 開發,請訪問
http://blog.sei.cmu.edu/post.cfm/development-with-docker
常常閱讀 DevOps 博客的讀者會發現這個系列中會反覆出現的主題:
DevOps 本質上是經過精心的構建組織過程、增強溝通和工做流程來提高質量。
在本文⑫中,主要分享了 Amazon DevOps 的經驗。
閱讀完整的文章, DevOps 示例:Amazon AWS, 請訪問
http://blog.sei.cmu.edu/post.cfm/devops-casestudy-amazon-aws-036
DevOps 常常被運用在如敏捷開發、自動化和持續交付,DevOps 的精神能夠應用在不少方面。在這篇博客中,做者分享了另一個具備開創性的 DevOps 案例研究,Netflix⑭的一些開箱即用的方式。
如下爲摘錄:
Netflix 是一個奇妙的案例研究,由於他們的 DevOps 軟件工程過程,展現了一個對 DevOps 本質的瞭解,專一經過 DevOps 自動化輔助過程來達到質量要求。
DevOps 從業者信奉一種注重質量屬性的驅動來知足業務需求,利用自動化過程實現一致性和效率。
Netflix 的流媒體服務是一個託管在AWS的大型分佈式系統。因爲這麼多組件一塊兒工做,爲各個地區的客戶提供可靠的視頻流,Netflix 工程師須要側重於服務端-客戶端組件質量屬性的可靠性和魯棒性的。
總之,他們得出結論認爲,處理失敗的惟一方法是不斷實踐失敗。
爲了實現如此可信賴的,質量達標的水平,使用 DevOps 的風格,Netflix 公司的工程師開始使用自動化故障方案。
閱讀完整的文章,DevOps 示例:Netfix 的 Chaos Monkey,請訪問
http://blog.sei.cmu.edu/post.cfm/devops-case-study-netflix-and-the-chaos-monkey
後 5 篇文章也是很是的精彩哦。敬請期待。
每兩週,SEI 會發布一篇新的博客,爲那些嘗試採用 DevOps 的組織提供指南,實用的建議和教程。咱們歡迎您對本系列文章提供反饋,以及對將來內容的建議。請在下面的評論部分反饋意見。
① http://blog.sei.cmu.edu/post.cfm/what-is-devops-324
② http://readwrite.com/2014/02/11/devops-future-diy-it-gartner-nosql
③ http://blog.sei.cmu.edu/post.cfm/devops-casestudy-amazon-aws-036
④ http://blog.sei.cmu.edu/post.cfm/devops-case-study-netflix-and-the-chaos-monkey
⑤ http://blog.sei.cmu.edu/post.cfm/devops-technologies-fabric-or-ansible
⑥ http://blog.sei.cmu.edu/post.cfm/devops-docker-015
⑦ http://blog.sei.cmu.edu/post.cfm/devops-technologies-vagrant-345
⑧ http://www.sei.cmu.edu/about/people/profile.cfm?id=yankel_15790
⑨ https://github.com/google/lmctfy
⑩ https://www.dotcloud.com/
⑪ http://blog.sei.cmu.edu/post.cfm/development-with-docker
⑫ http://blog.sei.cmu.edu/post.cfm/devops-casestudy-amazon-aws-036
⑬ http://aws.amazon.com/
⑭ http://www.netflix.com/
「高效運維」公衆號(以下二維碼)值得您的關注,做爲高效運維繫列微信羣(國內領先的運維垂直社區)的惟一官方公衆號,每週發表多篇乾貨滿滿的原創好文:來自於系列羣的討論精華、運維講壇精彩分享及羣友原創等。「高效運維」也是互聯網專欄《高效運維最佳實踐》及運維2.0官方公衆號。
提示:目前高效運維兩個微信主羣僅有少許珍貴席位,如您願意,可添加蕭田國我的微信號 xiaotianguo 爲好友,進行申請;或申請加入咱們技術交流羣(技術討論爲主,沒有主羣那麼多規矩,更熱鬧)。
重要提示:除非事先得到受權,請在本公衆號發佈2天后,才能轉載本文。尊重知識,請必須全文轉載,幷包括本行及以下二維碼。