成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試題|Docker的優(yōu)缺點

運維 系統(tǒng)運維
Docker 主要解決環(huán)境配置問題,它是一種虛擬化技術,對進程進行隔離,被隔離的進程獨立于宿主操作系統(tǒng)和其它隔離的進程。

Docker解決的問題:

由于不同的機器有不同的操作系統(tǒng),以及不同的庫和組件,在將一個應用部署到多臺機器上需要進行大量的環(huán)境配置操作。

Docker 主要解決環(huán)境配置問題,它是一種虛擬化技術,對進程進行隔離,被隔離的進程獨立于宿主操作系統(tǒng)和其它隔離的進程。使用 Docker 可以不修改應用程序代碼,不需要開發(fā)人員學習特定環(huán)境下的技術,就能夠將現(xiàn)有的應用程序部署在其它機器上。

與虛擬機的比較:

虛擬機也是一種虛擬化技術,它與 Docker 最大的區(qū)別在于它是通過模擬硬件,并在硬件上安裝操作系統(tǒng)來實現(xiàn)。

啟動速度

啟動虛擬機需要先啟動虛擬機的操作系統(tǒng),再啟動應用,這個過程非常慢;

而啟動 Docker 相當于啟動宿主操作系統(tǒng)上的一個進程。

占用資源

虛擬機是一個完整的操作系統(tǒng),需要占用大量的磁盤、內存和 CPU 資源,一臺機器只能開啟幾十個的虛擬機。

而 Docker 只是一個進程,只需要將應用以及相關的組件打包,在運行時占用很少的資源,一臺機器可以開啟成千上萬個 Docker。

鏡像與容器:

鏡像是一種靜態(tài)的結構,可以看成面向對象里面的類,而容器是鏡像的一個實例。

鏡像包含著容器運行時所需要的代碼以及其它組件,它是一種分層結構,每一層都是只讀的(read-only layers)。構建鏡像時,會一層一層構建,前一層是后一層的基礎。鏡像的這種分層存儲結構很適合鏡像的復用以及定制。

構建容器時,通過在鏡像的基礎上添加一個可寫層(writable layer),用來保存著容器運行過程中的修改。

優(yōu)缺點:

    1.  部署方便

你一定還有印象,在我們最開始學習編程的時候,搭建環(huán)境這一步往往會耗費我們好幾個小時的時間,而且其中一個小問題可能需要找很久才能夠解決。你還會得到關于環(huán)境搭建方面的團隊其他成員的求助。而有了容器之后,這些都變得非常容易,你的開發(fā)環(huán)境就只是一個或者幾個容器鏡像的地址,最多再需要一個控制部署流程的執(zhí)行腳本?;蛘哌M一步將你的環(huán)境鏡像以及鏡像腳本放入一個git項目,發(fā)布到云端,需要的時候將它拉到本地就可以了。 

  1. # git clone https://github.com/my-project  
  2. # sh ./my-build-boot.sh 

目前我們團隊目前基本都是用這種方案搭建本地開發(fā)環(huán)境,而且整理成內部技術文檔,慢慢沉淀成團隊的財富了。

    2.  部署安全

當我們收到一個bug反饋的時候,很多時候心里面的第一反應一定是“我本地是好的啊”!這種情況的發(fā)生就在于環(huán)境的不一致,我們在開發(fā)過程中的調試往往不能保證其他環(huán)境的問題,但是我們卻要為此買單,這真是一件令人苦惱的事情。有了容器之后,這將很少發(fā)生。我們可以通過容器技術將開發(fā)環(huán)境和測試環(huán)境以及生產環(huán)境保持版本和依賴上的統(tǒng)一,保證代碼在一個高度統(tǒng)一的環(huán)境上執(zhí)行。而測試環(huán)境的統(tǒng)一,也同樣能解決CI流程對環(huán)境的要求。

分布式技術和擴容需求日益增長的今天,如果運維能夠使用容器技術來進行環(huán)境的部署,不僅僅在部署時間上節(jié)省不少,也能把很多因為人工配置環(huán)境產生的失誤降到最低。

    3.  隔離性好

不管是開發(fā)還是生產,往往我們一臺機器上可能需要跑多個服務,而服務各自需要的依賴配置不盡相同,假如說兩個應用需要使用同一個依賴,或者兩個應用需要的依賴之間會有一些沖突,這個時候就很容易出現(xiàn)問題了。所以同一臺服務器上不同應用提供的不同服務,最好還是將其隔離起來。而容器在這方面有天生的優(yōu)勢,每一個容器就是一個隔離的環(huán)境,你對容器內部提供服務的要求,容器可以自依賴的全部提供。這種高內聚的表現(xiàn)可以實現(xiàn)快速的分離有問題的服務,在一些復雜系統(tǒng)中能實現(xiàn)快速排錯和及時處理。(當然需要說明的是,這個隔離性只是相對于服務器比較的,虛機技術要擁有更好的隔離性)

    4.  快速回滾

容器之前的回滾機制,一般需要基于上個版本的應用重新部署,且替換掉目前的問題版本。在最初的時代,可能是一套完整的開發(fā)到部署的流程,而執(zhí)行這一套流程往往需要很長的時間。在基于git的環(huán)境中,可能是回退某個歷史提交,然后重新部署。這些跟容器技術相比都不夠快,而且可能會引起新的問題(因為是基于新版本的修改)。而容器技術天生帶有回滾屬性,因為每個歷史容器或者鏡像都會有保存,而替換一個容器或者某個歷史鏡像是非??焖俸秃唵蔚?。

    5.  成本低

這可能是一個最明顯和有用的優(yōu)點了,在容器出現(xiàn)之前,我們往往構筑一個應用就需要一臺新的服務器或者一臺虛機。服務器的購置成本和運維成本都很高,而虛機需要占用很多不必要的資源。相比之下,容器技術就小巧輕便的多,只需要給一個容器內部構建應用需要的依賴就可以了,這也是容器技術發(fā)展迅速的最主要原因。

    6.  管理成本更低

隨著容器技術的不斷普及和發(fā)展,隨之而來的容器管理和編排技術也同樣得到發(fā)展。諸如Docker Swarm,Kubernetes, Mesos等編排工具也在不斷的迭代更新,這讓容器技術在生產環(huán)境中擁有了更多的可能性和更大的發(fā)揮空間。而隨著大環(huán)境的發(fā)展,docker等容器的使用和學習的成本也是愈發(fā)降低,成為更多開發(fā)者和企業(yè)的選擇。

說了這么多的優(yōu)點,容器也有一些問題是沒有解決的。上一代方案基本就是基于虛機技術的云方案,能有效增加服務器的使用效率,達到節(jié)省成本的目的,而容器技術在此基礎上更進一步地優(yōu)化了資源的使用率。但是仍然有一些問題,是我們在選擇服務資源架構場景中需要考慮的:

1.隔離性

基于hypervisor的虛機技術,在隔離性上比容器技術要更好,它們的系統(tǒng)硬件資源完全是虛擬化的,當一臺虛機出現(xiàn)系統(tǒng)級別的問題,往往不會蔓延到同一宿主機上的其他虛機。但是容器就不一樣了,容器之間共享同一個操作系統(tǒng)內核以及其他組件,所以在收到攻擊之類的情況發(fā)生時,更容易通過底層操作系統(tǒng)影響到其他容器。當然,這個問題可以通過在虛機中部署容器來解決,可是這樣又會引出新的問題,比如成本的增加以及下面要提到的問題:性能。

2.  性能

不管是虛機還是容器,都是運用不同的技術,對應用本身進行了一定程度的封裝和隔離,在降低應用和應用之間以及應用和環(huán)境之間的耦合性上做了很多努力,但是隨機而來的,就會產生更多的網絡連接轉發(fā)以及數據交互,這在低并發(fā)系統(tǒng)上表現(xiàn)不會太明顯,而且往往不會成為一個應用的瓶頸(可能會分散于不同的虛機或者服務器上),但是當同一虛機或者服務器下面的容器需要更高并發(fā)量支撐的時候,也就是并發(fā)問題成為應用瓶頸的時候,容器會將這個問題放大,所以,并不是所有的應用場景都是適用于容器技術的。

3.  存儲方案

容器的誕生并不是為OS抽象服務的,這是它和虛機最大的區(qū)別,這樣的基因意味著容器天生是為應用環(huán)境做更多的努力,容器的伸縮也是基于容器的這一disposable特性,而與之相對的,需要持久化存儲方案恰恰相反。這一點docker容器提供的解決方案是利用volume接口形成數據的映射和轉移,以實現(xiàn)數據持久化的目的。但是這樣同樣也會造成一部分資源的浪費和更多交互的發(fā)生,不管是映射到宿主機上還是到網絡磁盤,都是退而求其次的解決方案。

隨著硬件技術和網絡技術的迭代發(fā)展,容器技術的缺點會變得越來越不那么明顯,而且隨著容器技術的發(fā)展和普及,對應的解決方案也會越來越多。所以總體來看,docker等容器技術會朝著更加普及的趨勢走近我們技術領域。也希望每一位熱愛技術的小伙伴們能更加了解這些新技術,讓它們能夠更好的為我們服務。 

 

責任編輯:龐桂玉 來源: 運維派
相關推薦

2023-09-12 10:49:44

Redis數據庫

2014-09-19 11:17:48

面試題

2020-06-04 14:40:40

面試題Vue前端

2013-03-18 10:00:21

面試題程序員面試官

2017-07-05 17:47:17

架構DockerContainer

2011-03-24 13:27:37

SQL

2023-11-13 07:37:36

JS面試題線程

2015-09-02 09:32:56

java線程面試

2009-06-06 18:36:02

java面試題

2009-06-06 18:34:05

java面試題

2021-10-09 09:52:17

云存儲公共云遷移

2010-11-26 10:53:29

戴爾

2014-07-15 11:10:01

面試題面試

2016-01-27 09:56:06

Docker云計算容器

2025-02-26 07:58:41

2009-06-16 14:03:16

Hibernate面試Hibernate面試

2013-05-29 10:23:36

Android開發(fā)移動開發(fā)Java面試題

2021-02-23 12:43:39

Redis面試題緩存

2020-11-05 10:01:35

系統(tǒng)設計軟件

2023-07-14 08:12:21

計時器unsafecontext
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品入口久久 | 亚洲电影免费 | 亚洲午夜精品视频 | 久久精品一区 | 久久不卡 | 伊人狠狠干| 99热视 | 久久精品一二三影院 | 亚洲成人精品久久 | 久久久国产精品 | a级片在线观看 | 日韩在线| 欧美精品在线播放 | 国产偷录叫床高潮录音 | 逼逼网| 午夜码电影 | 国产精品久久久久久吹潮 | 国产精品久久久久无码av | 中文字幕91av | 亚洲国产高清高潮精品美女 | 精品久久伊人 | 97伦理 | 欧美精品在线免费观看 | 亚洲深夜福利 | 狠狠色综合欧美激情 | 日韩视频在线免费观看 | 91亚洲视频在线 | 亚洲精品成人av久久 | 老司机精品福利视频 | 色永久 | 久久国产精品一区二区三区 | 福利网站在线观看 | 日韩a | 国产精品一区二区在线 | av在线一区二区三区 | 欧美激情综合色综合啪啪五月 | 欧美一区二区视频 | 日韩欧美国产一区二区 | 日韩三级免费观看 | 免费国产一区 | 久久精品a级毛片 |