應用棧的復雜性一直往上增長,越來越復雜。應用棧一直都很復雜,但是從來沒有像現在這樣:這么多的服務,這么多的工具,這么多高性能計算機可用,這么多的新技術需要嘗試,并且用更新、更酷、更簡潔的方法來處理這些問題一直迫切需求以至于處于極大的壓力之下。有這么多好玩的(日益增長),“玩具盒”已經快要裝不下他們了。
如果你不熟悉 stackshare.io ,那就去看一看。這是一個很棒的資源,你從這可以看到很多公司是怎么生成他們應用的。這些方法不只有趣,還相當有意思。
花幾分鐘來看看那里部分的技術組合,你就會發現其中一些已經組裝好的技術組合實在是太吸引人了。這些是我特別喜歡的典范:(深呼吸)EC2 S3 Qubole MongoDB Memecached Redis Django Hadoop nginx Cassandra MySQL Google Analytics SendGrid Route53 Testdroid Varnish Zookeeper。
那里面有web服務器,web應用服務器,緩存代理服務器,挖掘服務,小部分Services-as-aservice,還有六種不同特色、功能的“數據庫”(里面既有開源的也有付費的服務,當然,未來需要付費的將會越來越少)
以前用白板筆在白板上寫 我們需要六種數據庫!!! 是不可想象的,但是現在隨著業務需求的增多,基礎設備得以迅猛發展,需要六種數據庫這種狀況也已經出現。一個開發人員選擇當前最好的新工具,無論對錯,那工具以他的方式進入了產品;那一刻,那個酷炫的新工具就已經變成了一個過時的工具,并且直到你重構產品前你不得不一直用(哈!)或者你離開去干別的,讓下一個可憐的倒霉蛋來接著用。
怎么應對呢?
那么開發人員怎么可能處理這種錯綜復雜的情況呢?超出大家的預料,事實證明這種狀況是可以處理的。
機智的下一代在線商業平臺,基于位置識別,集賭博、約會以及信息共享于一體,他需要大量不同的服務以及組件。但是羅馬不是一天建成的,再宏大的計劃在起初都是很簡單的,任何一個可縮放、混合的解決方案的單個組件都是起始于某處幾行簡單的代碼。對于大部分項目組來說,某處指的是幾個不起眼的開發人員的筆記本電腦和把他們結合在一起的git代碼庫。
我們談論云革命,但是基本不再談論個人電腦革命。結合虛擬化、容器化技術,當今開發人員的電腦完全能配置一個完整、復雜的多系統的環境。多“機器”現在只能是一種表面上的說法,因為這多個、單個“機器”很可能就普通地實例化在一個個人電腦上。
總結:目前安裝在單個個人電腦上的復雜的、多系統應用棧的開發環境現在已經很可靠、可復制,而且部分環境或者整個環境的改變很容易在整個項目組里共享,因此每個人都可以快速重新構建相同的環境。例如,使用由Vagrant生成、Ansible編排的多個虛機,ceph-ansible可以部署、測試安裝到個人電腦的多節點Ceph集群,一切都只需要一個命令:vagrant up。目前Ceph的開發人員正在使用這個工具。
這種復雜的多節點部署已經變得極為平常,這意味著當前各個機器之間的關系模型已經和管理單個機器上運行的東西一樣重要了。
Docker和Vagrant之所以成功,是因為他們采用兩種簡單方式來表達:“這機器上有這些內容,這是啟動的方法”。Ansible之所以成功,是因為他是一種簡單的表達方式,“這是這些機器怎么交互,這是啟動他們的方法”。綜合在一起,他們可以讓開發人員用一種方法來定義環境并且可以輕易的重建、部署復雜的多系統環境。
DevOps經常被談及,它的核心思想就是會話。這可能是對的,但是當所有人都說同一種語言時這個會話就是最成功的。Vagrant,Docker和Ansible已經看到了他們的成功,因為他們讓大家說同一種模型、部署的“語言”。
這篇由Greg Dekoenigsberg創作的文章來自于Easy DevOps 欄目。快來分享您的事例、建議,以此來使DevOps變得更加實用——寫上經歷里的工具、過程、文化,成功以及光彩或者不光彩的失敗,通過 osdc-admin@redhat.com 發送給我們把。
原文鏈接: Why tools like Docker, Vagrant, and Ansible are hotter than ever (翻譯:李敏 校對:)
本文由用戶
jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!