请选择 进入手机版 | 继续访问电脑版

漫谈容器-鲸鱼驮着集装箱

[复制链接]
悟空 发表于 2019-11-5 09:02:44 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
w1.jpg

為人不識陳近南,便稱英雄也枉然。講的是江湖里的耳熟能詳的感覺。這個數據驅動、萬物互聯的時代,張口不能蹦??出幾個如IaaS、OpenStack、Dokcer之類的詞組,便感覺和這個雲化時代脫了節,Geek範兒少了不少。
然而,這幾個詞背後卻是一致的博大精深,先不說融會貫通,就是單點突破也非易事。之前的系列我們和大家介紹了OpenStack(您的新朋友OpenStack正飛奔而來,請做好準備),為大家走進雲計算的大門做了一點微小的貢獻,今天我們開啟一個新的話題,來聊聊另外一個重要的名詞,容器。 1 容器發展的腳步介紹容器之前,先糾正一個不嚴謹的概念。通過網絡搜索“容器”時,經常連在一起搜出了“Docker”,甚至在很多的介紹或科普里,容器就是Docker,Docker就是容器,讓人迷糊。如果用西瓜來做一個類比,你可以認為“西瓜”就是容器技術的泛指,Docker就是某段時間里一個具體的品種指代(比如特小鳳、8424),是一種容器技術解決方案。容器技術到今天,也經歷過一些發展,我們跟隨圖片看看容器技術發展的路線。
w2.jpg
回望歷史不難看出,開源世界的最精彩之處就在于借鑒、修改和改進,青出于藍而勝于藍。技術的進步總可以帶來新的可能。
2 集裝箱帶來的思考容器,就是裝載物品的工具,這個“裝載工具”在ICT領域又有怎樣的延展?還是得從虛擬機技術說起。人們很早就意識到“裝載工具”對于內容的重要性,不同的軟件或服務,需要的環境配置不同。開發運維人員都遇到過配置和遷移環境的痛苦,物理機器是有限的,如何在同一物理環境中配置多個不同的軟件服務,最早的解決方案是虛擬機技術。以系統虛擬機來說,大家都認為硬件抽象層基于Hypervisor的虛擬化方式可以最大程度上提供虛擬化管理的靈活性。各種不同操作系統的虛擬機都能通過Hypervisor來衍生、運行、銷毀。但是,每個虛擬機都需要運行一個完整的操作系統,並在其中安裝大量的應用程序,不僅復雜,性能較原生環境也有下降。為了對應用程序和其關聯性進行隔離,每次都要進行完整的硬件環境模擬和操作系統完整嗎?是否有更好的方式呢,大家開始思考。回頭看看我們的題圖,鯨魚背著的集裝箱,箱子里裝著我們需要的物品,大家並不關注箱子怎麼樣,是由哪條鯨魚運送到哪里,只要保證貨物平安運送到目的地,打開箱子貨物完好就可以啦。由于箱子按一定標準設計,並可以層層重疊,各個箱子里的貨物互不打擾。所以可以大量放置在鯨魚的背上運輸送到世界各地。
w3.jpg
這里的鯨魚運送的目的地就是不同的環境,可用可控且標準的集裝箱就是容器。不管什麼樣的目的地,都可以接受標準的集裝箱,無論集裝箱里裝的是什麼。
容器賦予了軟件獨立性,一個已經驗證過的軟件或服務,移植到另外一個地方,能夠立刻完美運行,不會出現差錯。 3 更輕更方便的虛擬化有了上面集裝箱的鋪墊,再來看下容器的概念。
w4.jpg
容器(集裝箱)是一個應用層抽象,用于將代碼和依賴資源(貨物)打包在一起形成一個容器鏡像(標準的打包裝箱)。不僅可以運行在不同的物理機或虛擬機上,也可以在同一台物理機或者虛擬機上運行。多個容器共享操作系統內核,但各自作為獨立的進程在用戶空間中運行。還記得上文提到的傳統虛擬機技術嗎?傳統虛擬機技術是虛擬出一套硬件後,在其上運行一個完整操作系統,在該系統上再運行所需應用進程;而容器內的應用進程直接運行于宿主的內核,容器內沒有自己的內核,而且也沒有進行硬件虛擬。那麼兩種虛擬技術有什麼區別呢?可以用租房來幫助下理解。如果說我們軟件大道上整租了一套商品房,雖然都是在一塊地上,但小區里的每戶人家都擁有獨立的客廳、臥室、書房、廚房和衛生間,關上門也相互獨立,外界寄來的信件、快遞也有獨立的地址。而容器則像剛畢業的同學們合租,房子還是在同樣的小區,最必須的臥室環境還是獨立的。但肯定會和舍友共用洗手間、廚房,外來的交互用的也是一個地址。合租和整租都解決了安放自己的需求,但共用的程度不盡相同。
w5.jpg
小編用圖片對兩者虛擬化方式進行了概括,不難看出,通過和傳統虛擬機技術的對比,容器技術最大的特點就是輕,而這個輕和方便體現在這幾個地方。
方便隔離︰這個是虛擬化技術的傳統藝能,容器技術當然擁有姓名快速使用︰根據鏡像的不同,容器的部署大概在毫秒之間,啟動也在秒級。比傳統虛擬機高到不知哪里去啦。易于遷移︰一次構建,隨處部署,保證了應用運行環境的一致性,拷貝不走樣。彈性伸縮︰利用容器管理平台,根據服務的容器資源佔用情況自動調整容器數量,就像金箍棒一樣可大可小。光說不練假把式,在ICT領域的實際工作中,它是如何開花結果的呢?
w6.jpg
開發層面,業務的快速開發,可以更快的改進產品,減少開發周期,提升業務水平。每次開發人員合入新的代碼,編譯並構建成測試容器鏡像,替換測試環境容器服務,自動運行測試。測試通過後,馬上就能自動將新版本鏡像更新到線上,完成服務升級,持續的集成與部署,大大提高了效率,我們也能更快地用上新功能啦。
應用層面,容器技術可以將傳統的應用容器化,更方便的獨立部署,同時出了問題也可以及時修改甚至銷毀。更為神奇的是,可以像拼接樂高一樣,根據使用場景,不僅可以快速進行相同容器的組合擴容,也可以將使用容器隔離的業務模塊組裝起來,就是一個新的應用,而且業務容器之間基本沒有影響,豈不美哉。開發和應用的容器化也讓傳統運維工作也得到了部分解放,運維人員不再需要操心復雜多變的環境,真正實現了一次開發多處運維,監控和定位和升級方式都更加簡單,當然,要學習的知識並沒有減少,哈哈。 4 豐富多彩的未來容器技術已經開始流行,但它和虛擬機技術並不存在替代關系,容器將繼續發展壯大,虛擬機也依旧擁有適合自己的生存空間。兩者有不同的使用場景,虛擬機偏重于資源強隔離,以及對資源的充分使用。而容器偏向于應用的隔離,有利于應用的快速迭代開發和運維。根據不同場景選擇最合適的技術,將兩種技術都應用在最為合適的地方,才能達到一加一大于二的效果。畢竟,這事兒就和找對象一樣,合適的才是最好的
w7.jpg

5 後記開篇小編就講過,相關的知識博大精深,單點突破非常不容易,所以上文只是讓大家對容器技術有個入門的認識。除了容器技術本身,多個容器之間是如何調度的,大家可以學習下這篇“10分鐘看懂Docker和K8S” 。如果想動手試試,歡迎大家在文後進行評論交流,點贊最多的小伙伴小編送出一本《第一本Docker書》,大家操練起來吧,筆芯?。

w8.jpg

w9.jpg

我們是一群平均從業年限5年+的通信專業工程師。

關注我們,帶你了解通信世界的精彩!

w10.jpg

掃碼關注回復“維護經驗”

可獲得最新維護經驗電子版
               
集装箱之家服务范围:集装箱售楼部,集装箱,集装箱民宿,集装箱展厅,集装箱售楼中心,集装箱别墅,集装箱公寓,集装箱酒店,集装箱客房,集装箱商业,创意集装箱,集装箱健身舱,集装箱便利店,集装箱快闪店等等。电话咨询:400-1363668,微信咨询:17601285773(手机同号)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题
阅读排行 更多
广告位
集装箱之家是国内最专业的集装箱建筑门户网站,是专业的规划、设计、制造、施工一体化服务平台(建成产品包括集装箱酒店、集装箱别墅、集装箱商业等)
关注我们
  • App下载

  • 扫描微信二维码

Powered by MyContainers! © 2008-2018 ArchNet Inc.( ICP16011403 )