阿里雲王牌架構師二問開發者:容器和虛擬化你會怎麼選?
阿里雲高階解決方案架構師 楊旭
世界最大混合雲的總架構師,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.阿里雲王牌架構師一問開發者:我需要一個高併發的架構,我的系統要改造成微服務嗎
2.阿里雲王牌架構師楊曦:也談系統快取設計誤區及高階使用技巧
3.阿里雲王牌架構師楊曦:N多環境N多應用個性配置管理如何從混亂到簡單?
更多幹貨內容盡在阿里雲總監課,戳連結報名:
阿里雲總監繫列課重磅上線!聚焦人工智慧、彈性計算、資料庫等熱門領域,首次集齊12位阿里雲技術高管,耗時半年精心打磨,從理論到實踐傾囊相授,從零開始繪製技術大牛成長路徑,限時直播課程免費報名中!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31550522/viewspace-2212627/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 你問我答|虛擬機器、容器和無伺服器,怎麼選?虛擬機伺服器
- 峰會預告 | Android容器和虛擬化Android
- docker容器和虛擬化有什麼區別?linux就業前景怎麼樣DockerLinux就業
- 網路虛擬化VXLAN網路架構架構
- 虛擬桌面架構師七條經驗分享架構
- 微服務架構怎麼選?微服務架構
- 每日一問:你瞭解 Java 虛擬機器結構麼?Java虛擬機
- 紅帽虛擬化RHEV-架構簡介架構
- 程式設計師你是怎麼繪製架構圖?程式設計師架構
- 你和架構師的的區別是什麼?架構
- 虛擬機器、容器和沙箱是什麼關係?虛擬機
- 虛擬化架構與Centos7系統部署架構CentOS
- 架構師修煉之道(二)——架構?設計?架構師?架構
- 聊聊虛擬化和容器對資料庫的影響資料庫
- 沙盒化容器:是容器還是虛擬機器虛擬機
- Docker技術( 容器虛擬化技術 )Docker
- 架構師日常(二)架構
- 在Linux中,Docker和容器虛擬概念是什麼?LinuxDocker
- 系統架構設計筆記(104)—— 虛擬化架構筆記
- VM和Container 虛擬機器和容器AI虛擬機
- Docker容器和虛擬機器區別Docker虛擬機
- 虛擬機器去虛擬化過魯大師教程虛擬機
- 用簡化操作和虛擬化 應對IT系統“混搭”架構架構
- RabbitMQ和Kafka到底怎麼選(二)?MQKafka
- 恆訊科技分析伺服器虛擬化技術是啥?常見虛擬化架構有幾個?伺服器架構
- 阿里雲架構師解讀三大主流遊戲架構阿里架構遊戲
- 【15】進大廠必須掌握的面試題-容器化和虛擬化面試面試題
- Docker容器與虛擬化技術:OpenEuler 部署 docker容器應用Docker
- 訪問不了虛擬機器80埠,怎麼回事?虛擬機
- 為什麼你總成為不了架構師?架構
- 請問架構師面測試,會從哪些方面去考察候選人?會問哪些方面的問題?架構
- 投票:OAuth2.0 技術選型你會怎麼選OAuth
- 2010年系統架構師大會(二)架構
- Docker,容器,虛擬機器和紅燒肉Docker虛擬機
- GoDaddy虛擬主機與VPS主機怎麼選?3分鐘為你解析!Go
- 什麼是伺服器虛擬化,虛擬化的優勢!伺服器
- docker筆記49-容器虛擬化網路Docker筆記
- 伺服器虛擬化開源技術主流架構之爭伺服器架構