精品国产一级在线观看,国产成人综合久久精品亚洲,免费一级欧美大片在线观看

當前位置:云計算企業動態 → 正文

如何使用Docker精簡開發過程

責任編輯:editor006 作者:張春源 |來源:企業網D1Net  2015-11-26 15:08:02 本文摘自:CSDN

如何使用Docker精簡開發過程? Docker技術越來越火,這周希云和大家分享來自movio團隊的Jack Hopner和Jonathan Chow與大家探討的博文——我們將探索如何使用Docker簡化我們的開發過程。

我們的策略之一是將Moio的核心應用程序分割成更小的,單任務的微服務,它用來解決編碼復雜和保持靈活選擇技術的問題。然而,這種基于微服務的方法引來了其他的挑戰,比如確保正確配置應用程序的環境。為了支持這種情況,我們推薦使用Docker作為我們基礎設施的核心部分。

Docker允許你使用完整的操作系統環境打包應用,然后在軟件容器里運行應用程序。軟件容器類似于虛擬機,但更接近于機器。舉個例子,容器不會被預分配到內存,但在運行時向主機動態請求內存分配。

使用容器意味著像庫依賴這樣的事情可以獨立于主機系統被預安裝。其他的依賴諸如配置文件也能通過明智的默認文件被預設,并且被放置在應用程序預期的位置上。最終的結果是:使用Docker我們可以提供給每一個應用程序標準化的環境,即以同樣的方式運行在任何系統上。你已經安裝在宿主系統上的任何庫和包并不重要,因為應用程序并不會與它產生相互作用。

對于開發團隊來說,這顯然是便利:

應用程序被預見運行在不同的操作系統上

舉個例子,OS X系統和各種各樣的Linux系統,很令人痛苦的區別是:Apache的安裝位置和配置方式(或者如果默認的web服務器就是Apache!)運行Apache在容器內,意味著每個人都能依賴于相同的配置。

在你需要自定義配置的情況里,Docker允許你在啟動容器時設置環境變量,這時你可以改變容器的操作方式。Docker具有讓你安裝宿主系統的目錄和文件到容器里的功能。這里我們找到了一個好的做法,很有可能,去更好的使用放置彼此獨立的配置文件的文件夾,并且包含這些配置文件進入一個主配置文件中。這兩種技術允許容器的微調到達一個很精確的層次。

另外,你也許發現你自己處于這種情況下,你想安裝一個目錄以便通過容器內的進程創建的數據能在容器的生命周期外存在。一個符合種種情況的用例是當你有一個數據庫時,你也許想保持數據持久即使容器已經停止,異常或者奔潰了。安裝應用程序的數據目錄到主機上是實現這個目的的快捷方式,因為它將存儲所有的數據在主機上。

組件間集成相當輕松如果你有一個微服務需要與另一個團隊維護的微服務集成,所有你需要做的事情就是用Docker去拉取微服務,并且運行在你的本地壞境上,無須擔心其他依賴關系。

一個主要的好處是,這一過程忠誠的重復了這些服務在生產過程中如何進行相互作用,到如何進行溝通交流。這給了我們極大地自信,我們可以說我們在本地環境上的測試結果將精準的反應什么將在線上環境發生。

Docker鏡像是可組合的這允許我們重復利用我們已經完成的東西。我們已經收藏了一批來自于我們構建的核心鏡像, 這意味著我們所有的鏡像可獲得同樣的基礎設施。這使團隊使用其他團隊準備的鏡像文件變得容易。

在內部,Docker處理這些通過將鏡像的每一部分作為不同的層次來存儲,并且組合他們去生產出最終的鏡像。這種方法的一個好處是,通過共享基礎的鏡像,我們Docker庫的總規模大大降低了。這也意味著拉取新的鏡像將花費更少的時間,因為你拉取的鏡像中只有獨特的層會被檢索。

使用Docker鼓勵開發者、測試者和操作者更緊密的合作開發者需要自覺思考在開發環境之外運行的應用需要什么。這降低了由于墻外世界(開發環境外的世界)引起的問題。 “完成的”產品能如預期一般便捷使用,那他們就可以在線上“讓它運行”。

使用鏡像也意味著測試者的環境是標準的與線上產品統一的,這一切都只需要他們安裝Docker。他們不需要忍受糟糕的文檔,關于如何使應用程序運行他們,也能簡單容易的拉取準備好的鏡像文件并且立即使用他們。

Docker引來了一系列新挑戰嚴重依賴于Docker的組件機制意味著我們的一些鏡像有一長鏈的基礎鏡像依賴。舉個例子,我們有一個微服務被寫在Clojure里。這個服務將被建立在Clojure鏡像的頂部。然而,我們的Clojure鏡像創建于Java鏡像,反過來說,它依賴于我們的共有基礎鏡像。如果我們對基礎鏡像做了一個改動,每一個中間鏡像需要重新編譯以便我們的微服務能利用改動即使中間鏡像沒有做任何改變,這也添加了大量的開銷。

因為Docker依賴于Linux內核功能,使用它在OS X上確實需要一個虛擬機運行一個基于Linux的系統。官方的依賴工具是VirtualBox。這創建了一種獨特的情況,文件和文件夾需要先被安裝在虛擬機上,然后再放入Docker的容器內。雖然已經有工具為你處理了,某些操作如chown和chmod仍無法工作。

一個關聯的問題是用例對文件系統敏感。OS X的默認文件系統是用例不敏感,但是典型的linux系統是用例敏感。如果主機運行了OS X系統然后容器基于Linux,當文件在安裝目錄里時不正確的命名文件不會被注意到。一旦你嘗試運行容器在主機上,主機是一個用例敏感的文件系統時,將不會找到那個文件。

我們在一個權威的基于linux的機器上構建和測試我們的Docker鏡像,以此來解決這些問題。這能讓我們捕捉到在開發時可能被忽視的錯誤。

總結當使用Docker時, 無疑是緩慢的,這是一個正常的初始學習曲線,但是把每一件事都考慮進去,我們發現Docker增長了我們的開發效率,對加入小組的新成員進行入職培訓,通常需要花費數天時間,讓他們去建立本地環境,而這一過程伴隨著繁多的環境故障待排除。使用Docker,很少需要依賴本地環境,并且在大多數用例里,我們能在Docker引入我們應用的當天運行它。(責編/魏偉)

第九屆中國大數據技術大會將于2015年12月10-12日在北京隆重舉辦。在主會之外,會議還設立了16大分論壇,包含數據庫、深度學習、推薦系統、安全等6大技術論壇,金融、制造業、交通旅游、互聯網、醫療健康、教育等7大應用論壇和3大熱點議題論壇,票價折扣中預購從速

關鍵字:DockerMoiochmod

本文摘自:CSDN

x 如何使用Docker精簡開發過程 掃一掃
分享本文到朋友圈
當前位置:云計算企業動態 → 正文

如何使用Docker精簡開發過程

責任編輯:editor006 作者:張春源 |來源:企業網D1Net  2015-11-26 15:08:02 本文摘自:CSDN

如何使用Docker精簡開發過程? Docker技術越來越火,這周希云和大家分享來自movio團隊的Jack Hopner和Jonathan Chow與大家探討的博文——我們將探索如何使用Docker簡化我們的開發過程。

我們的策略之一是將Moio的核心應用程序分割成更小的,單任務的微服務,它用來解決編碼復雜和保持靈活選擇技術的問題。然而,這種基于微服務的方法引來了其他的挑戰,比如確保正確配置應用程序的環境。為了支持這種情況,我們推薦使用Docker作為我們基礎設施的核心部分。

Docker允許你使用完整的操作系統環境打包應用,然后在軟件容器里運行應用程序。軟件容器類似于虛擬機,但更接近于機器。舉個例子,容器不會被預分配到內存,但在運行時向主機動態請求內存分配。

使用容器意味著像庫依賴這樣的事情可以獨立于主機系統被預安裝。其他的依賴諸如配置文件也能通過明智的默認文件被預設,并且被放置在應用程序預期的位置上。最終的結果是:使用Docker我們可以提供給每一個應用程序標準化的環境,即以同樣的方式運行在任何系統上。你已經安裝在宿主系統上的任何庫和包并不重要,因為應用程序并不會與它產生相互作用。

對于開發團隊來說,這顯然是便利:

應用程序被預見運行在不同的操作系統上

舉個例子,OS X系統和各種各樣的Linux系統,很令人痛苦的區別是:Apache的安裝位置和配置方式(或者如果默認的web服務器就是Apache!)運行Apache在容器內,意味著每個人都能依賴于相同的配置。

在你需要自定義配置的情況里,Docker允許你在啟動容器時設置環境變量,這時你可以改變容器的操作方式。Docker具有讓你安裝宿主系統的目錄和文件到容器里的功能。這里我們找到了一個好的做法,很有可能,去更好的使用放置彼此獨立的配置文件的文件夾,并且包含這些配置文件進入一個主配置文件中。這兩種技術允許容器的微調到達一個很精確的層次。

另外,你也許發現你自己處于這種情況下,你想安裝一個目錄以便通過容器內的進程創建的數據能在容器的生命周期外存在。一個符合種種情況的用例是當你有一個數據庫時,你也許想保持數據持久即使容器已經停止,異常或者奔潰了。安裝應用程序的數據目錄到主機上是實現這個目的的快捷方式,因為它將存儲所有的數據在主機上。

組件間集成相當輕松如果你有一個微服務需要與另一個團隊維護的微服務集成,所有你需要做的事情就是用Docker去拉取微服務,并且運行在你的本地壞境上,無須擔心其他依賴關系。

一個主要的好處是,這一過程忠誠的重復了這些服務在生產過程中如何進行相互作用,到如何進行溝通交流。這給了我們極大地自信,我們可以說我們在本地環境上的測試結果將精準的反應什么將在線上環境發生。

Docker鏡像是可組合的這允許我們重復利用我們已經完成的東西。我們已經收藏了一批來自于我們構建的核心鏡像, 這意味著我們所有的鏡像可獲得同樣的基礎設施。這使團隊使用其他團隊準備的鏡像文件變得容易。

在內部,Docker處理這些通過將鏡像的每一部分作為不同的層次來存儲,并且組合他們去生產出最終的鏡像。這種方法的一個好處是,通過共享基礎的鏡像,我們Docker庫的總規模大大降低了。這也意味著拉取新的鏡像將花費更少的時間,因為你拉取的鏡像中只有獨特的層會被檢索。

使用Docker鼓勵開發者、測試者和操作者更緊密的合作開發者需要自覺思考在開發環境之外運行的應用需要什么。這降低了由于墻外世界(開發環境外的世界)引起的問題。 “完成的”產品能如預期一般便捷使用,那他們就可以在線上“讓它運行”。

使用鏡像也意味著測試者的環境是標準的與線上產品統一的,這一切都只需要他們安裝Docker。他們不需要忍受糟糕的文檔,關于如何使應用程序運行他們,也能簡單容易的拉取準備好的鏡像文件并且立即使用他們。

Docker引來了一系列新挑戰嚴重依賴于Docker的組件機制意味著我們的一些鏡像有一長鏈的基礎鏡像依賴。舉個例子,我們有一個微服務被寫在Clojure里。這個服務將被建立在Clojure鏡像的頂部。然而,我們的Clojure鏡像創建于Java鏡像,反過來說,它依賴于我們的共有基礎鏡像。如果我們對基礎鏡像做了一個改動,每一個中間鏡像需要重新編譯以便我們的微服務能利用改動即使中間鏡像沒有做任何改變,這也添加了大量的開銷。

因為Docker依賴于Linux內核功能,使用它在OS X上確實需要一個虛擬機運行一個基于Linux的系統。官方的依賴工具是VirtualBox。這創建了一種獨特的情況,文件和文件夾需要先被安裝在虛擬機上,然后再放入Docker的容器內。雖然已經有工具為你處理了,某些操作如chown和chmod仍無法工作。

一個關聯的問題是用例對文件系統敏感。OS X的默認文件系統是用例不敏感,但是典型的linux系統是用例敏感。如果主機運行了OS X系統然后容器基于Linux,當文件在安裝目錄里時不正確的命名文件不會被注意到。一旦你嘗試運行容器在主機上,主機是一個用例敏感的文件系統時,將不會找到那個文件。

我們在一個權威的基于linux的機器上構建和測試我們的Docker鏡像,以此來解決這些問題。這能讓我們捕捉到在開發時可能被忽視的錯誤。

總結當使用Docker時, 無疑是緩慢的,這是一個正常的初始學習曲線,但是把每一件事都考慮進去,我們發現Docker增長了我們的開發效率,對加入小組的新成員進行入職培訓,通常需要花費數天時間,讓他們去建立本地環境,而這一過程伴隨著繁多的環境故障待排除。使用Docker,很少需要依賴本地環境,并且在大多數用例里,我們能在Docker引入我們應用的當天運行它。(責編/魏偉)

第九屆中國大數據技術大會將于2015年12月10-12日在北京隆重舉辦。在主會之外,會議還設立了16大分論壇,包含數據庫、深度學習、推薦系統、安全等6大技術論壇,金融、制造業、交通旅游、互聯網、醫療健康、教育等7大應用論壇和3大熱點議題論壇,票價折扣中預購從速

關鍵字:DockerMoiochmod

本文摘自:CSDN

電子周刊
回到頂部

關于我們聯系我們版權聲明隱私條款廣告服務友情鏈接投稿中心招賢納士

企業網版權所有 ©2010-2024 京ICP備09108050號-6 京公網安備 11010502049343號

^
  • <menuitem id="jw4sk"></menuitem>

    1. <form id="jw4sk"><tbody id="jw4sk"><dfn id="jw4sk"></dfn></tbody></form>
      主站蜘蛛池模板: 巴塘县| 黄陵县| 三河市| 永康市| 遂昌县| 天气| 河间市| 宜州市| 凤凰县| 正安县| 新丰县| 临城县| 兴安盟| 色达县| 淄博市| SHOW| 岳池县| 威宁| 商城县| 兴文县| 东丽区| 基隆市| 浑源县| 通化县| 建德市| 昌乐县| 博爱县| 汨罗市| 锦屏县| 长宁县| 临安市| 金乡县| 静宁县| 文昌市| 延吉市| 昭通市| 盖州市| 淳安县| 武平县| 余干县| 贵溪市|