天天看點

阿裡雲王牌架構師二問開發者:容器和虛拟化你會怎麼選?

阿裡雲王牌架構師二問開發者:容器和虛拟化你會怎麼選?

阿裡雲進階解決方案架構師 楊旭

世界最大混合雲的總架構師,4年前,開始作為雙11阿裡雲技術負責人,負責搭建全球最大的混合雲結構,把 “雙11”的電商業務和技術場景在阿裡雲上實作,并保障這個混合雲在雙11當天能夠滿足全球客戶的購物需求。

正文:

随着IT技術的發展,特别是serverless概念被提出以後,網絡上出現了很多唱衰虛拟化以及對未來虛拟化方向的讨論,很多文章都做了vm和容器的對比,任何一種技術存在都有其合理性,我們不妨客觀分析兩種技術的特點選擇适合自己業務的,才是最重要的,開始之前先再簡單介紹下兩種。

技術的定義:

所謂虛拟機(VM)就是對作業系統的完全模拟,虛拟機是架構在虛拟化指令之上,需要特定的硬體、軟體同時的支援,,每台虛拟機會預配置設定需要的資源,包括CPU,記憶體,磁盤等,以及一個完整的使用者作業系統

容器就是隔離一個運作環境,每個封裝好的隔離環境我們就稱為一個容器,容器包含應用以及其運作的依賴包,容器之間大家互相共享核心,所有的容器在主控端作業系統中以分離的程序運作。

阿裡雲王牌架構師二問開發者:容器和虛拟化你會怎麼選?

圖檔來自網絡

從圖上可以看出容器和虛拟機最大的差別就是容器沒有Hypervisor這一層,每個容器和主控端共享資源,主要為了解決了傳統Hypervisor帶來的性能開銷;反之,虛拟化創造的是更加隔離的環境,每個虛拟機有獨立的guest os,大家各自封閉運作,所有應用程式跑在虛拟機内部,不會因為某個虛拟機内部應用程式

的漏洞給主控端造成危害,虛拟化技術是在硬體資源層面的虛拟,容器技術則是對應作業系統的程序層面,下面從幾個方面做進一步對比:

阿裡雲王牌架構師二問開發者:容器和虛拟化你會怎麼選?

容器技術之是以火的原因筆者總結主要有三個:

1.傳統IT訴求的演進

随着資源使用率,裝置可維護性等問題的解決,人們對于資源的關注從基礎iaas層開始向上發展,特别是微服務等概念的提出,大家都從一個大而全的應用演變成希望一個應用就隻完成某個特定的功能,,更希望今天我們的開發是開箱即得,按需索取,并且 "build once,run everywhere,徹底解決應用的部署,分發,可用性,可運維性,監控等問題運維等問題,特别是線上線下的相容性,我相信很多開發都遇到測試環境調通一到線上就挂的囧境,為什麼—環境不一緻導緻,今天容器又天然就和微服務的理念是match的。

DevOps最佳實踐

運維這個職位是個吃力不讨好的高危行業,幹對了你是應該了,幹錯了第一個責任人就是你,運維本身不像研發沒有實際産出,不出問題的時候大家不會感覺到你的存在,是以作為運維的職業如何在公司快速發展的業務過程中找到自我價值和定位是很多運維人在探索的方向,google最早對運維進行了重新定義,提出SRE的概念,并且結合devops在實際工作中的落地,取得了很好的效果,阿裡在這條路上也進行了探索,并且覺得docker是最佳的落地方式,今天阿裡也在做大規模的docker化,今天做docker化是為了解決我們環境不一緻問題,提升我們的開發和釋出效率,在阿裡内部,docker和虛拟化根據各自處理場景的不通互相融合的非常好。

阿裡雲王牌架構師二問開發者:容器和虛拟化你會怎麼選?

最底層的ECS服務可以是多種媒體的異構,傳統的kvm,最新的神龍裸金屬伺服器,GPU,FPA方案,上層可以直接對使用者提供VM,也可以是容器,是以的容器服務都基于ECS來建構,最頂層的業務平台根據自身需求可以通過k8來進行容器的定義也可以通過paas平台直接調用api進行虛拟資源的彈性伸縮。

對性能的要求

傳統部署在實體機上的高IO業務有服務化需求之後自然想到的就是docker+實體機,例如資料庫服務,在未經優化的情況下,在虛拟機化上跑I/O業務性能将受損失。經過可靠的測試虛拟化對于實體硬體的損耗在優化的情況下也要有5%左右。

未來大部分業務系統将會變成虛拟機+Docker形式的組合,作業系統和Docker本身采用虛拟機鏡像方式部署,軟體、業務依賴元件,業務定義等與業務相關屬性采用容器鏡像,既實作安全隔離有提升資源的高使用率。

阿裡雲王牌架構師二問開發者:容器和虛拟化你會怎麼選?

當然我們需要去優化和解決虛拟化以及容器帶來的性能損耗,阿裡雲在裸金屬伺服器上的探索通過将虛拟化邏輯offload到神龍的MOC卡中,通過專有硬體方案來解決虛拟化的損耗,這樣實體機本身的性能就和普通PC無異,完全給到業務使用,基于裸金屬的方案可以跑anystack的方案,可以支援xen,kvm,vmware等,在阿裡内部,已經開源的pouch通過内部大量場景的優化加上基于神龍的底座方案可以将整個三層的損耗做到<3%,讓我們既做到了服務化又不損失性能。

【往期回顧】

1.阿裡雲王牌架構師一問開發者:我需要一個高并發的架構,我的系統要改造成微服務嗎

https://yq.aliyun.com/articles/623271?spm=a2c4e.11155435.0.0.120433122PgFrW

2.阿裡雲王牌架構師楊曦:也談系統緩存設計誤區及高階使用技巧

https://yq.aliyun.com/articles/624061

3.阿裡雲王牌架構師楊曦:N多環境N多應用個性配置管理如何從混亂到簡單?

https://yq.aliyun.com/articles/623882

更多幹貨内容盡在阿裡雲總監課,戳連結報名:

https://yq.aliyun.com/promotion/689

阿裡雲總監系列課重磅上線!聚焦人工智能、彈性計算、資料庫等熱門領域,首次集齊12位阿裡雲技術高管,耗時半年精心打磨,從理論到實踐傾囊相授,從零開始繪制技術大牛成長路徑,限時直播課程免費報名中!

阿裡雲王牌架構師二問開發者:容器和虛拟化你會怎麼選?

繼續閱讀