欧美麻豆久久久久久中文_成年免费观看_男人天堂亚洲成人_中国一级片_动漫黄网站免费永久在线观看_国产精品自产av一区二区三区

中培偉業IT資訊頻道
您現在的位置:首頁 > IT資訊 > 軟件研發 > Java開發人員應注意的Docker認識誤區

Java開發人員應注意的Docker認識誤區

2017-01-19 16:54:44 | 來源:中培企業IT培訓網

Docker最近備受關注,在Docker快速發展的當下,很多技術人員對Docker的認識還存在一些誤區,中培偉業《企業級Java高級開發最佳實踐》培訓專家李老師在這里對相關的誤區進行了詳細介紹。


誤區一: Docker是輕量級虛擬機


這是大家初學Docker時最主要的誤解。這種誤解倒也情有可原,Docker的確看上去有點像虛擬機。Docker網站上甚至有人比較了Docker和虛擬機的區別。但是,Docker實際上不是輕量級虛擬機,而是改進了的Linux容器(LXC)。Docker和虛擬機是完全不一樣的,如果你把Docker容器當成輕量級虛擬機來用,會遇到很多問題。


在使用Docker之前,必須了解Docker容器和虛擬機有很多本質的區別。


資源隔離:Docker達不到虛擬機所能提供的資源隔離水平。虛擬機的資源是高度隔離的,而Docker從設計之初就需要共享一些資源,這些資源是Docker無法隔離和保護的,比如頁緩存和內核熵池。如果Docker容器占用了這些共享資源,那么其它進程在這些資源被釋放前只能等待。


開銷:大多數人都知道虛擬機的CPU和RAM能提供類似物理機的性能,但是有很多額外的IO開銷。因為放棄了虛擬機的guest OS,Docker的package更小,比起虛擬機需要更少的存儲開銷。但這并不意味著Docker沒有任何開銷問題。Docker容器依然需要注意 IO開銷的問題,只不過沒有虛擬機嚴重而已。


內核使用:Docker容器和虛擬機在內核使用上完全不同。每個虛擬機使用一個內核。Docker容器則是在所有容器間共享內核。共享內核帶來一些 效率的提升,但是以高可用和冗余為代價。如果虛擬機發生了內核崩潰,只有這個內核上的虛擬機會受影響。而Docker容器如果內核崩潰了,所有的容器都會 受影響。


誤區二. Docker使得應用可擴展


因為Docker可以在很短的時間內在多個服務器上部署代碼,自然有人會覺得Docker可以讓應用自身變得可擴展。不幸的是,這是錯誤的。代碼是 應用的基石,而Docker并不會重寫代碼。應用的可擴展性依然取決于程序員。使用Docker并不會自動得讓你的代碼易于擴展,只是讓這些代碼更容易跨 服務器部署而已。


誤區三. Docker在生產環境廣為使用


因為Docker勢頭正勁,很多人便認為Docker可以在生產環境上大規模使用。事實上,這是不對的。注意Docker還是很新的技術,還不成 熟,正在成長,這意味著還有很多煩人的bug和待完善的功能。對新技術感興趣這沒錯,但是最好要弄清楚新技術的正確使用場景和需要注意的地方。現 在,Docker很容易應用到開發環境。使用Docker可以很容易地搭建出很多不同的環境(至少,給人的感覺是能夠搭建出不同的環境),這對于開發很有 用。


而在生產環境中,Docker的不成熟和不完善也限制了使用場景。比如,Docker不直接支持對多機器的網絡和資源的監控,這使得它幾乎無法在生 產環境中使用。當然也有很多有潛力的地方,比如可以將同一個package從開發環境直接部署到生產環境。還有一些Docker運行時特性對于生產環境也 很有用。但是總的來說,在生產環境里,目前不足多于優勢。這并不是說無法成功運用到生產環境,只是現在還不能指望它一下子成熟和完美。


誤區四: Docker是跨OS的


另一個誤解是Docker在任意操作系統和環境上都可以工作。這可能來自于裝卸貨物的集裝箱的類比,但是軟件和操作系統的關系可不像船位那么簡單直接。


實際上,Docker只是Linux上的技術。并且Docker依賴特定的內核特性,必須要有最新版本的內核才行。基于不同OS的差異性,跨OS 時,如果使用的不是最底層通用的特性,會遇到很多麻煩的問題。這些問題可能只有1%的發生率,但是當你在多臺服務器上部署時,1%也是致命的。


雖然Docker只在Linux上運行,但是也可以在OS X或者Windows上使用Docker。使用boot2docker會在OS X或Windows機器上運行一個Linux虛擬機,這樣Docker可以在這個虛擬機里運行。


誤區五: Docker增強應用的安全性


覺得Docker可以改進代碼和交付代碼過程的安全性,這也是誤解。這也是真實的集裝箱和軟件上容器的差別。Docker是一種容器化技術,添加了 編排方法。但是Linux的容器有一些安全漏洞可能會被攻擊。Docker并沒有為這些漏洞添加任何安全層或者補丁。


從Java角度看


一些Java開發人員已經開始使用Docker。Docker的某些特性讓我們更容易構建可擴展的上下文環境。不像uber-jar,Docker 可以幫助你將所有的依賴(包括JVM)打包到一個隨時可發布的鏡像中。這也是Docker對于開發人員來說最迷人的地方。但是,這也會帶來一些隱患。一般 來說,程序員需要用不同的方式和代碼交互 – 監控它,調試它,連接它,調優它….如果使用Docker,這些都會需要額外的工作。


另外一個很嚴重的問題是Docker容器的性能調優相當困難。當使用容器時,你不知道每個容器到底會分配多少內存。如果你有20個容器,內存會以你 不確定的方式分配給它們。如果你打算用參數-Xmx調優堆的大小,就很困難,因為對Docker容器內JVM的處理取決于能夠自動得到該容器分配到的內存 大小。如果都不知道分配了多少內存,性能調優幾乎不可能。

標簽: Java開發
主站蜘蛛池模板: 高清国语自产拍免费视频 | 高挑美女被遭强高潮视频 | おじさんとわたし中文在线 | 国产真实情侣MV | 中文字幕人成无码免费视频 | 中国少妇内射XXXXX-百度 | 啦啦啦中文在线视频免费观看 | 国产普通话刺激视频在线播放 | 东京热男人aV天堂 | 男女一级毛片 | 激情内射日本一区二区三区 | 欧美乱妇高清免费96欧美乱妇高清 | 乱人伦人妻中文字幕无码久久网 | 亚洲精品宾馆在线精品酒店 | 樱花视频在线观看进击的巨人第三季 | 四虎影院在线视频 | 欧美乱妇欲仙欲死视频 | 青椒国产97在线熟女 | 少妇一晚三次一区二区三区 | 在线观看国内自拍 | 久久被窝亚洲精品爽爽爽 | 999视频在线 | 被强到爽的邻居人妻 | 日本国产一级片 | 性一交一无一伦一精一品 | 免费久久网 | 免费黄色大片在线观看 | 男人被口爽还是啪啪爽 | 久久只精品99品免费久23 | 人妻少妇被猛烈进入中文字幕 | 久久国产劲暴∨内射 | 成人免费xxxxx在线视频 | 嫩草视频在线观看 | 蜜臀精品无码AV在线播放 | 香港aa三级久久三级 | 欧美激情肉欲高潮无码鲁大师 | 99久久国产综合精品女乱人伦 | 免费看欧美成人A片无码 | 男女裸体下面进入的免费视频 | 亚洲欧洲日产国码综合在线 | 饥渴丰满少妇大力进入 |