《云計算與虛擬化技術叢書 深入淺出Serverless:技術原理與應用實踐》—2.3容器
2.3 容器
2.3.1 容器技術的興起
隨著云計算的日益流行,用戶對云的接受程度也日益提升。用戶的計算資源從原有的私有數據中心擴展至云計算平臺。應用仍然是用戶關注的一個核心問題。隨著計算資源邊界的擴張,應用也需要從私有數據中心遷移到云上。對于很多用戶而言,云和非云環境并不是二選一,而是兩者都需要。云和非云環境在相當長的一段時間內將同時存在。應用如何快速地在云和非云環境中遷移成為一個重要的問題。此外,越來越多的用戶在他們的云戰略中包含了不止一個云。為了有更高的可用性,避免廠商的鎖定,一些實力雄厚的客戶往往同時是多家云平臺供應商的客戶。因此實現應用在不同云環境中的快速遷移也成為一個重要的需求。
混合云環境的示意圖如圖2-5所示。
圖2-5 混合云環境
在IaaS模式下,云平臺底層的計算資源是以物理機(Bare Metal)或虛擬機的形式提供的,這些計算資源過于“笨重”,難以在不同的環境中被快速地“移動”。通過IaaS,用戶可以方便快速地獲取大量的計算資源:主機。但是應用并不能直接消費主機。用戶必須在主機上安裝應用所需要的中間件,添加應用所需要的系統配置,然后再對應用進行配置才行,這些工作都拖慢了整個應用交付流程的節奏。相對而言,PaaS則沒有這些效率低下的步驟,用戶只需要關注應用,無須過度關注底層。但是傳統PaaS的一個問題在于,PaaS平臺對應用有入侵性。為了享用PaaS平臺提供的一些高級功能,應用必須在代碼中引入PaaS平臺的API。這種入侵性導致應用在不同云環境中的遷移變得困難。
容器(Container)技術的出現為前文提及的問題提供了一個很好的解決方案。容器技術以一種稱為容器鏡像(Container Image)的打包格式為基礎,擴大了應用交付件的邊界。與以往應用交付件只包含應用本身不同,容器鏡像中不僅包含編譯構建后的應用,還包含應用所依賴的中間件、類庫和操作系統設置等配置,可以為應用的運行提供一個完整的環境。以操作系統的內核為基礎,容器引擎在主機之上可以快速實例化容器鏡像,生成一個或多個容器實例。容器技術的出現,解決了應用消費主機資源效率低下的問題,使得應用可以被快速地部署到龐大的計算集群中去。容器以操作系統內核為基礎,保證了可移植性,讓應用可以在不同的云環境中,甚至不同的非云環境中被方便地遷移。與IaaS相比,容器比虛擬機和物理機更加小巧和靈活,便于在不同環境之間傳輸。與傳統的PaaS相比,容器有更清晰的邊界,對應用沒有入侵性,極大地提高了應用的可遷移性。
經過幾年的迅速發展,容器已經不容置疑地成為云計算的一項關鍵基礎技術。Docker(現在已經更名為Moby項目)已成為容器引擎的事實標準。Kubernetes也在競爭中脫穎而出,成為容器編排(Orchestration)平臺的事實標準。通過Kubernetes這樣的容器編排平臺,容器鏡像可以快速地被部署到成百上千的主機上。Kubernetes成為一種類似操作系統的存在,有的人認為Kubernetes就是一種云操作系統。傳統的操作系統只管理一臺主機上的CPU、內存、磁盤和網絡資源,而Kubernetes則掌控著數據中心中成百上千臺主機的資源。
云計算 容器 Serverless 虛擬化
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。