根據(jù)最近的研究②,這些組織部署變更代碼比傳統(tǒng)的方式快30倍。
盡管 DevOps 的好處顯而易見,但是許多企業(yè)仍不敢采用 DevOps,因為這需要轉(zhuǎn)變心態(tài)、文化和技術(shù)要求,對于傳統(tǒng)企業(yè)是非常大的挑戰(zhàn)。
鑒于這些障礙,CERT 研究人員的文章主要集中在介紹 Amazon③ 和 Netflix④ DevOps 的成功案例,以及一些 DevOps 流行技術(shù)的教程,如 Fabric⑤、Ansible⑤ 和 Docker⑥。
我們將介紹2015年過去的六個月,10個最流行的 DevOps 相關(guān)文章(根據(jù)訪問次數(shù)排序)。本文介紹前5篇文章,后續(xù)有文介紹后5篇文章。點擊文末的“閱讀原文”即可欣賞本文的英文出處。
1. DevOps技術(shù):Fabric與Ansible
這篇博客文章中,作者重點描述了使用 DevOps 部署過程相關(guān)的情況,包括評估資源需求、設(shè)計生產(chǎn)系統(tǒng)、配置和生產(chǎn)服務(wù)器的配置、同步代碼等等。
以下為摘錄:
部署代碼的工作流程幾乎和代碼本身一樣古老。有許多與部署過程相關(guān)聯(lián)的用例,包括評估資源需求、設(shè)計一個生產(chǎn)系統(tǒng)、配置和配置生產(chǎn)服務(wù)器、同步代碼等等。
在這篇博客文章中,我將會專注于配置一個遠程服務(wù)器上的軟件包和必要的軟件來執(zhí)行您的代碼。這個用例可以使用許多不同的,相互競爭的技術(shù)完成:
如:Chef、Puppet、Fabric、Ansible、Salt、Foreman,這些只是少數(shù)你可能已經(jīng)聽到過的有關(guān) DevOps 自動化運維之路的技術(shù)。
所有這些技術(shù)都有提供倉庫,可以提交腳本到倉庫,并完成任務(wù)。這篇文章更深入的探討了Fabric 和 Ansible。要了解更多關(guān)于其他基礎(chǔ)設(shè)施即代碼的解決方案,看看關(guān)于 Docker 的文章⑥或關(guān)于 Vagrant 的文章⑦。
Fabric 和 Ansible 之間的一個區(qū)別是,F(xiàn)abric 會讓你在幾分鐘內(nèi)看到結(jié)果,而 Ansible 需要付出更多的努力去理解。通常來說,Ansible 是更強大的:
因為它提供了更深入和更復(fù)雜的多層架構(gòu)模型的語義,如 Web 和數(shù)據(jù)庫主機陣列。
從運維的角度看,F(xiàn)abric 具有更直接和基本 API,可以使用 Python 編寫,而 Ansible 使用 YAML,提供了豐富的操作(我以后再討論這篇文章)。我們將通過這篇文章中的例子來說明。
閱讀完整的文章,DevOps 技術(shù):Fabric 與 Ansible,請訪問
http://blog.sei.cmu.edu/post.cfm/devops-technologies-fabric-or-ansible
2. DevOps 之 Docker
閱讀完整的文章,DevOps 之 Docker,請訪問
http://blog.sei.cmu.edu/post.cfm/devops-docker-015
3.使用Docker做開發(fā)
Docker 這些日子在 DevOps 社區(qū)是相當(dāng)火爆,這有很好的理由。Docker 容器使開發(fā)和部署應(yīng)用軟件達到可控制的、隔離的、靈活的和高度可移植的基礎(chǔ)設(shè)施。
在這篇文章中,作者⑧介紹了使用 Docker 開發(fā)和部署軟件應(yīng)用程序的可擴展性,資源效率,以及彈性。
以下為摘錄:
Linux 容器技術(shù)(LXC),為 Docker 的建立提供了基礎(chǔ),然而這并不是一個新想法。LXC 早已出現(xiàn)在 Linux 內(nèi)核2.6.24版本中,當(dāng)控制族群(或 cgroups)正式被集成時。
實際上谷歌早在2006就使用了 Cgroups 技術(shù),因為谷歌一直在尋找,在共享硬件上進行資源隔離和運行的方式。
事實上,谷歌承認(rèn)每周會啟動200萬個容器,使用自己發(fā)布的 LXC 容器imctfy ⑨。
不幸的是,這種技術(shù)并不容易被采用,直到 Docker 來簡化容器技術(shù),使它更易于使用。
在沒有 Docker 的時代,開發(fā)者很難訪問,實現(xiàn),更不用說要理解 LXC 的優(yōu)點。DotCloud⑩創(chuàng)始人、現(xiàn)任首席技術(shù)官 Solomon Hykes 發(fā)現(xiàn) Docker 的潛力,在2013年三月份Docker作為開源項目被發(fā)布。
Docker的易用性是由于其高層次抽象的API以及文檔。這使得 DevOps 社區(qū)充滿力量,并創(chuàng)建 Docker 教程、官方化應(yīng)用程序和許多其他的技術(shù)。通過降低進入容器技術(shù)的門檻,Docker 已經(jīng)改變了開發(fā)人員共享、測試和部署應(yīng)用程序的方式。
在這篇文章使用 Docker 開發(fā)?中,Yankel 描述了如何開始使用 Docker 在一個普通的軟件開發(fā)環(huán)境開發(fā)相應(yīng)的軟件,通過啟動一個數(shù)據(jù)庫容器(MongoDB),一個 Web 服務(wù)容器(Python Bottle APP),并配置它們可以互相訪問。這是一個多容器應(yīng)用程序。
閱讀完整的文章,使用 Docker 開發(fā),請訪問
http://blog.sei.cmu.edu/post.cfm/development-with-docker
4.DevOps 示例:Amazon AWS
經(jīng)常閱讀 DevOps 博客的讀者會發(fā)現(xiàn)這個系列中會反復(fù)出現(xiàn)的主題:
DevOps 本質(zhì)上是通過精心的構(gòu)建組織過程、加強溝通和工作流程來提升質(zhì)量。
在本文?中,主要分享了 Amazon DevOps 的經(jīng)驗。
閱讀完整的文章, DevOps 示例:Amazon AWS, 請訪問
http://blog.sei.cmu.edu/post.cfm/devops-casestudy-amazon-aws-036
5.DevOps示例:Netfix的Chaos Monkey
DevOps 經(jīng)常被運用在如敏捷開發(fā)、自動化和持續(xù)交付,DevOps 的精神可以應(yīng)用在很多方面。在這篇博客中,作者分享了另外一個具有開創(chuàng)性的 DevOps 案例研究,Netflix?的一些開箱即用的方式。
以下為摘錄:
Netflix 是一個奇妙的案例研究,因為他們的 DevOps 軟件工程過程,展示了一個對 DevOps 本質(zhì)的了解,專注通過 DevOps 自動化輔助過程來達到質(zhì)量要求。
DevOps 從業(yè)者信奉一種注重質(zhì)量屬性的驅(qū)動來滿足業(yè)務(wù)需求,利用自動化過程實現(xiàn)一致性和效率。
Netflix 的流媒體服務(wù)是一個托管在AWS的大型分布式系統(tǒng)。由于這么多組件一起工作,為各個地區(qū)的客戶提供可靠的視頻流,Netflix 工程師需要側(cè)重于服務(wù)端-客戶端組件質(zhì)量屬性的可靠性和魯棒性的。
總之,他們得出結(jié)論認(rèn)為,處理失敗的唯一方法是不斷實踐失敗。
為了實現(xiàn)如此可信賴的,質(zhì)量達標(biāo)的水平,使用 DevOps 的風(fēng)格,Netflix 公司的工程師開始使用自動化故障方案。
閱讀完整的文章,DevOps 示例:Netfix 的 Chaos Monkey,請訪問
http://blog.sei.cmu.edu/post.cfm/devops-case-study-netflix-and-the-chaos-monkey
說明
后 5 篇文章也是非常的精彩哦。敬請期待。
每兩周,SEI 會發(fā)布一篇新的博客,為那些嘗試采用 DevOps 的組織提供指南,實用的建議和教程。我們歡迎您對本系列文章提供反饋,以及對未來內(nèi)容的建議。請在下面的評論部分反饋意見。
① 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/
如何一起愉快地發(fā)展